diff options
author | Rob Pilling <robpilling@gmail.com> | 2020-01-07 05:57:36 +0000 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2020-01-06 21:57:36 -0800 |
commit | 4a7d84ae603f75f974ab9a9d2f4d1b4a06da79bf (patch) | |
tree | e3a08129abaea1910bceac2f337da24498a5f383 /runtime | |
parent | 83b0054b87f82583873a6e7ef291507c580618b1 (diff) | |
download | rneovim-4a7d84ae603f75f974ab9a9d2f4d1b4a06da79bf.tar.gz rneovim-4a7d84ae603f75f974ab9a9d2f4d1b4a06da79bf.tar.bz2 rneovim-4a7d84ae603f75f974ab9a9d2f4d1b4a06da79bf.zip |
man.vim: workaround for 'cscopetag' #11679
The old `:Man` implementation would take either the word under
the cursor, or the argument passed in, and load that as a man page.
Since we now use 'tagfunc' and look for all relevant man-pages, if
your system has several (i.e. same name, different sections), we return
several, giving the user an option.
This works for most tag commands except `:tjump`, which will
fail if there's multiple tags to choose from. This just happens to
be what the cscope code uses (it actually attempts to prompt the
user, but this fails).
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/autoload/man.vim | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/runtime/autoload/man.vim b/runtime/autoload/man.vim index e4c0080ae9..5feab0ce70 100644 --- a/runtime/autoload/man.vim +++ b/runtime/autoload/man.vim @@ -398,6 +398,11 @@ function! man#goto_tag(pattern, flags, info) abort " sort by relevance - exact matches first, then the previous order call sort(l:structured, { a, b -> a.name ==? l:name ? -1 : b.name ==? l:name ? 1 : 0 }) + if &cscopetag + " return only a single entry so we work well with :cstag (#11675) + let l:structured = l:structured[:0] + endif + return map(l:structured, { \ _, entry -> { \ 'name': entry.name, |