xref: /vim-8.2.3635/runtime/syntax/man.vim (revision d58a3bf7)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	Man page
37ceefb35SBram Moolenaar" Maintainer:	Jason Franklin <[email protected]>
47ceefb35SBram Moolenaar" Previous Maintainer:	SungHyun Nam <[email protected]>
5071d4279SBram Moolenaar" Previous Maintainer:	Gautam H. Mudunuri <[email protected]>
6071d4279SBram Moolenaar" Version Info:
7*d58a3bf7SBram Moolenaar" Last Change:	2020 Sep 19
8071d4279SBram Moolenaar
9071d4279SBram Moolenaar" Additional highlighting by Johannes Tanzler <[email protected]>:
10071d4279SBram Moolenaar"	* manSubHeading
11071d4279SBram Moolenaar"	* manSynopsis (only for sections 2 and 3)
12071d4279SBram Moolenaar
1389bcfda6SBram Moolenaar" quit when a syntax file was already loaded
1489bcfda6SBram Moolenaarif exists("b:current_syntax")
15071d4279SBram Moolenaar  finish
16071d4279SBram Moolenaarendif
17071d4279SBram Moolenaar
18071d4279SBram Moolenaar" Get the CTRL-H syntax to handle backspaced text
19071d4279SBram Moolenaarruntime! syntax/ctrlh.vim
20071d4279SBram Moolenaar
21071d4279SBram Moolenaarsyn case ignore
222c7f8c57SBram Moolenaar
23071d4279SBram Moolenaarsyn match  manReference       "\f\+([1-9][a-z]\=)"
24*d58a3bf7SBram Moolenaarsyn match  manSectionHeading  "^\a.*$"
25*d58a3bf7SBram Moolenaarsyn match  manSubHeading      "^\s\{3\}\a.*$"
26071d4279SBram Moolenaarsyn match  manOptionDesc      "^\s*[+-][a-z0-9]\S*"
27071d4279SBram Moolenaarsyn match  manLongOptionDesc  "^\s*--[a-z0-9-]\S*"
28071d4279SBram Moolenaar" syn match  manHistory		"^[a-z].*last change.*$"
29071d4279SBram Moolenaar
307ceefb35SBram Moolenaarsyn match manHeader '\%1l.*'
317ceefb35SBram Moolenaarexe 'syn match manFooter ''\%' . line('$') . 'l.*'''
327ceefb35SBram Moolenaar
33071d4279SBram Moolenaarif getline(1) =~ '^[a-zA-Z_]\+([23])'
34071d4279SBram Moolenaar  syntax include @cCode <sfile>:p:h/c.vim
35071d4279SBram Moolenaar  syn match manCFuncDefinition  display "\<\h\w*\>\s*("me=e-1 contained
36446cb837SBram Moolenaar  syn region manSynopsis start="^SYNOPSIS"hs=s+8 end="^\u\+\s*$"me=e-12 keepend contains=manSectionHeading,@cCode,manCFuncDefinition
37071d4279SBram Moolenaarendif
38071d4279SBram Moolenaar
39071d4279SBram Moolenaar
40071d4279SBram Moolenaar" Define the default highlighting.
4189bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
42071d4279SBram Moolenaar
432c7f8c57SBram Moolenaarhi def link manHeader Title
442c7f8c57SBram Moolenaarhi def link manFooter PreProc
452c7f8c57SBram Moolenaar
46f37506f6SBram Moolenaarhi def link manSectionHeading  Statement
47f37506f6SBram Moolenaarhi def link manOptionDesc	    Constant
48f37506f6SBram Moolenaarhi def link manLongOptionDesc  Constant
49f37506f6SBram Moolenaarhi def link manReference	    PreProc
50f37506f6SBram Moolenaarhi def link manSubHeading      Function
51f37506f6SBram Moolenaarhi def link manCFuncDefinition Function
52071d4279SBram Moolenaar
53071d4279SBram Moolenaar
54071d4279SBram Moolenaarlet b:current_syntax = "man"
55071d4279SBram Moolenaar
56071d4279SBram Moolenaar" vim:ts=8 sts=2 sw=2:
57