On Mi, 14 Okt 2020, Maxim Kim wrote:
> Hi, I wonder why "better" candidate has lower score than the others: > > https://i.imgur.com/NPhKNsZ.png > > tried to search `vimrc` and `.vim/vimrc` has lower score than > `.vim/vimrc_colors`. The neighbor '_' adds an additional bonus for scoring. Therefore it scores higher. Perhaps we need to add an additional bonus, if the match ends at the string. Something like this perhaps: diff --git a/src/search.c b/src/search.c index 349eae035..5ccc35564 100644 --- a/src/search.c +++ b/src/search.c @@ -4257,6 +4257,8 @@ typedef struct // bonus if match occurs after a separator #define SEPARATOR_BONUS 30 // bonus if match is uppercase and prev is lower +#define ENDMATCH_SEQUENTIAL_BONUS 35 +// bonus if match is sequential and ends the match string #define CAMEL_BONUS 30 // bonus if the first letter is matched #define FIRST_LETTER_BONUS 15 @@ -4318,6 +4320,10 @@ fuzzy_match_compute_score( // Sequential if (currIdx == (prevIdx + 1)) score += SEQUENTIAL_BONUS; + + // End of match + if ((int)currIdx == strSz-1) + score += ENDMATCH_SEQUENTIAL_BONUS; } // Check for bonuses based on neighbor character value I am unsure, whether this bonus should only apply, if we had a previous match as well, or in general only for the end of match. Best, Christian -- Lieber ein warmes Bad, als eine kalte Dusche. -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_dev/20201015065355.GH1656%40256bit.org.
