commit 14d653b421d3ee4e0d641e45e67dafe43809e502
parent 7adecbcd29e17b71bf43e50a444724da184c04a7
Author: Joshua Cao <joshcao@amazon.com>
Date: Mon, 16 May 2022 04:49:44 -0700
feat(man.vim): list command flags in "gO" outline #17558
Diffstat:
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/runtime/autoload/man.vim b/runtime/autoload/man.vim
@@ -171,6 +171,12 @@ function! man#show_toc() abort
while lnum && lnum < last_line
let text = getline(lnum)
if text =~# '^\%( \{3\}\)\=\S.*$'
+ " if text is a section title
+ call add(toc, {'bufnr': bufnr('%'), 'lnum': lnum, 'text': text})
+ elseif text =~# '^\s\+\%(+\|-\)\S\+'
+ " if text is a flag title. we strip whitespaces and prepend two
+ " spaces to have a consistent format in the loclist.
+ let text = ' ' .. substitute(text, '^\s*\(.\{-}\)\s*$', '\1', '')
call add(toc, {'bufnr': bufnr('%'), 'lnum': lnum, 'text': text})
endif
let lnum = nextnonblank(lnum + 1)
diff --git a/runtime/syntax/man.vim b/runtime/syntax/man.vim
@@ -10,7 +10,7 @@ syntax match manReference display '[^()[:space:]]\+(\%([0-9][a-z]*\|[nlpox]
syntax match manSectionHeading display '^\S.*$'
syntax match manHeader display '^\%1l.*$'
syntax match manSubHeading display '^ \{3\}\S.*$'
-syntax match manOptionDesc display '^\s\+\%(+\|-\)\S\+'
+syntax match manOptionDesc display '^\s\+\(\%(+\|-\)\S\+,\s\+\)*\%(+\|-\)\S\+'
highlight default link manHeader Title
highlight default link manSectionHeading Statement