diff options
Diffstat (limited to 'runtime/syntax/man.vim')
-rw-r--r-- | runtime/syntax/man.vim | 106 |
1 files changed, 49 insertions, 57 deletions
diff --git a/runtime/syntax/man.vim b/runtime/syntax/man.vim index fbc1847e6e..6afe56a6e3 100644 --- a/runtime/syntax/man.vim +++ b/runtime/syntax/man.vim @@ -1,67 +1,59 @@ -" Vim syntax file -" Language: Man page -" Maintainer: SungHyun Nam <goweol@gmail.com> -" Previous Maintainer: Gautam H. Mudunuri <gmudunur@informatica.com> -" Version Info: -" Last Change: 2015 Nov 24 +" Maintainer: Anmol Sethi <anmol@aubble.com> +" Previous Maintainer: SungHyun Nam <goweol@gmail.com> -" Additional highlighting by Johannes Tanzler <johannes.tanzler@aon.at>: -" * manSubHeading -" * manSynopsis (only for sections 2 and 3) - -" For version 5.x: Clear all syntax items -" For version 6.x: Quit when a syntax file was already loaded -if version < 600 - syntax clear -elseif exists("b:current_syntax") +if exists('b:current_syntax') finish endif -" Get the CTRL-H syntax to handle backspaced text -if version >= 600 - runtime! syntax/ctrlh.vim -else - source <sfile>:p:h/ctrlh.vim +syntax case ignore +syntax match manReference display '[^()[:space:]]\+([0-9nx][a-z]*)' +syntax match manSectionHeading display '^\S.*$' +syntax match manTitle display '^\%1l.*$' +syntax match manSubHeading display '^ \{3\}\S.*$' +syntax match manOptionDesc display '^\s\+\%(+\|-\)\S\+' + +highlight default link manTitle Title +highlight default link manSectionHeading Statement +highlight default link manOptionDesc Constant +highlight default link manReference PreProc +highlight default link manSubHeading Function + +highlight default manUnderline cterm=underline gui=underline +highlight default manBold cterm=bold gui=bold +highlight default manItalic cterm=italic gui=italic + +if &filetype != 'man' + " May have been included by some other filetype. + finish endif -syn case ignore -syn match manReference "\f\+([1-9][a-z]\=)" -syn match manTitle "^\f\+([0-9]\+[a-z]\=).*" -syn match manSectionHeading "^[a-z][a-z -]*[a-z]$" -syn match manSubHeading "^\s\{3\}[a-z][a-z -]*[a-z]$" -syn match manOptionDesc "^\s*[+-][a-z0-9]\S*" -syn match manLongOptionDesc "^\s*--[a-z0-9-]\S*" -" syn match manHistory "^[a-z].*last change.*$" - -if getline(1) =~ '^[a-zA-Z_]\+([23])' - syntax include @cCode <sfile>:p:h/c.vim - syn match manCFuncDefinition display "\<\h\w*\>\s*("me=e-1 contained - syn region manSynopsis start="^SYNOPSIS"hs=s+8 end="^\u\+\s*$"me=e-12 keepend contains=manSectionHeading,@cCode,manCFuncDefinition +if !exists('b:man_sect') + call man#init_pager() endif - - -" Define the default highlighting. -" For version 5.7 and earlier: only when not done already -" For version 5.8 and later: only when an item doesn't have highlighting yet -if version >= 508 || !exists("did_man_syn_inits") - if version < 508 - let did_man_syn_inits = 1 - command -nargs=+ HiLink hi link <args> - else - command -nargs=+ HiLink hi def link <args> - endif - - HiLink manTitle Title - HiLink manSectionHeading Statement - HiLink manOptionDesc Constant - HiLink manLongOptionDesc Constant - HiLink manReference PreProc - HiLink manSubHeading Function - HiLink manCFuncDefinition Function - - delcommand HiLink +if b:man_sect =~# '^[023]' + syntax case match + syntax include @c $VIMRUNTIME/syntax/c.vim + syntax match manCFuncDefinition display '\<\h\w*\>\ze\(\s\|\n\)*(' contained + syntax match manLowerSentence /\n\s\{7}\l.\+[()]\=\%(\:\|.\|-\)[()]\=[{};]\@<!\n$/ display keepend contained contains=manReference + syntax region manSentence start=/^\s\{7}\%(\u\|\*\)[^{}=]*/ end=/\n$/ end=/\ze\n\s\{3,7}#/ keepend contained contains=manReference + syntax region manSynopsis start='^\%( + \SYNOPSIS\| + \SYNTAX\| + \SINTASSI\| + \SKŁADNIA\| + \СИНТАКСИС\| + \書式\)$' end='^\%(\S.*\)\=\S$' keepend contains=manLowerSentence,manSentence,manSectionHeading,@c,manCFuncDefinition + highlight default link manCFuncDefinition Function + + syntax region manExample start='^EXAMPLES\=$' end='^\%(\S.*\)\=\S$' keepend contains=manLowerSentence,manSentence,manSectionHeading,manSubHeading,@c,manCFuncDefinition + + " XXX: groupthere doesn't seem to work + syntax sync minlines=500 + "syntax sync match manSyncExample groupthere manExample '^EXAMPLES\=$' + "syntax sync match manSyncExample groupthere NONE '^\%(EXAMPLES\=\)\@!\%(\S.*\)\=\S$' endif -let b:current_syntax = "man" +" Prevent everything else from matching the last line +execute 'syntax match manFooter display "^\%'.line('$').'l.*$"' -" vim:ts=8 sts=2 sw=2: +let b:current_syntax = 'man' |