diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-10-23 16:50:30 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-10-23 16:50:30 +0200 |
commit | 8ded5b647aa4b3338da721b343e0bce0f86655f6 (patch) | |
tree | b45ef3d0d5e9122ed6132b3a1ffcfee22caed81e /runtime | |
parent | 9c24cd11e2048e16e25271a7a7dbef4593890a18 (diff) | |
download | vim-git-8ded5b647aa4b3338da721b343e0bce0f86655f6.tar.gz |
patch 8.2.1893: fuzzy matching does not support multiple wordsv8.2.1893
Problem: Fuzzy matching does not support multiple words.
Solution: Add support for matching white space separated words. (Yegappan
Lakshmanan, closes #7163)
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/doc/eval.txt | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 5a4376d1d..d58b02b46 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -7367,8 +7367,15 @@ matchfuzzy({list}, {str} [, {dict}]) *matchfuzzy()* the strings in {list} that fuzzy match {str}. The strings in the returned list are sorted based on the matching score. + The optional {dict} argument always supports the following + items: + matchseq When this item is present and {str} contains + multiple words separated by white space, then + returns only matches that contain the words in + the given sequence. + If {list} is a list of dictionaries, then the optional {dict} - argument supports the following items: + argument supports the following additional items: key key of the item which is fuzzy matched against {str}. The value of this item should be a string. @@ -7382,6 +7389,9 @@ matchfuzzy({list}, {str} [, {dict}]) *matchfuzzy()* matching is NOT supported. The maximum supported {str} length is 256. + When {str} has multiple words each separated by white space, + then the list of strings that have all the words is returned. + If there are no matching strings or there is an error, then an empty list is returned. If length of {str} is greater than 256, then returns an empty list. @@ -7401,7 +7411,12 @@ matchfuzzy({list}, {str} [, {dict}]) *matchfuzzy()* :echo v:oldfiles->matchfuzzy("test") < results in a list of file names fuzzy matching "test". > :let l = readfile("buffer.c")->matchfuzzy("str") -< results in a list of lines in "buffer.c" fuzzy matching "str". +< results in a list of lines in "buffer.c" fuzzy matching "str". > + :echo ['one two', 'two one']->matchfuzzy('two one') +< results in ['two one', 'one two']. > + :echo ['one two', 'two one']->matchfuzzy('two one', + \ {'matchseq': 1}) +< results in ['two one']. matchfuzzypos({list}, {str} [, {dict}]) *matchfuzzypos()* Same as |matchfuzzy()|, but returns the list of matched |