blob: fbc1847e6e74d5f95349f4c8adf299a51d73d783 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Man page
Bram Moolenaar5c736222010-01-06 20:54:52 +01003" Maintainer: SungHyun Nam <goweol@gmail.com>
Bram Moolenaar071d4272004-06-13 20:20:40 +00004" Previous Maintainer: Gautam H. Mudunuri <gmudunur@informatica.com>
5" Version Info:
Bram Moolenaard042dc82015-11-24 19:18:36 +01006" Last Change: 2015 Nov 24
Bram Moolenaar071d4272004-06-13 20:20:40 +00007
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]\=).*"
Bram Moolenaard042dc82015-11-24 19:18:36 +010030syn match manSectionHeading "^[a-z][a-z -]*[a-z]$"
31syn match manSubHeading "^\s\{3\}[a-z][a-z -]*[a-z]$"
Bram Moolenaar071d4272004-06-13 20:20:40 +000032syn 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
Bram Moolenaar446cb832008-06-24 21:56:24 +000039 syn region manSynopsis start="^SYNOPSIS"hs=s+8 end="^\u\+\s*$"me=e-12 keepend contains=manSectionHeading,@cCode,manCFuncDefinition
Bram Moolenaar071d4272004-06-13 20:20:40 +000040endif
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: