diff runtime/doc/eval.txt @ 22689:f8bf2c122452 v8.2.1893

patch 8.2.1893: fuzzy matching does not support multiple words Commit: https://github.com/vim/vim/commit/8ded5b647aa4b3338da721b343e0bce0f86655f6 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Oct 23 16:50:30 2020 +0200 patch 8.2.1893: fuzzy matching does not support multiple words Problem: Fuzzy matching does not support multiple words. Solution: Add support for matching white space separated words. (Yegappan Lakshmanan, closes #7163)
author Bram Moolenaar <Bram@vim.org>
date Fri, 23 Oct 2020 17:00:04 +0200
parents 17c4178f26ea
children 5b7ea82bc18f
line wrap: on
line diff
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -7367,8 +7367,15 @@ matchfuzzy({list}, {str} [, {dict}])			*
 		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}])			*
 		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}])			*
 		   :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