diff options
| author | Maxime Coste <mawww@kakoune.org> | 2023-11-23 17:15:20 +1100 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2023-11-23 17:16:24 +1100 |
| commit | 990e92a5f320953bab12ba2c0419d382cd68102e (patch) | |
| tree | a7d31b3e701d9db251a7bfa48938d4a505a1d0dd /src/ranked_match.cc | |
| parent | cad2f6fb664a1605f349f1de355c62a984dfeb4e (diff) | |
Only set Prefix in RankedMatch if the full query matches
Diffstat (limited to 'src/ranked_match.cc')
| -rw-r--r-- | src/ranked_match.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/ranked_match.cc b/src/ranked_match.cc index a0eedda4..d258b680 100644 --- a/src/ranked_match.cc +++ b/src/ranked_match.cc @@ -140,7 +140,8 @@ RankedMatch::RankedMatch(StringView candidate, StringView query, TestFunc func) it == candidate.begin() or subsequence_match_smart_case({it, candidate.end()}, query)) { m_flags |= Flags::BaseName; - if (*it == query[0]) + if ((candidate.end() - it) >= query.length() and + std::equal(query.begin(), query.end(), it)) m_flags |= Flags::Prefix; } @@ -277,6 +278,7 @@ UnitTest test_ranked_match{[] { kak_assert(preferred("foo_b", "bar/bar_qux/foo_bar.baz", "foo/test_foo_bar.baz")); kak_assert(preferred("foo_bar", "bar/foo_bar.baz", "foo_bar/qux.baz")); kak_assert(preferred("fb", "foo_bar/", "foo.bar")); + kak_assert(preferred("foo_bar", "test_foo_bar", "foo_test_bar")); }}; UnitTest test_used_letters{[]() |
