blob: 347180c8daedaefe66695e0c7971aa55044a3a5a [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Man page
3" Maintainer: Nam SungHyun <namsh@kldp.org>
4" Previous Maintainer: Gautam H. Mudunuri <gmudunur@informatica.com>
5" Version Info:
6" Last Change: 2004 May 16
7
8" Additional highlighting by Johannes Tanzler <johannes.tanzler@aon.at>:
9" * manSubHeading
10" * manSynopsis (only for sections 2 and 3)
11
12" For version 5.x: Clear all syntax items
13" For version 6.x: Quit when a syntax file was already loaded
14if version < 600
15 syntax clear
16elseif exists("b:current_syntax")
17 finish
18endif
19
20" Get the CTRL-H syntax to handle backspaced text
21if version >= 600
22 runtime! syntax/ctrlh.vim
23else
24 source <sfile>:p:h/ctrlh.vim
25endif
26
27syn case ignore
28syn match manReference "\f\+([1-9][a-z]\=)"
29syn match manTitle "^\f\+([0-9]\+[a-z]\=).*"
30syn match manSectionHeading "^[a-z][a-z ]*[a-z]$"
31syn match manSubHeading "^\s\{3\}[a-z][a-z ]*[a-z]$"
32syn match manOptionDesc "^\s*[+-][a-z0-9]\S*"
33syn match manLongOptionDesc "^\s*--[a-z0-9-]\S*"
34" syn match manHistory "^[a-z].*last change.*$"
35
36if getline(1) =~ '^[a-zA-Z_]\+([23])'
37 syntax include @cCode <sfile>:p:h/c.vim
38 syn match manCFuncDefinition display "\<\h\w*\>\s*("me=e-1 contained
39 syn region manSynopsis start="^SYNOPSIS"hs=s+8 end="^\u\+\s*$"he=e-12 keepend contains=manSectionHeading,@cCode,manCFuncDefinition
40endif
41
42
43" Define the default highlighting.
44" For version 5.7 and earlier: only when not done already
45" For version 5.8 and later: only when an item doesn't have highlighting yet
46if version >= 508 || !exists("did_man_syn_inits")
47 if version < 508
48 let did_man_syn_inits = 1
49 command -nargs=+ HiLink hi link <args>
50 else
51 command -nargs=+ HiLink hi def link <args>
52 endif
53
54 HiLink manTitle Title
55 HiLink manSectionHeading Statement
56 HiLink manOptionDesc Constant
57 HiLink manLongOptionDesc Constant
58 HiLink manReference PreProc
59 HiLink manSubHeading Function
60 HiLink manCFuncDefinition Function
61
62 delcommand HiLink
63endif
64
65let b:current_syntax = "man"
66
67" vim:ts=8 sts=2 sw=2: