diff --git a/src/algo/algo.go b/src/algo/algo.go index 1d021ed..5cb82bd 100644 --- a/src/algo/algo.go +++ b/src/algo/algo.go @@ -255,24 +255,29 @@ func charClassOf(char rune) charClass { func bonusFor(prevClass charClass, class charClass) int16 { if class > charNonWord { - if prevClass == charWhite { + switch prevClass { + case charWhite: // Word boundary after whitespace return bonusBoundaryWhite - } else if prevClass == charDelimiter { + case charDelimiter: // Word boundary after a delimiter character return bonusBoundaryDelimiter - } else if prevClass == charNonWord { + case charNonWord: // Word boundary return bonusBoundary } } + if prevClass == charLower && class == charUpper || prevClass != charNumber && class == charNumber { // camelCase letter123 return bonusCamel123 - } else if class == charNonWord { + } + + switch class { + case charNonWord, charDelimiter: return bonusNonWord - } else if class == charWhite { + case charWhite: return bonusBoundaryWhite } return 0