1" Vim syntax file
2" Language:	Man page
3" Maintainer:	SungHyun Nam <goweol@gmail.com>
4" Previous Maintainer:	Gautam H. Mudunuri <gmudunur@informatica.com>
5" Version Info:
6" Last Change:	2008 Sep 17
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*$"me=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:
68