From ca3f0e5c32134c28ff6ef9d0aba2709be0633cc8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alexis=20Laferri=C3=A8re?= Date: Mon, 9 Mar 2015 13:36:29 -0400 Subject: [PATCH] misc/vim: search in synopsis and full doc for matches MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Alexis Laferrière --- misc/vim/plugin/nit.vim | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/misc/vim/plugin/nit.vim b/misc/vim/plugin/nit.vim index a781d87..046ab9f 100644 --- a/misc/vim/plugin/nit.vim +++ b/misc/vim/plugin/nit.vim @@ -110,13 +110,17 @@ endfun " Internal function to search for lines in `path` corresponding to the partial " word `base`. Adds found and formated match to `matches`. " -" Will order the results in 3 levels: +" Will order the results in 5 levels: " 1. Exact matches " 2. Common prefix matches " 3. Substring matches +" 4. Synopsis matches +" 5. Doc matches fun NitOmnifuncAddFromFile(base, matches, path) let prefix_matches = [] let substring_matches = [] + let synopsis_matches = [] + let doc_matches = [] let path = NitMetadataFile(a:path) if empty(path) @@ -137,12 +141,20 @@ fun NitOmnifuncAddFromFile(base, matches, path) elseif name =~? a:base " Substring match call NitOmnifuncAddAMatch(substring_matches, words, name) + elseif get(words, 2, '') =~? a:base + " Match in the synopsis + call NitOmnifuncAddAMatch(synopsis_matches, words, name) + elseif get(words, 3, '') =~? a:base + " Match in the longer doc + call NitOmnifuncAddAMatch(synopsis_matches, words, name) endif endfor " Assemble the final match list call extend(a:matches, sort(prefix_matches)) call extend(a:matches, sort(substring_matches)) + call extend(a:matches, sort(synopsis_matches)) + call extend(a:matches, sort(doc_matches)) endfun " Internal function to search parse the information from a metadata line -- 1.7.9.5