blob: 56f6d10de2b2168ec70adc87d815a018c5a7543e [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Man page
Bram Moolenaar7ceefb32020-05-01 16:07:38 +02003" Maintainer: Jason Franklin <vim@justemail.net>
4" Previous Maintainer: SungHyun Nam <goweol@gmail.com>
Bram Moolenaar071d4272004-06-13 20:20:40 +00005" Previous Maintainer: Gautam H. Mudunuri <gmudunur@informatica.com>
6" Version Info:
Bram Moolenaar7ceefb32020-05-01 16:07:38 +02007" Last Change: 2020 Apr 30
Bram Moolenaar071d4272004-06-13 20:20:40 +00008
9" Additional highlighting by Johannes Tanzler <johannes.tanzler@aon.at>:
10" * manSubHeading
11" * manSynopsis (only for sections 2 and 3)
12
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020013" quit when a syntax file was already loaded
14if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000015 finish
16endif
17
18" Get the CTRL-H syntax to handle backspaced text
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020019runtime! syntax/ctrlh.vim
Bram Moolenaar071d4272004-06-13 20:20:40 +000020
21syn case ignore
Bram Moolenaar2c7f8c52020-04-20 19:52:53 +020022
Bram Moolenaar071d4272004-06-13 20:20:40 +000023syn match manReference "\f\+([1-9][a-z]\=)"
Bram Moolenaard042dc82015-11-24 19:18:36 +010024syn match manSectionHeading "^[a-z][a-z -]*[a-z]$"
25syn match manSubHeading "^\s\{3\}[a-z][a-z -]*[a-z]$"
Bram Moolenaar071d4272004-06-13 20:20:40 +000026syn match manOptionDesc "^\s*[+-][a-z0-9]\S*"
27syn match manLongOptionDesc "^\s*--[a-z0-9-]\S*"
28" syn match manHistory "^[a-z].*last change.*$"
29
Bram Moolenaar7ceefb32020-05-01 16:07:38 +020030syn match manHeader '\%1l.*'
31exe 'syn match manFooter ''\%' . line('$') . 'l.*'''
32
Bram Moolenaar071d4272004-06-13 20:20:40 +000033if getline(1) =~ '^[a-zA-Z_]\+([23])'
34 syntax include @cCode <sfile>:p:h/c.vim
35 syn match manCFuncDefinition display "\<\h\w*\>\s*("me=e-1 contained
Bram Moolenaar446cb832008-06-24 21:56:24 +000036 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 +000037endif
38
39
40" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020041" Only when an item doesn't have highlighting yet
Bram Moolenaar071d4272004-06-13 20:20:40 +000042
Bram Moolenaar2c7f8c52020-04-20 19:52:53 +020043hi def link manHeader Title
44hi def link manFooter PreProc
45
Bram Moolenaarf37506f2016-08-31 22:22:10 +020046hi def link manSectionHeading Statement
47hi def link manOptionDesc Constant
48hi def link manLongOptionDesc Constant
49hi def link manReference PreProc
50hi def link manSubHeading Function
51hi def link manCFuncDefinition Function
Bram Moolenaar071d4272004-06-13 20:20:40 +000052
Bram Moolenaar071d4272004-06-13 20:20:40 +000053
54let b:current_syntax = "man"
55
56" vim:ts=8 sts=2 sw=2: