Christian wrote:
> On Do, 15 Okt 2020, Yegappan Lakshmanan wrote: > > > On Thu, Oct 15, 2020 at 12:24 PM Bram Moolenaar <[email protected]> wrote: > > > > > > Christian wrote: > > > > > Indeed. Initially I thought adding a bonus for a word boundary would > > be > > > needed, therefore my naive attempt to score additionally on the end of > > > the match. So how about this, which adds an additional bonus only for > > a > > > complete match. > > > > > > > An extra score for a whole match makes a big jump. It might work better > > when giving a match a bit of extra score if the previous character also > > matched. Thus the more consequtive characters match the better. This > > seems to make sense: matches spread out over a line of text score lower > > than when some matches group together. And reach the maximum when they > > are all together. > > > > > > > > The current implementation already supports this. Each sequential matching > > character is given a bonus score (SEQUENTIAL_BONUS). > > > > A matching character after an underscore or space is given a bonus > > score (SEPARATOR_BONUS). Because of this a string with a matching > > letter after an underscore is given precedence over a fully matched sequence > > of characters. > > Yes currently, SEQUENTIAL_BONUS is 15, while SEPARATOR_BONUS is 30. > This makes `v_i_m_r_c` be the preferred match against e.g. vimrc. > > So I think SEQUENTIAL_BONUS should probably score higher than > SEPARATOR_BONUS. I think this might be a better way to continue here. Aha. So it might just be a matter of adjusting the weights. > I'll make a PR for that. > > On a related note, I wonder whether SEPARATOR_BONUS should also be added > for path delimiters (`/` on unix `\` on windows). I wonder why that "after underscore" bonus was added. Isn't this similar to a "start of word" bonus, like after a space or at the start of the text? I haven't looked into the whole algorithm, but to me it seems that this bonus should only be given when the start of a word in the search string matches the start of a word in the text. E.g, when searching for "hello world" then a match in "hello worldwize" would match a bit better than "hello xxxworldwize". I wonder why underscore was made so important. When matching in keywords in programming name_with_underscores still has "name" at the start as a more imporant boundary than the underscores. Or a slash, dot and other separator characters. -- Where do you want to crash today? /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org /// -- -- 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/202010161013.09GADEV0328492%40masaka.moolenaar.net.
