blob: 134fc6763c54fcb6334c96bfcc9b717f142214ee [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Texinfo (macro package for TeX)
3" Maintainer: Sandor Kopanyi <sandor.kopanyi@mailbox.hu>
4" URL: <->
Bram Moolenaarf4b8e572004-06-24 15:53:16 +00005" Last Change: 2004 Jun 23
Bram Moolenaar071d4272004-06-13 20:20:40 +00006"
7" the file follows the Texinfo manual structure; this file is based
8" on manual for Texinfo version 4.0, 28 September 1999
9" since @ can have special meanings, everything is 'match'-ed and 'region'-ed
10" (including @ in 'iskeyword' option has unexpected effects)
11
12" Remove any old syntax stuff hanging around, if needed
13if version < 600
14 syn clear
15elseif exists("b:current_syntax")
16 finish
17endif
18
19if !exists("main_syntax")
20 let main_syntax = 'texinfo'
21endif
22
23"in Texinfo can be real big things, like tables; sync for that
24syn sync lines=200
25
26"some general stuff
27"syn match texinfoError "\S" contained TODO
28syn match texinfoIdent "\k\+" contained "IDENTifier
29syn match texinfoAssignment "\k\+\s*=\s*\k\+\s*$" contained "assigment statement ( var = val )
30syn match texinfoSinglePar "\k\+\s*$" contained "single parameter (used for several @-commands)
31syn match texinfoIndexPar "\k\k\s*$" contained "param. used for different *index commands (+ @documentlanguage command)
32
33
34"marking words and phrases (chap. 9 in Texinfo manual)
35"(almost) everything appears as 'contained' too; is for tables (@table)
36
37"this chapter is at the beginning of this file to avoid overwritings
38
39syn match texinfoSpecialChar "@acronym" contained
40syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@acronym{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
41syn match texinfoSpecialChar "@b" contained
42syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@b{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
43syn match texinfoSpecialChar "@cite" contained
44syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@cite{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
45syn match texinfoSpecialChar "@code" contained
46syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@code{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
47syn match texinfoSpecialChar "@command" contained
48syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@command{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
49syn match texinfoSpecialChar "@dfn" contained
50syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@dfn{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
51syn match texinfoSpecialChar "@email" contained
52syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@email{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
53syn match texinfoSpecialChar "@emph" contained
54syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@emph{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
55syn match texinfoSpecialChar "@env" contained
56syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@env{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
57syn match texinfoSpecialChar "@file" contained
58syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@file{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
59syn match texinfoSpecialChar "@i" contained
60syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@i{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
61syn match texinfoSpecialChar "@kbd" contained
62syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@kbd{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
63syn match texinfoSpecialChar "@key" contained
64syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@key{" end="}" contains=texinfoSpecialChar
65syn match texinfoSpecialChar "@option" contained
66syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@option{" end="}" contains=texinfoSpecialChar
67syn match texinfoSpecialChar "@r" contained
68syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@r{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
69syn match texinfoSpecialChar "@samp" contained
70syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@samp{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
71syn match texinfoSpecialChar "@sc" contained
72syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@sc{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
73syn match texinfoSpecialChar "@strong" contained
74syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@strong{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
75syn match texinfoSpecialChar "@t" contained
76syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@t{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
77syn match texinfoSpecialChar "@url" contained
78syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@url{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
79syn match texinfoSpecialChar "@var" contained
80syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@var{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
81syn match texinfoAtCmd "^@kbdinputstyle" nextgroup=texinfoSinglePar skipwhite
82
83
84"overview of Texinfo (chap. 1 in Texinfo manual)
85syn match texinfoComment "@c .*"
86syn match texinfoComment "@c$"
87syn match texinfoComment "@comment .*"
88syn region texinfoMltlnAtCmd matchgroup=texinfoComment start="^@ignore\s*$" end="^@end ignore\s*$" contains=ALL
89
90
91"beginning a Texinfo file (chap. 3 in Texinfo manual)
92syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="@center " skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd oneline
93syn region texinfoMltlnDMAtCmd matchgroup=texinfoAtCmd start="^@detailmenu\s*$" end="^@end detailmenu\s*$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
94syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@setfilename " skip="\\$" end="$" contains=texinfoSpecialChar oneline
95syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@settitle " skip="\\$" end="$" contains=texinfoSpecialChar oneline
96syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@shorttitlepage " skip="\\$" end="$" contains=texinfoSpecialChar oneline
97syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@title " skip="\\$" end="$" contains=texinfoSpecialChar oneline
98syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@titlefont{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
99syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@titlepage\s*$" end="^@end titlepage\s*$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoMltlnDMAtCmd,texinfoAtCmd,texinfoPrmAtCmd,texinfoMltlnAtCmd
100syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@vskip " skip="\\$" end="$" contains=texinfoSpecialChar oneline
101syn match texinfoAtCmd "^@exampleindent" nextgroup=texinfoSinglePar skipwhite
102syn match texinfoAtCmd "^@headings" nextgroup=texinfoSinglePar skipwhite
103syn match texinfoAtCmd "^\\input" nextgroup=texinfoSinglePar skipwhite
104syn match texinfoAtCmd "^@paragraphindent" nextgroup=texinfoSinglePar skipwhite
105syn match texinfoAtCmd "^@setchapternewpage" nextgroup=texinfoSinglePar skipwhite
106
107
108"ending a Texinfo file (chap. 4 in Texinfo manual)
109syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="@author " skip="\\$" end="$" contains=texinfoSpecialChar oneline
110"all below @bye should be comment TODO
111syn match texinfoAtCmd "^@bye\s*$"
112syn match texinfoAtCmd "^@contents\s*$"
113syn match texinfoAtCmd "^@printindex" nextgroup=texinfoIndexPar skipwhite
114syn match texinfoAtCmd "^@setcontentsaftertitlepage\s*$"
115syn match texinfoAtCmd "^@setshortcontentsaftertitlepage\s*$"
116syn match texinfoAtCmd "^@shortcontents\s*$"
117syn match texinfoAtCmd "^@summarycontents\s*$"
118
119
120"chapter structuring (chap. 5 in Texinfo manual)
121syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendix" skip="\\$" end="$" contains=texinfoSpecialChar oneline
122syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendixsec" skip="\\$" end="$" contains=texinfoSpecialChar oneline
123syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendixsection" skip="\\$" end="$" contains=texinfoSpecialChar oneline
124syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendixsubsec" skip="\\$" end="$" contains=texinfoSpecialChar oneline
125syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@appendixsubsubsec" skip="\\$" end="$" contains=texinfoSpecialChar oneline
126syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@centerchap" skip="\\$" end="$" contains=texinfoSpecialChar oneline
127syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@chapheading" skip="\\$" end="$" contains=texinfoSpecialChar oneline
128syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@chapter" skip="\\$" end="$" contains=texinfoSpecialChar oneline
129syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@heading" skip="\\$" end="$" contains=texinfoSpecialChar oneline
130syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@majorheading" skip="\\$" end="$" contains=texinfoSpecialChar oneline
131syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@section" skip="\\$" end="$" contains=texinfoSpecialChar oneline
132syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subheading " skip="\\$" end="$" contains=texinfoSpecialChar oneline
133syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subsection" skip="\\$" end="$" contains=texinfoSpecialChar oneline
134syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subsubheading" skip="\\$" end="$" contains=texinfoSpecialChar oneline
135syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subsubsection" skip="\\$" end="$" contains=texinfoSpecialChar oneline
136syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@subtitle" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd oneline
137syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@unnumbered" skip="\\$" end="$" contains=texinfoSpecialChar oneline
138syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@unnumberedsec" skip="\\$" end="$" contains=texinfoSpecialChar oneline
139syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@unnumberedsubsec" skip="\\$" end="$" contains=texinfoSpecialChar oneline
140syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@unnumberedsubsubsec" skip="\\$" end="$" contains=texinfoSpecialChar oneline
141syn match texinfoAtCmd "^@lowersections\s*$"
142syn match texinfoAtCmd "^@raisesections\s*$"
143
144
145"nodes (chap. 6 in Texinfo manual)
146syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@anchor{" end="}"
147syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@top" skip="\\$" end="$" contains=texinfoSpecialChar oneline
148syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@node" skip="\\$" end="$" contains=texinfoSpecialChar oneline
149
150
151"menus (chap. 7 in Texinfo manual)
152syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@menu\s*$" end="^@end menu\s*$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoMltlnDMAtCmd
153
154
155"cross references (chap. 8 in Texinfo manual)
156syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@inforef{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
157syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@pxref{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
158syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@ref{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
159syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@uref{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
160syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@xref{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
161
162
163"marking words and phrases (chap. 9 in Texinfo manual)
164"(almost) everything appears as 'contained' too; is for tables (@table)
165
166"this chapter is at the beginning of this file to avoid overwritings
167
168
169"quotations and examples (chap. 10 in Texinfo manual)
170syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@cartouche\s*$" end="^@end cartouche\s*$" contains=ALL
171syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@display\s*$" end="^@end display\s*$" contains=ALL
172syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@example\s*$" end="^@end example\s*$" contains=ALL
173syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@flushleft\s*$" end="^@end flushleft\s*$" contains=ALL
174syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@flushright\s*$" end="^@end flushright\s*$" contains=ALL
175syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@format\s*$" end="^@end format\s*$" contains=ALL
176syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@lisp\s*$" end="^@end lisp\s*$" contains=ALL
177syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@quotation\s*$" end="^@end quotation\s*$" contains=ALL
178syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@smalldisplay\s*$" end="^@end smalldisplay\s*$" contains=ALL
179syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@smallexample\s*$" end="^@end smallexample\s*$" contains=ALL
180syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@smallformat\s*$" end="^@end smallformat\s*$" contains=ALL
181syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@smalllisp\s*$" end="^@end smalllisp\s*$" contains=ALL
182syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@exdent" skip="\\$" end="$" contains=texinfoSpecialChar oneline
183syn match texinfoAtCmd "^@noindent\s*$"
184syn match texinfoAtCmd "^@smallbook\s*$"
185
186
187"lists and tables (chap. 11 in Texinfo manual)
188syn match texinfoAtCmd "@asis" contained
189syn match texinfoAtCmd "@columnfractions" contained
190syn match texinfoAtCmd "@item" contained
191syn match texinfoAtCmd "@itemx" contained
192syn match texinfoAtCmd "@tab" contained
193syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@enumerate" end="^@end enumerate\s*$" contains=ALL
194syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ftable" end="^@end ftable\s*$" contains=ALL
195syn region texinfoMltlnNAtCmd matchgroup=texinfoAtCmd start="^@itemize" end="^@end itemize\s*$" contains=ALL
196syn region texinfoMltlnNAtCmd matchgroup=texinfoAtCmd start="^@multitable" end="^@end multitable\s*$" contains=ALL
197syn region texinfoMltlnNAtCmd matchgroup=texinfoAtCmd start="^@table" end="^@end table\s*$" contains=ALL
198syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@vtable" end="^@end vtable\s*$" contains=ALL
199
200
201"indices (chap. 12 in Texinfo manual)
202syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@\(c\|f\|k\|p\|t\|v\)index" skip="\\$" end="$" contains=texinfoSpecialChar oneline
203syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@..index" skip="\\$" end="$" contains=texinfoSpecialChar oneline
204"@defcodeindex and @defindex is defined after chap. 15's @def* commands (otherwise those ones will overwrite these ones)
205syn match texinfoSIPar "\k\k\s*\k\k\s*$" contained
206syn match texinfoAtCmd "^@syncodeindex" nextgroup=texinfoSIPar skipwhite
207syn match texinfoAtCmd "^@synindex" nextgroup=texinfoSIPar skipwhite
208
209"special insertions (chap. 13 in Texinfo manual)
210syn match texinfoSpecialChar "@\(!\|?\|@\|\s\)"
211syn match texinfoSpecialChar "@{"
212syn match texinfoSpecialChar "@}"
213"accents
214syn match texinfoSpecialChar "@=."
215syn match texinfoSpecialChar "@\('\|\"\|\^\|`\)[aeiouyAEIOUY]"
216syn match texinfoSpecialChar "@\~[aeinouyAEINOUY]"
217syn match texinfoSpecialChar "@dotaccent{.}"
218syn match texinfoSpecialChar "@H{.}"
219syn match texinfoSpecialChar "@,{[cC]}"
220syn match texinfoSpecialChar "@AA{}"
221syn match texinfoSpecialChar "@aa{}"
222syn match texinfoSpecialChar "@L{}"
223syn match texinfoSpecialChar "@l{}"
224syn match texinfoSpecialChar "@O{}"
225syn match texinfoSpecialChar "@o{}"
226syn match texinfoSpecialChar "@ringaccent{.}"
227syn match texinfoSpecialChar "@tieaccent{..}"
228syn match texinfoSpecialChar "@u{.}"
229syn match texinfoSpecialChar "@ubaraccent{.}"
230syn match texinfoSpecialChar "@udotaccent{.}"
231syn match texinfoSpecialChar "@v{.}"
232"ligatures
233syn match texinfoSpecialChar "@AE{}"
234syn match texinfoSpecialChar "@ae{}"
235syn match texinfoSpecialChar "@copyright{}"
236syn match texinfoSpecialChar "@bullet" contained "for tables and lists
237syn match texinfoSpecialChar "@bullet{}"
238syn match texinfoSpecialChar "@dotless{i}"
239syn match texinfoSpecialChar "@dotless{j}"
240syn match texinfoSpecialChar "@dots{}"
241syn match texinfoSpecialChar "@enddots{}"
242syn match texinfoSpecialChar "@equiv" contained "for tables and lists
243syn match texinfoSpecialChar "@equiv{}"
244syn match texinfoSpecialChar "@error{}"
245syn match texinfoSpecialChar "@exclamdown{}"
246syn match texinfoSpecialChar "@expansion{}"
247syn match texinfoSpecialChar "@minus" contained "for tables and lists
248syn match texinfoSpecialChar "@minus{}"
249syn match texinfoSpecialChar "@OE{}"
250syn match texinfoSpecialChar "@oe{}"
251syn match texinfoSpecialChar "@point" contained "for tables and lists
252syn match texinfoSpecialChar "@point{}"
253syn match texinfoSpecialChar "@pounds{}"
254syn match texinfoSpecialChar "@print{}"
255syn match texinfoSpecialChar "@questiondown{}"
256syn match texinfoSpecialChar "@result" contained "for tables and lists
257syn match texinfoSpecialChar "@result{}"
258syn match texinfoSpecialChar "@ss{}"
259syn match texinfoSpecialChar "@TeX{}"
260"other
261syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@dmn{" end="}"
262syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@footnote{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
263syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@image{" end="}"
264syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@math{" end="}"
265syn match texinfoAtCmd "@footnotestyle" nextgroup=texinfoSinglePar skipwhite
266
267
268"making and preventing breaks (chap. 14 in Texinfo manual)
269syn match texinfoSpecialChar "@\(\*\|-\|\.\)"
270syn match texinfoAtCmd "^@need" nextgroup=texinfoSinglePar skipwhite
271syn match texinfoAtCmd "^@page\s*$"
272syn match texinfoAtCmd "^@sp" nextgroup=texinfoSinglePar skipwhite
273syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@group\s*$" end="^@end group\s*$" contains=ALL
274syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@hyphenation{" end="}"
275syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@w{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
276
277
278"definition commands (chap. 15 in Texinfo manual)
279syn match texinfoMltlnAtCmdFLine "^@def\k\+" contained
280syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@def\k\+" end="^@end def\k\+$" contains=ALL
281
282"next 2 commands are from chap. 12; must be defined after @def* commands above to overwrite them
283syn match texinfoAtCmd "@defcodeindex" nextgroup=texinfoIndexPar skipwhite
284syn match texinfoAtCmd "@defindex" nextgroup=texinfoIndexPar skipwhite
285
286
287"conditionally visible text (chap. 16 in Texinfo manual)
288syn match texinfoAtCmd "^@clear" nextgroup=texinfoSinglePar skipwhite
289syn region texinfoMltln2AtCmd matchgroup=texinfoAtCmd start="^@html\s*$" end="^@end html\s*$"
290syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ifclear" end="^@end ifclear\s*$" contains=ALL
291syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ifhtml" end="^@end ifhtml\s*$" contains=ALL
292syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ifinfo" end="^@end ifinfo\s*$" contains=ALL
293syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ifnothtml" end="^@end ifnothtml\s*$" contains=ALL
294syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ifnotinfo" end="^@end ifnotinfo\s*$" contains=ALL
295syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ifnottex" end="^@end ifnottex\s*$" contains=ALL
296syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@ifset" end="^@end ifset\s*$" contains=ALL
297syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@iftex" end="^@end iftex\s*$" contains=ALL
298syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@set " skip="\\$" end="$" contains=texinfoSpecialChar oneline
299syn region texinfoTexCmd start="\$\$" end="\$\$" contained
300syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@tex" end="^@end tex\s*$" contains=texinfoTexCmd
301syn region texinfoBrcPrmAtCmd matchgroup=texinfoAtCmd start="@value{" end="}" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
302
303
304"internationalization (chap. 17 in Texinfo manual)
305syn match texinfoAtCmd "@documentencoding" nextgroup=texinfoSinglePar skipwhite
306syn match texinfoAtCmd "@documentlanguage" nextgroup=texinfoIndexPar skipwhite
307
308
309"defining new texinfo commands (chap. 18 in Texinfo manual)
310syn match texinfoAtCmd "@alias" nextgroup=texinfoAssignment skipwhite
311syn match texinfoDIEPar "\S*\s*,\s*\S*\s*,\s*\S*\s*$" contained
312syn match texinfoAtCmd "@definfoenclose" nextgroup=texinfoDIEPar skipwhite
313syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@macro" end="^@end macro\s*$" contains=ALL
314
315
316"formatting hardcopy (chap. 19 in Texinfo manual)
317syn match texinfoAtCmd "^@afourlatex\s*$"
318syn match texinfoAtCmd "^@afourpaper\s*$"
319syn match texinfoAtCmd "^@afourwide\s*$"
320syn match texinfoAtCmd "^@finalout\s*$"
321syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@pagesizes" end="$" oneline
322
323
324"creating and installing Info Files (chap. 20 in Texinfo manual)
325syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@dircategory" skip="\\$" end="$" oneline
326syn region texinfoMltlnAtCmd matchgroup=texinfoAtCmd start="^@direntry\s*$" end="^@end direntry\s*$" contains=texinfoSpecialChar
327syn match texinfoAtCmd "^@novalidate\s*$"
328
329
330"include files (appendix E in Texinfo manual)
331syn match texinfoAtCmd "^@include" nextgroup=texinfoSinglePar skipwhite
332
333
334"page headings (appendix F in Texinfo manual)
335syn match texinfoHFSpecialChar "@|" contained
336syn match texinfoThisAtCmd "@thischapter" contained
337syn match texinfoThisAtCmd "@thischaptername" contained
338syn match texinfoThisAtCmd "@thisfile" contained
339syn match texinfoThisAtCmd "@thispage" contained
340syn match texinfoThisAtCmd "@thistitle" contained
341syn match texinfoThisAtCmd "@today{}" contained
342syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@evenfooting" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
343syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@evenheading" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
344syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@everyfooting" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
345syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@everyheading" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
346syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@oddfooting" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
347syn region texinfoPrmAtCmd matchgroup=texinfoAtCmd start="^@oddheading" skip="\\$" end="$" contains=texinfoSpecialChar,texinfoBrcPrmAtCmd,texinfoThisAtCmd,texinfoHFSpecialChar oneline
348
349
350"refilling paragraphs (appendix H in Texinfo manual)
351syn match texinfoAtCmd "@refill"
352
353
Bram Moolenaarf4b8e572004-06-24 15:53:16 +0000354syn cluster texinfoAll contains=ALLBUT,texinfoThisAtCmd,texinfoHFSpecialChar
Bram Moolenaar071d4272004-06-13 20:20:40 +0000355syn cluster texinfoReducedAll contains=texinfoSpecialChar,texinfoBrcPrmAtCmd
356"==============================================================================
357" highlighting
358
359" For version 5.7 and earlier: only when not done already
360" For version 5.8 and later: only when an item doesn't have highlighting yet
361if version >= 508 || !exists("did_texinfo_syn_inits")
362
363 if version < 508
364 let did_texinfo_syn_inits = 1
365 command -nargs=+ HiLink hi link <args>
366 else
367 command -nargs=+ HiLink hi def link <args>
368 endif
369
370 HiLink texinfoSpecialChar Special
371 HiLink texinfoHFSpecialChar Special
372
373 HiLink texinfoError Error
374 HiLink texinfoIdent Identifier
375 HiLink texinfoAssignment Identifier
376 HiLink texinfoSinglePar Identifier
377 HiLink texinfoIndexPar Identifier
378 HiLink texinfoSIPar Identifier
379 HiLink texinfoDIEPar Identifier
380 HiLink texinfoTexCmd PreProc
381
382
383 HiLink texinfoAtCmd Statement "@-command
384 HiLink texinfoPrmAtCmd String "@-command in one line with unknown nr. of parameters
385 "is String because is found as a region and is 'matchgroup'-ed
386 "to texinfoAtCmd
387 HiLink texinfoBrcPrmAtCmd String "@-command with parameter(s) in braces ({})
388 "is String because is found as a region and is 'matchgroup'-ed to texinfoAtCmd
389 HiLink texinfoMltlnAtCmdFLine texinfoAtCmd "repeated embedded First lines in @-commands
390 HiLink texinfoMltlnAtCmd String "@-command in multiple lines
391 "is String because is found as a region and is 'matchgroup'-ed to texinfoAtCmd
392 HiLink texinfoMltln2AtCmd PreProc "@-command in multiple lines (same as texinfoMltlnAtCmd, just with other colors)
393 HiLink texinfoMltlnDMAtCmd PreProc "@-command in multiple lines (same as texinfoMltlnAtCmd, just with other colors; used for @detailmenu, which can be included in @menu)
394 HiLink texinfoMltlnNAtCmd Normal "@-command in multiple lines (same as texinfoMltlnAtCmd, just with other colors)
395 HiLink texinfoThisAtCmd Statement "@-command used in headers and footers (@this... series)
396
397 HiLink texinfoComment Comment
398
399 delcommand HiLink
400endif
401
402
403let b:current_syntax = "texinfo"
404
405if main_syntax == 'texinfo'
406 unlet main_syntax
407endif
408
409" vim: ts=8