blob: d6c87649f39af87f1b23ff4292d8b30c68794821 [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
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020012" quit when a syntax file was already loaded
13if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000014 finish
15endif
16
17" Get the CTRL-H syntax to handle backspaced text
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020018runtime! syntax/ctrlh.vim
Bram Moolenaar071d4272004-06-13 20:20:40 +000019
20syn case ignore
21syn match manReference "\f\+([1-9][a-z]\=)"
22syn match manTitle "^\f\+([0-9]\+[a-z]\=).*"
Bram Moolenaard042dc82015-11-24 19:18:36 +010023syn match manSectionHeading "^[a-z][a-z -]*[a-z]$"
24syn match manSubHeading "^\s\{3\}[a-z][a-z -]*[a-z]$"
Bram Moolenaar071d4272004-06-13 20:20:40 +000025syn match manOptionDesc "^\s*[+-][a-z0-9]\S*"
26syn match manLongOptionDesc "^\s*--[a-z0-9-]\S*"
27" syn match manHistory "^[a-z].*last change.*$"
28
29if getline(1) =~ '^[a-zA-Z_]\+([23])'
30 syntax include @cCode <sfile>:p:h/c.vim
31 syn match manCFuncDefinition display "\<\h\w*\>\s*("me=e-1 contained
Bram Moolenaar446cb832008-06-24 21:56:24 +000032 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 +000033endif
34
35
36" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020037" Only when an item doesn't have highlighting yet
38command -nargs=+ HiLink hi def link <args>
Bram Moolenaar071d4272004-06-13 20:20:40 +000039
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020040HiLink manTitle Title
41HiLink manSectionHeading Statement
42HiLink manOptionDesc Constant
43HiLink manLongOptionDesc Constant
44HiLink manReference PreProc
45HiLink manSubHeading Function
46HiLink manCFuncDefinition Function
Bram Moolenaar071d4272004-06-13 20:20:40 +000047
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020048delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +000049
50let b:current_syntax = "man"
51
52" vim:ts=8 sts=2 sw=2: