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.

Raspunde prin e-mail lui