diff options
author | Junegunn Choi <junegunn.c@gmail.com> | 2024-02-22 23:19:11 +0900 |
---|---|---|
committer | Junegunn Choi <junegunn.c@gmail.com> | 2024-02-22 23:19:11 +0900 |
commit | 99a7beba575bf50170dada5b4681ccaad40263d1 (patch) | |
tree | cdc96794af04c971358b28c24f4e00b630191658 /src | |
parent | edee2b753cdd08b7927213af3899f7b6f455a606 (diff) |
Fix missing bonus score on a delimiter character
Fix #3645
Diffstat (limited to 'src')
-rw-r--r-- | src/algo/algo.go | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/algo/algo.go b/src/algo/algo.go index 1d021ed0..5cb82bdd 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 |