blob: 6af9df7043f32633f508d8da0f04556ae903e854 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Vim help file
3" Maintainer: Bram Moolenaar (Bram@vim.org)
Bram Moolenaar30ab04e2022-05-14 13:33:50 +01004" Last Change: 2022 May 13
Bram Moolenaar071d4272004-06-13 20:20:40 +00005
Bram Moolenaard857f0e2005-06-21 22:37:39 +00006" Quit when a (custom) syntax file was already loaded
7if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +00008 finish
9endif
10
Bram Moolenaar6ee8d892012-01-10 14:55:01 +010011let s:cpo_save = &cpo
12set cpo&vim
13
Bram Moolenaarb17893a2020-03-14 08:19:51 +010014syn match helpHeadline "^[-A-Z .][-A-Z0-9 .()_]*\ze\(\s\+\*\|$\)"
Bram Moolenaar6c35bea2012-07-25 17:49:10 +020015syn match helpSectionDelim "^===.*===$"
16syn match helpSectionDelim "^---.*--$"
Bram Moolenaardd007ed2013-07-09 15:44:17 +020017if has("conceal")
18 syn region helpExample matchgroup=helpIgnore start=" >$" start="^>$" end="^[^ \t]"me=e-1 end="^<" concealends
19else
20 syn region helpExample matchgroup=helpIgnore start=" >$" start="^>$" end="^[^ \t]"me=e-1 end="^<"
21endif
Bram Moolenaar071d4272004-06-13 20:20:40 +000022if has("ebcdic")
Bram Moolenaar18144c82006-04-12 21:52:12 +000023 syn match helpHyperTextJump "\\\@<!|[^"*|]\+|" contains=helpBar
Bram Moolenaar7fc904b2006-04-13 20:37:35 +000024 syn match helpHyperTextEntry "\*[^"*|]\+\*\s"he=e-1 contains=helpStar
25 syn match helpHyperTextEntry "\*[^"*|]\+\*$" contains=helpStar
Bram Moolenaar071d4272004-06-13 20:20:40 +000026else
Bram Moolenaar18144c82006-04-12 21:52:12 +000027 syn match helpHyperTextJump "\\\@<!|[#-)!+-~]\+|" contains=helpBar
Bram Moolenaar7fc904b2006-04-13 20:37:35 +000028 syn match helpHyperTextEntry "\*[#-)!+-~]\+\*\s"he=e-1 contains=helpStar
29 syn match helpHyperTextEntry "\*[#-)!+-~]\+\*$" contains=helpStar
Bram Moolenaar071d4272004-06-13 20:20:40 +000030endif
Bram Moolenaar97293012011-07-18 19:40:27 +020031if has("conceal")
Bram Moolenaarfa13eef2013-02-06 17:34:04 +010032 syn match helpBar contained "|" conceal
33 syn match helpBacktick contained "`" conceal
Bram Moolenaar97293012011-07-18 19:40:27 +020034 syn match helpStar contained "\*" conceal
35else
Bram Moolenaarfa13eef2013-02-06 17:34:04 +010036 syn match helpBar contained "|"
37 syn match helpBacktick contained "`"
Bram Moolenaar97293012011-07-18 19:40:27 +020038 syn match helpStar contained "\*"
39endif
Bram Moolenaar071d4272004-06-13 20:20:40 +000040syn match helpNormal "|.*====*|"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010041syn match helpNormal "|||"
Bram Moolenaar071d4272004-06-13 20:20:40 +000042syn match helpNormal ":|vim:|" " for :help modeline
Bram Moolenaar251835e2014-02-24 02:51:51 +010043syn match helpVim "\<Vim version [0-9][0-9.a-z]*"
Bram Moolenaar071d4272004-06-13 20:20:40 +000044syn match helpVim "VIM REFERENCE.*"
45syn match helpOption "'[a-z]\{2,\}'"
46syn match helpOption "'t_..'"
Bram Moolenaar7cba6c02013-09-05 22:13:31 +020047syn match helpCommand "`[^` \t]\+`"hs=s+1,he=e-1 contains=helpBacktick
Bram Moolenaar939a1ab2016-04-10 01:31:25 +020048syn match helpCommand "\(^\|[^a-z"[]\)\zs`[^`]\+`\ze\([^a-z\t."']\|$\)"hs=s+1,he=e-1 contains=helpBacktick
Bram Moolenaar071d4272004-06-13 20:20:40 +000049syn match helpHeader "\s*\zs.\{-}\ze\s\=\~$" nextgroup=helpIgnore
Bram Moolenaar166af9b2010-11-16 20:34:40 +010050syn match helpGraphic ".* \ze`$" nextgroup=helpIgnore
Bram Moolenaar97293012011-07-18 19:40:27 +020051if has("conceal")
52 syn match helpIgnore "." contained conceal
53else
54 syn match helpIgnore "." contained
55endif
Bram Moolenaar071d4272004-06-13 20:20:40 +000056syn keyword helpNote note Note NOTE note: Note: NOTE: Notes Notes:
Bram Moolenaar3ec574f2017-06-13 18:12:01 +020057syn keyword helpWarning WARNING WARNING: Warning:
58syn keyword helpDeprecated DEPRECATED DEPRECATED: Deprecated:
Bram Moolenaar071d4272004-06-13 20:20:40 +000059syn match helpSpecial "\<N\>"
60syn match helpSpecial "\<N\.$"me=e-1
61syn match helpSpecial "\<N\.\s"me=e-2
62syn match helpSpecial "(N\>"ms=s+1
Bram Moolenaar01164a62017-11-02 22:58:42 +010063
Bram Moolenaar071d4272004-06-13 20:20:40 +000064syn match helpSpecial "\[N]"
65" avoid highlighting N N in help.txt
66syn match helpSpecial "N N"he=s+1
67syn match helpSpecial "Nth"me=e-2
68syn match helpSpecial "N-1"me=e-2
Bram Moolenaar071d4272004-06-13 20:20:40 +000069syn match helpSpecial "{[-a-zA-Z0-9'"*+/:%#=[\]<>.,]\+}"
70syn match helpSpecial "\s\[[-a-z^A-Z0-9_]\{2,}]"ms=s+1
71syn match helpSpecial "<[-a-zA-Z0-9_]\+>"
72syn match helpSpecial "<[SCM]-.>"
73syn match helpNormal "<---*>"
74syn match helpSpecial "\[range]"
75syn match helpSpecial "\[line]"
76syn match helpSpecial "\[count]"
77syn match helpSpecial "\[offset]"
78syn match helpSpecial "\[cmd]"
Bram Moolenaar4d8f4762021-06-27 15:18:56 +020079syn match helpNormal "vim9\[cmd]"
Bram Moolenaar071d4272004-06-13 20:20:40 +000080syn match helpSpecial "\[num]"
81syn match helpSpecial "\[+num]"
82syn match helpSpecial "\[-num]"
83syn match helpSpecial "\[+cmd]"
84syn match helpSpecial "\[++opt]"
85syn match helpSpecial "\[arg]"
86syn match helpSpecial "\[arguments]"
87syn match helpSpecial "\[ident]"
88syn match helpSpecial "\[addr]"
89syn match helpSpecial "\[group]"
Bram Moolenaar01164a62017-11-02 22:58:42 +010090" Don't highlight [converted] and others that do not have a tag
91syn match helpNormal "\[\(readonly\|fifo\|socket\|converted\|crypted\)]"
92
Bram Moolenaar071d4272004-06-13 20:20:40 +000093syn match helpSpecial "CTRL-."
Bram Moolenaar0c0734d2019-11-26 21:44:46 +010094syn match helpSpecial "CTRL-SHIFT-."
Bram Moolenaar071d4272004-06-13 20:20:40 +000095syn match helpSpecial "CTRL-Break"
96syn match helpSpecial "CTRL-PageUp"
97syn match helpSpecial "CTRL-PageDown"
98syn match helpSpecial "CTRL-Insert"
99syn match helpSpecial "CTRL-Del"
100syn match helpSpecial "CTRL-{char}"
101syn region helpNotVi start="{Vi[: ]" start="{not" start="{only" end="}" contains=helpLeadBlank,helpHyperTextJump
102syn match helpLeadBlank "^\s\+" contained
103
104" Highlight group items in their own color.
105syn match helpComment "\t[* ]Comment\t\+[a-z].*"
106syn match helpConstant "\t[* ]Constant\t\+[a-z].*"
107syn match helpString "\t[* ]String\t\+[a-z].*"
108syn match helpCharacter "\t[* ]Character\t\+[a-z].*"
109syn match helpNumber "\t[* ]Number\t\+[a-z].*"
110syn match helpBoolean "\t[* ]Boolean\t\+[a-z].*"
111syn match helpFloat "\t[* ]Float\t\+[a-z].*"
112syn match helpIdentifier "\t[* ]Identifier\t\+[a-z].*"
113syn match helpFunction "\t[* ]Function\t\+[a-z].*"
114syn match helpStatement "\t[* ]Statement\t\+[a-z].*"
115syn match helpConditional "\t[* ]Conditional\t\+[a-z].*"
116syn match helpRepeat "\t[* ]Repeat\t\+[a-z].*"
117syn match helpLabel "\t[* ]Label\t\+[a-z].*"
118syn match helpOperator "\t[* ]Operator\t\+["a-z].*"
119syn match helpKeyword "\t[* ]Keyword\t\+[a-z].*"
120syn match helpException "\t[* ]Exception\t\+[a-z].*"
121syn match helpPreProc "\t[* ]PreProc\t\+[a-z].*"
122syn match helpInclude "\t[* ]Include\t\+[a-z].*"
123syn match helpDefine "\t[* ]Define\t\+[a-z].*"
124syn match helpMacro "\t[* ]Macro\t\+[a-z].*"
125syn match helpPreCondit "\t[* ]PreCondit\t\+[a-z].*"
126syn match helpType "\t[* ]Type\t\+[a-z].*"
127syn match helpStorageClass "\t[* ]StorageClass\t\+[a-z].*"
128syn match helpStructure "\t[* ]Structure\t\+[a-z].*"
129syn match helpTypedef "\t[* ]Typedef\t\+[Aa-z].*"
130syn match helpSpecial "\t[* ]Special\t\+[a-z].*"
131syn match helpSpecialChar "\t[* ]SpecialChar\t\+[a-z].*"
132syn match helpTag "\t[* ]Tag\t\+[a-z].*"
133syn match helpDelimiter "\t[* ]Delimiter\t\+[a-z].*"
134syn match helpSpecialComment "\t[* ]SpecialComment\t\+[a-z].*"
135syn match helpDebug "\t[* ]Debug\t\+[a-z].*"
136syn match helpUnderlined "\t[* ]Underlined\t\+[a-z].*"
137syn match helpError "\t[* ]Error\t\+[a-z].*"
138syn match helpTodo "\t[* ]Todo\t\+[a-z].*"
139
Bram Moolenaar3991dab2006-03-27 17:01:56 +0000140syn match helpURL `\v<(((https?|ftp|gopher)://|(mailto|file|news):)[^' <>"]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^' <>"]+)[a-zA-Z0-9/]`
Bram Moolenaar071d4272004-06-13 20:20:40 +0000141
142" Additionally load a language-specific syntax file "help_ab.vim".
Bram Moolenaar13fcaaf2005-04-15 21:13:42 +0000143let s:i = match(expand("%"), '\.\a\ax$')
144if s:i > 0
145 exe "runtime syntax/help_" . strpart(expand("%"), s:i + 1, 2) . ".vim"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000146endif
147
Bram Moolenaard04b7502010-07-08 22:27:55 +0200148" Italian
Bram Moolenaar7abcaab2010-07-12 23:05:41 +0200149if v:lang =~ '\<IT\>' || v:lang =~ '_IT\>' || v:lang =~? "italian"
150 syn keyword helpNote nota Nota NOTA nota: Nota: NOTA: notare Notare NOTARE notare: Notare: NOTARE:
Bram Moolenaard04b7502010-07-08 22:27:55 +0200151 syn match helpSpecial "Nma"me=e-2
152 syn match helpSpecial "Nme"me=e-2
153 syn match helpSpecial "Nmi"me=e-2
154 syn match helpSpecial "Nmo"me=e-2
155 syn match helpSpecial "\[interv.]"
156 syn region helpNotVi start="{non" start="{solo" start="{disponibile" end="}" contains=helpLeadBlank,helpHyperTextJump
157endif
158
Bram Moolenaar071d4272004-06-13 20:20:40 +0000159syn sync minlines=40
160
161
162" Define the default highlighting.
Bram Moolenaard857f0e2005-06-21 22:37:39 +0000163" Only used when an item doesn't have highlighting yet
Bram Moolenaard857f0e2005-06-21 22:37:39 +0000164hi def link helpIgnore Ignore
Bram Moolenaar36782082013-11-28 13:53:34 +0100165hi def link helpHyperTextJump Identifier
Bram Moolenaar18144c82006-04-12 21:52:12 +0000166hi def link helpBar Ignore
Bram Moolenaarfa13eef2013-02-06 17:34:04 +0100167hi def link helpBacktick Ignore
Bram Moolenaar7fc904b2006-04-13 20:37:35 +0000168hi def link helpStar Ignore
Bram Moolenaard857f0e2005-06-21 22:37:39 +0000169hi def link helpHyperTextEntry String
170hi def link helpHeadline Statement
171hi def link helpHeader PreProc
172hi def link helpSectionDelim PreProc
173hi def link helpVim Identifier
Bram Moolenaard38b0552012-04-25 19:07:41 +0200174hi def link helpCommand Comment
Bram Moolenaard857f0e2005-06-21 22:37:39 +0000175hi def link helpExample Comment
176hi def link helpOption Type
177hi def link helpNotVi Special
178hi def link helpSpecial Special
179hi def link helpNote Todo
Bram Moolenaar64d8e252016-09-06 22:12:34 +0200180hi def link helpWarning Todo
Bram Moolenaar3ec574f2017-06-13 18:12:01 +0200181hi def link helpDeprecated Todo
Bram Moolenaar071d4272004-06-13 20:20:40 +0000182
Bram Moolenaard857f0e2005-06-21 22:37:39 +0000183hi def link helpComment Comment
184hi def link helpConstant Constant
185hi def link helpString String
186hi def link helpCharacter Character
187hi def link helpNumber Number
188hi def link helpBoolean Boolean
189hi def link helpFloat Float
190hi def link helpIdentifier Identifier
191hi def link helpFunction Function
192hi def link helpStatement Statement
193hi def link helpConditional Conditional
194hi def link helpRepeat Repeat
195hi def link helpLabel Label
196hi def link helpOperator Operator
197hi def link helpKeyword Keyword
198hi def link helpException Exception
199hi def link helpPreProc PreProc
200hi def link helpInclude Include
201hi def link helpDefine Define
202hi def link helpMacro Macro
203hi def link helpPreCondit PreCondit
204hi def link helpType Type
205hi def link helpStorageClass StorageClass
206hi def link helpStructure Structure
207hi def link helpTypedef Typedef
208hi def link helpSpecialChar SpecialChar
209hi def link helpTag Tag
210hi def link helpDelimiter Delimiter
211hi def link helpSpecialComment SpecialComment
212hi def link helpDebug Debug
213hi def link helpUnderlined Underlined
214hi def link helpError Error
215hi def link helpTodo Todo
Bram Moolenaare344bea2005-09-01 20:46:49 +0000216hi def link helpURL String
Bram Moolenaar071d4272004-06-13 20:20:40 +0000217
Bram Moolenaar30ab04e2022-05-14 13:33:50 +0100218if expand('%:p') =~ '[/\\]doc[/\\]syntax.txt'
Bram Moolenaard899e512022-05-07 21:54:03 +0100219 " highlight groups with their respective color
220 import 'dist/vimhelp.vim'
221 call vimhelp.HighlightGroups()
222endif
223
Bram Moolenaar071d4272004-06-13 20:20:40 +0000224let b:current_syntax = "help"
225
Bram Moolenaar6ee8d892012-01-10 14:55:01 +0100226let &cpo = s:cpo_save
227unlet s:cpo_save
Bram Moolenaar071d4272004-06-13 20:20:40 +0000228" vim: ts=8 sw=2