blob: 6bd3726279d21a4a6aa82220a98a0c0dad97d648 [file] [log] [blame]
Bram Moolenaarc6249bb2006-04-15 20:25:09 +00001" DoxyGen syntax hilighting extension for c/c++/idl/java
Bram Moolenaare37d50a2008-08-06 17:06:04 +00002" Language: doxygen on top of c, cpp, idl, java, php
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00003" Maintainer: Michael Geddes <vimmer@frog.wheelycreek.net>
Bram Moolenaarc6249bb2006-04-15 20:25:09 +00004" Author: Michael Geddes
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01005" Last Changes: Jan 2009 (\tparam by Domnique Pelle, Aug 2013)
6" Nov 2017 (@throws by Domnique Pelle)
Bram Moolenaar5c736222010-01-06 20:54:52 +01007" Version: 1.23
Bram Moolenaarc6249bb2006-04-15 20:25:09 +00008"
Bram Moolenaare37d50a2008-08-06 17:06:04 +00009" Copyright 2004-2008 Michael Geddes
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000010" Please feel free to use, modify & distribute all or part of this script,
11" providing this copyright message remains.
12" I would appreciate being acknowledged in any derived scripts, and would
13" appreciate and welcome any updates, modifications or suggestions.
14
15" NOTE: Comments welcome!
16"
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000017" There are two variables that control the syntax highlighting produced by this
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000018" script:
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000019" doxygen_enhanced_colour - Use the (non-standard) original colours designed
20" for this highlighting.
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000021" doxygen_my_rendering - Disable the HTML bold/italic/underline rendering.
22"
23" A brief description without '.' or '!' will cause the end comment
24" character to be marked as an error. You can define the colour of this using
25" the highlight doxygenErrorComment.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000026" A \link without an \endlink will cause an error highlight on the end-comment.
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000027" This is defined by doxygenLinkError
28"
29" The variable g:doxygen_codeword_font can be set to the guifont for marking \c
30" words - a 'typewriter' like font normally. Spaces must be escaped. It can
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000031" also be set to any highlight attribute. Alternatively, a highlight for doxygenCodeWord
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000032" can be used to override it.
33"
Bram Moolenaare37d50a2008-08-06 17:06:04 +000034" By default, highlighting is done assuming you have the JAVADOC_AUTOBRIEF
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000035" setting turned on in your Doxygen configuration. If you don't, you
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000036" can set the variable g:doxygen_javadoc_autobrief to 0 to have the
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000037" highlighting more accurately reflect the way Doxygen will interpret your
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000038" comments.
39"
Bram Moolenaare37d50a2008-08-06 17:06:04 +000040" Support for cpp, c, idl, doxygen and php.
41"
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000042" Special thanks to: Wu Yongwei, Toby Allsopp
43"
44
45if exists('b:suppress_doxygen')
46 unlet b:suppress_doxygen
47 finish
48endif
49
50if exists('b:current_syntax') && b:current_syntax =~ 'doxygen' && !exists('doxygen_debug_script')
51 finish
52endif
53
54let s:cpo_save = &cpo
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000055try
56 set cpo&vim
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000057
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000058 " Start of Doxygen syntax hilighting:
59 "
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000060
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000061 " C/C++ Style line comments
Bram Moolenaare37d50a2008-08-06 17:06:04 +000062 syn region doxygenComment start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contains=doxygenSyncStart,doxygenStart,doxygenTODO keepend fold containedin=phpRegion
63 syn region doxygenCommentL start=+//[/!]<\@!+me=e-1 end=+$+ contains=doxygenStartL,@Spell keepend skipwhite skipnl nextgroup=doxygenComment2 fold containedin=phpRegion
64 syn region doxygenCommentL start=+//[/!]<+me=e-2 end=+$+ contains=doxygenStartL,@Spell keepend skipwhite skipnl fold containedin=phpRegion
65 syn region doxygenCommentL start=+//@\ze[{}]+ end=+$+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial,@Spell fold containedin=phpRegion
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000066
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000067 " Single line brief followed by multiline comment.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000068 syn region doxygenComment2 start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contained contains=doxygenSyncStart2,doxygenStart2,doxygenTODO keepend fold
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000069 " This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched.
70 syn match doxygenSyncStart2 +[^*/]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenSkipComment,doxygenStartSkip2 skipwhite skipnl
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000071
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000072 " Skip empty lines at the start for when comments start on the 2nd/3rd line.
73 syn match doxygenStartSkip2 +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBody,doxygenStartSpecial,doxygenStartSkip skipwhite skipnl
74 syn match doxygenStartSkip2 +^\s*\*$+ contained nextgroup=doxygenBody,doxygenStartSpecial,,doxygenStartSkip skipwhite skipnl
75 syn match doxygenStart2 +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenStartSkip2 skipwhite skipnl
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000076
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000077
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000078 " Match the Starting pattern (effectively creating the start of a BNF)
79 if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief
80 syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000081 syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenPrevL,doxygenBriefL,doxygenSpecial skipwhite
82 " Match the first sentence as a brief comment
83 if ! exists('g:doxygen_end_punctuation')
84 let g:doxygen_end_punctuation='[.]'
85 endif
86
87 exe 'syn region doxygenBrief contained start=+[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]+ start=+\(^\s*\)\@<!\*/\@!+ start=+\<\k+ skip=+'.doxygen_end_punctuation.'\S\@=+ end=+'.doxygen_end_punctuation.'+ end=+\(\s*\(\n\s*\*\=\s*\)[@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\@=+ contains=doxygenSmallSpecial,doxygenContinueComment,doxygenBriefEndComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink,@Spell skipnl nextgroup=doxygenBody'
88
89 syn match doxygenBriefEndComment +\*/+ contained
90
91 exe 'syn region doxygenBriefL start=+@\k\@!\|[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@]+ start=+\<+ skip=+'.doxygen_end_punctuation.'\S+ end=+'.doxygen_end_punctuation.'\|$+ contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell keepend'
92 syn match doxygenPrevL +<+ contained nextgroup=doxygenBriefL,doxygenSpecial skipwhite
Bram Moolenaarb21e5842006-04-16 18:30:08 +000093 else
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000094 syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000095 syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenPrevL,doxygenLine,doxygenSpecial skipwhite
96 syn region doxygenLine start=+@\k\@!\|[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@<]+ start=+\<+ end='$' contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell keepend
97 syn match doxygenPrevL +<+ contained nextgroup=doxygenLine,doxygenSpecial skipwhite
98
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000099 endif
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000100
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000101 " This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched.
102 syn match doxygenSyncStart +\ze[^*/]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000103
Bram Moolenaare37d50a2008-08-06 17:06:04 +0000104 syn region doxygenBriefLine contained start=+\<\k+ end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ contains=doxygenContinueComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink,@Spell skipwhite keepend
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000105
106 " Match a '<' for applying a comment to the previous element.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000107 syn match doxygenPrev +<+ contained nextgroup=doxygenBrief,doxygenBody,doxygenSpecial,doxygenStartSkip skipwhite
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000108
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000109if exists("c_comment_strings")
110 " These are anti-Doxygen comments. If there are more than two asterisks or 3 '/'s
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000111 " then turn the comments back into normal C comments.
112 syn region cComment start="/\*\*\*" end="\*/" contains=@cCommentGroup,cCommentString,cCharacter,cNumbersCom,cSpaceError
113 syn region cCommentL start="////" skip="\\$" end="$" contains=@cCommentGroup,cComment2String,cCharacter,cNumbersCom,cSpaceError
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000114else
115 syn region cComment start="/\*\*\*" end="\*/" contains=@cCommentGroup,cSpaceError
116 syn region cCommentL start="////" skip="\\$" end="$" contains=@cCommentGroup,cSpaceError
117endif
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000118
119 " Special commands at the start of the area: starting with '@' or '\'
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000120 syn region doxygenStartSpecial contained start=+[@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=doxygenSpecial nextgroup=doxygenSkipComment skipnl keepend
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000121 syn match doxygenSkipComment contained +^\s*\*/\@!+ nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenPage skipwhite
122
123 "syn region doxygenBodyBit contained start=+$+
124
125 " The main body of a doxygen comment.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000126 syn region doxygenBody contained start=+\(/\*[*!]\)\@<!<\|[^<]\|$+ matchgroup=doxygenEndComment end=+\*/+re=e-2,me=e-2 contains=doxygenContinueComment,doxygenTODO,doxygenSpecial,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000127
128 " These allow the skipping of comment continuation '*' characters.
129 syn match doxygenContinueComment contained +^\s*\*/\@!\s*+
130
131 " Catch a Brief comment without punctuation - flag it as an error but
132 " make sure the end comment is picked up also.
133 syn match doxygenErrorComment contained +\*/+
134
135
136 " Skip empty lines at the start for when comments start on the 2nd/3rd line.
137 if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief
138 syn match doxygenStartSkip +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
139 syn match doxygenStartSkip +^\s*\*$+ contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
140 else
141 syn match doxygenStartSkip +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage,doxygenBody skipwhite skipnl
142 syn match doxygenStartSkip +^\s*\*$+ contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage,doxygenBody skipwhite skipnl
143 endif
144
145 " Match an [@\]brief so that it moves to body-mode.
146 "
147 "
148 " syn match doxygenBriefLine contained
149 syn match doxygenBriefSpecial contained +[@\\]+ nextgroup=doxygenBriefWord skipwhite
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000150 syn region doxygenFindBriefSpecial start=+[@\\]brief\>+ end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ keepend contains=doxygenBriefSpecial nextgroup=doxygenBody keepend skipwhite skipnl contained
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000151
152
153 " Create the single word matching special identifiers.
154
155 fun! s:DxyCreateSmallSpecial( kword, name )
156
157 let mx='[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\\[\\<>&.]@\|[.,][0-9a-zA-Z_]\@=\|::\|([^)]*)\|&[0-9a-zA-Z]\{2,7};\)\+'
158 exe 'syn region doxygenSpecial'.a:name.'Word contained start=+'.a:kword.'+ end=+\(\_s\+'.mx.'\)\@<=[-a-zA-Z_0-9+*/^%|~!=&\\]\@!+ skipwhite contains=doxygenContinueComment,doxygen'.a:name.'Word'
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000159 exe 'syn match doxygen'.a:name.'Word contained "\_s\@<='.mx.'" contains=doxygenHtmlSpecial,@Spell keepend'
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000160 endfun
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000161 call s:DxyCreateSmallSpecial('p', 'Code')
162 call s:DxyCreateSmallSpecial('c', 'Code')
163 call s:DxyCreateSmallSpecial('b', 'Bold')
164 call s:DxyCreateSmallSpecial('e', 'Emphasised')
165 call s:DxyCreateSmallSpecial('em', 'Emphasised')
166 call s:DxyCreateSmallSpecial('a', 'Argument')
167 call s:DxyCreateSmallSpecial('ref', 'Ref')
168 delfun s:DxyCreateSmallSpecial
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000169
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000170 syn match doxygenSmallSpecial contained +[@\\]\(\<[npcbea]\>\|\<em\>\|\<ref\>\|\<link\>\|f\$\|[$\\&<>#]\)\@=+ nextgroup=doxygenOtherLink,doxygenHyperLink,doxygenHashLink,doxygenFormula,doxygenSymbol,doxygenSpecial.*Word
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000171
172 " Now for special characters
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000173 syn match doxygenSpecial contained +[@\\]\(\<[npcbea]\>\|\<em\>\|\<ref\|\<link\>\>\|\<f\$\|[$\\&<>#]\)\@!+ nextgroup=doxygenParam,doxygenRetval,doxygenBriefWord,doxygenBold,doxygenBOther,doxygenOther,doxygenOtherTODO,doxygenOtherWARN,doxygenOtherBUG,doxygenPage,doxygenGroupDefine,doxygenCodeRegion,doxygenVerbatimRegion,doxygenDotRegion
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000174 " doxygenOtherLink,doxygenSymbol,doxygenFormula,doxygenErrorSpecial,doxygenSpecial.*Word
175 "
176 syn match doxygenGroupDefine contained +@\@<=[{}]+
177 syn match doxygenGroupDefineSpecial contained +@\ze[{}]+
178
179 syn match doxygenErrorSpecial contained +\s+
180
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000181 " Match parameters and retvals (highlighting the first word as special).
182 syn match doxygenParamDirection contained "\v\[(\s*in>((]\s*\[|\s*,\s*)out>)=|out>((]\s*\[|\s*,\s*)in>)=)\]" nextgroup=doxygenParamName skipwhite
Bram Moolenaar9d98fe92013-08-03 18:35:36 +0200183 syn keyword doxygenParam contained param tparam nextgroup=doxygenParamName,doxygenParamDirection skipwhite
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000184 syn match doxygenParamName contained +[A-Za-z0-9_:]\++ nextgroup=doxygenSpecialMultilineDesc skipwhite
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100185 syn keyword doxygenRetval contained retval throw throws exception nextgroup=doxygenParamName skipwhite
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000186
187 " Match one line identifiers.
188 syn keyword doxygenOther contained addindex anchor
189 \ dontinclude endhtmlonly endlatexonly showinitializer hideinitializer
190 \ example htmlonly image include ingroup internal latexonly line
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100191 \ overload related relates relatedalso relatesalso sa skip skipline
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000192 \ until verbinclude version addtogroup htmlinclude copydoc dotfile
193 \ xmlonly endxmlonly
194 \ nextgroup=doxygenSpecialOnelineDesc
195
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000196 syn region doxygenCodeRegion contained matchgroup=doxygenOther start=+\<code\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endcode\>+ contains=doxygenCodeRegionSpecial,doxygenContinueComment,doxygenErrorComment,@NoSpell
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000197 syn match doxygenCodeRegionSpecial contained +[\\@]\(endcode\>\)\@=+
198
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000199 syn region doxygenVerbatimRegion contained matchgroup=doxygenOther start=+\<verbatim\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endverbatim\>+ contains=doxygenVerbatimRegionSpecial,doxygenContinueComment,doxygenErrorComment,@NoSpell
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000200 syn match doxygenVerbatimRegionSpecial contained +[\\@]\(endverbatim\>\)\@=+
201
Bram Moolenaareb3593b2006-04-22 22:33:57 +0000202 if exists('b:current_syntax')
203 let b:doxygen_syntax_save=b:current_syntax
204 unlet b:current_syntax
205 endif
206
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000207 syn include @Dotx syntax/dot.vim
Bram Moolenaareb3593b2006-04-22 22:33:57 +0000208
209 if exists('b:doxygen_syntax_save')
210 let b:current_syntax=b:doxygen_syntax_save
211 unlet b:doxygen_syntax_save
212 else
213 unlet b:current_syntax
214 endif
215
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000216 syn region doxygenDotRegion contained matchgroup=doxygenOther start=+\<dot\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<enddot\>+ contains=doxygenDotRegionSpecial,doxygenErrorComment,doxygenContinueComment,@NoSpell,@Dotx
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000217 syn match doxygenDotRegionSpecial contained +[\\@]\(enddot\>\)\@=+
218
219 " Match single line identifiers.
220 syn keyword doxygenBOther contained class enum file fn mainpage interface
221 \ namespace struct typedef union var def name
222 \ nextgroup=doxygenSpecialTypeOnelineDesc
223
224 syn keyword doxygenOther contained par nextgroup=doxygenHeaderLine
225 syn region doxygenHeaderLine start=+.+ end=+^+ contained skipwhite nextgroup=doxygenSpecialMultilineDesc
226
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100227 syn keyword doxygenOther contained arg author authors date deprecated li result return returns see invariant note post pre remark remarks since test nextgroup=doxygenSpecialMultilineDesc
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000228 syn keyword doxygenOtherTODO contained todo attention nextgroup=doxygenSpecialMultilineDesc
229 syn keyword doxygenOtherWARN contained warning nextgroup=doxygenSpecialMultilineDesc
230 syn keyword doxygenOtherBUG contained bug nextgroup=doxygenSpecialMultilineDesc
231
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000232 " Handle \link, \endlink, highlighting the link-to and the link text bits separately.
233 syn region doxygenOtherLink matchgroup=doxygenOther start=+\<link\>+ end=+[\@]\@<=endlink\>+ contained contains=doxygenLinkWord,doxygenContinueComment,doxygenLinkError,doxygenEndlinkSpecial
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000234 syn match doxygenEndlinkSpecial contained +[\\@]\zeendlink\>+
235
236 syn match doxygenLinkWord "[_a-zA-Z:#()][_a-z0-9A-Z:#()]*\>" contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment
237 syn match doxygenLinkRest +[^*@\\]\|\*/\@!\|[@\\]\(endlink\>\)\@!+ contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment
238 syn match doxygenContinueLinkComment contained +^\s*\*\=[^/]+me=e-1 nextgroup=doxygenLinkRest
239 syn match doxygenLinkError "\*/" contained
240 " #Link hilighting.
241 syn match doxygenHashLink /\([a-zA-Z_][0-9a-zA-Z_]*\)\?#\(\.[0-9a-zA-Z_]\@=\|[a-zA-Z0-9_]\+\|::\|()\)\+/ contained contains=doxygenHashSpecial
242 syn match doxygenHashSpecial /#/ contained
Bram Moolenaar5c736222010-01-06 20:54:52 +0100243 syn match doxygenHyperLink /\(\s\|^\s*\*\?\)\@<=\(http\|https\|ftp\):\/\/[-0-9a-zA-Z_?&=+#%/.!':;@~]\+/ contained
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000244
245 " Handle \page. This does not use doxygenBrief.
246 syn match doxygenPage "[\\@]page\>"me=s+1 contained skipwhite nextgroup=doxygenPagePage
247 syn keyword doxygenPagePage page contained skipwhite nextgroup=doxygenPageIdent
248 syn region doxygenPageDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenBody
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000249 syn match doxygenPageIdent "\<[a-zA-Z_0-9]\+\>" contained nextgroup=doxygenPageDesc
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000250
251 " Handle section
252 syn keyword doxygenOther defgroup section subsection subsubsection weakgroup contained skipwhite nextgroup=doxygenSpecialIdent
253 syn region doxygenSpecialSectionDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenContinueComment
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000254 syn match doxygenSpecialIdent "\<[a-zA-Z_0-9]\+\>" contained nextgroup=doxygenSpecialSectionDesc
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000255
256 " Does the one-line description for the one-line type identifiers.
257 syn region doxygenSpecialTypeOnelineDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend
258 syn region doxygenSpecialOnelineDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend
259
260 " Handle the multiline description for the multiline type identifiers.
261 " Continue until an 'empty' line (can contain a '*' continuation) or until the
262 " next whole-line @ command \ command.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000263 syn region doxygenSpecialMultilineDesc start=+.\++ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ contained contains=doxygenSpecialContinueComment,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell skipwhite keepend
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000264 syn match doxygenSpecialContinueComment contained +^\s*\*/\@!\s*+ nextgroup=doxygenSpecial skipwhite
265
266 " Handle special cases 'bold' and 'group'
267 syn keyword doxygenBold contained bold nextgroup=doxygenSpecialHeading
268 syn keyword doxygenBriefWord contained brief nextgroup=doxygenBriefLine skipwhite
269 syn match doxygenSpecialHeading +.\++ contained skipwhite
270 syn keyword doxygenGroup contained group nextgroup=doxygenGroupName skipwhite
271 syn keyword doxygenGroupName contained +\k\++ nextgroup=doxygenSpecialOnelineDesc skipwhite
272
273 " Handle special symbol identifiers @$, @\, @$ etc
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000274 syn match doxygenSymbol contained +[$\\&<>#n]+
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000275
276 " Simplistic handling of formula regions
277 syn region doxygenFormula contained matchgroup=doxygenFormulaEnds start=+f\$+ end=+[@\\]f\$+ contains=doxygenFormulaSpecial,doxygenFormulaOperator
278 syn match doxygenFormulaSpecial contained +[@\\]\(f[^$]\|[^f]\)+me=s+1 nextgroup=doxygenFormulaKeyword,doxygenFormulaEscaped
279 syn match doxygenFormulaEscaped contained "."
280 syn match doxygenFormulaKeyword contained "[a-z]\+"
281 syn match doxygenFormulaOperator contained +[_^]+
282
283 syn region doxygenFormula contained matchgroup=doxygenFormulaEnds start=+f\[+ end=+[@\\]f]+ contains=doxygenFormulaSpecial,doxygenFormulaOperator,doxygenAtom
284 syn region doxygenAtom contained transparent matchgroup=doxygenFormulaOperator start=+{+ end=+}+ contains=doxygenAtom,doxygenFormulaSpecial,doxygenFormulaOperator
285
286 " Add TODO hilighting.
287 syn keyword doxygenTODO contained TODO README XXX FIXME
288
289 " Supported HTML subset. Not perfect, but okay.
290 syn case ignore
291 syn region doxygenHtmlTag contained matchgroup=doxygenHtmlCh start=+\v\</=\ze([biuap]|em|strong|img|br|center|code|dfn|d[ldt]|hr|h[0-3]|li|[ou]l|pre|small|sub|sup|table|tt|var|caption|src|alt|longdesc|name|height|width|usemap|ismap|href|type)>+ skip=+\\<\|\<\k\+=\("[^"]*"\|'[^']*\)+ end=+>+ contains=doxygenHtmlCmd,doxygenContinueComment,doxygenHtmlVar
292 syn keyword doxygenHtmlCmd contained b i em strong u img a br p center code dfn dl dd dt hr h1 h2 h3 li ol ul pre small sub sup table tt var caption nextgroup=doxygenHtmlVar skipwhite
293 syn keyword doxygenHtmlVar contained src alt longdesc name height width usemap ismap href type nextgroup=doxygenHtmlEqu skipwhite
294 syn match doxygenHtmlEqu contained +=+ nextgroup=doxygenHtmlExpr skipwhite
295 syn match doxygenHtmlExpr contained +"\(\\.\|[^"]\)*"\|'\(\\.\|[^']\)*'+ nextgroup=doxygenHtmlVar skipwhite
296 syn case match
297 syn match doxygenHtmlSpecial contained "&\(copy\|quot\|[AEIOUYaeiouy]uml\|[AEIOUYaeiouy]acute\|[AEIOUaeiouy]grave\|[AEIOUaeiouy]circ\|[ANOano]tilde\|szlig\|[Aa]ring\|nbsp\|gt\|lt\|amp\);"
298
299 syn cluster doxygenHtmlGroup contains=doxygenHtmlCode,doxygenHtmlBold,doxygenHtmlUnderline,doxygenHtmlItalic,doxygenHtmlSpecial,doxygenHtmlTag,doxygenHtmlLink
300
301 syn cluster doxygenHtmlTop contains=@Spell,doxygenHtmlSpecial,doxygenHtmlTag,doxygenContinueComment
302 " Html Support
303 syn region doxygenHtmlLink contained start=+<[aA]\>\s*\(\n\s*\*\s*\)\=\(\(name\|href\)=\("[^"]*"\|'[^']*'\)\)\=\s*>+ end=+</[aA]>+me=e-4 contains=@doxygenHtmlTop
304 hi link doxygenHtmlLink Underlined
305
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000306 syn region doxygenHtmlBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderline,doxygenHtmlBoldItalic,@Spell
307 syn region doxygenHtmlBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderline,doxygenHtmlBoldItalic,@Spell
308 syn region doxygenHtmlBoldUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderlineItalic,@Spell
309 syn region doxygenHtmlBoldItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldItalicUnderline,@Spell
310 syn region doxygenHtmlBoldItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,doxygenHtmlBoldItalicUnderline,@Spell
311 syn region doxygenHtmlBoldUnderlineItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,@Spell
312 syn region doxygenHtmlBoldUnderlineItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,@Spell
313 syn region doxygenHtmlBoldItalicUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderlineItalic,@Spell
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000314
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000315 syn region doxygenHtmlUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBold,doxygenHtmlUnderlineItalic,@Spell
316 syn region doxygenHtmlUnderlineBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBoldItalic,@Spell
317 syn region doxygenHtmlUnderlineBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBoldItalic,@Spell
318 syn region doxygenHtmlUnderlineItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,htmUnderlineItalicBold,@Spell
319 syn region doxygenHtmlUnderlineItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,htmUnderlineItalicBold,@Spell
320 syn region doxygenHtmlUnderlineItalicBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,@Spell
321 syn region doxygenHtmlUnderlineItalicBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,@Spell
322 syn region doxygenHtmlUnderlineBoldItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,@Spell
323 syn region doxygenHtmlUnderlineBoldItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,@Spell
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000324
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000325 syn region doxygenHtmlItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicBold,doxygenHtmlItalicUnderline,@Spell
326 syn region doxygenHtmlItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,@Spell
327 syn region doxygenHtmlItalicBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicBoldUnderline,@Spell
328 syn region doxygenHtmlItalicBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlItalicBoldUnderline,@Spell
329 syn region doxygenHtmlItalicBoldUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,@Spell
330 syn region doxygenHtmlItalicUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicUnderlineBold,@Spell
331 syn region doxygenHtmlItalicUnderlineBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,@Spell
332 syn region doxygenHtmlItalicUnderlineBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,@Spell
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000333
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000334 syn region doxygenHtmlCode contained start="\c<code\>" end="\c</code>"me=e-7 contains=@doxygenHtmlTop,@NoSpell
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000335
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000336 " Prevent the doxygen contained matches from leaking into the c/rc groups.
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000337 syn cluster cParenGroup add=doxygen.*
338 syn cluster cParenGroup remove=doxygenComment,doxygenCommentL
339 syn cluster cPreProcGroup add=doxygen.*
340 syn cluster cMultiGroup add=doxygen.*
341 syn cluster rcParenGroup add=doxygen.*
342 syn cluster rcParenGroup remove=doxygenComment,doxygenCommentL
343 syn cluster rcGroup add=doxygen.*
344
345 let s:my_syncolor=0
346 if !exists(':SynColor')
347 command -nargs=+ SynColor hi def <args>
348 let s:my_syncolor=1
349 endif
350
351 let s:my_synlink=0
352 if !exists(':SynLink')
353 command -nargs=+ SynLink hi def link <args>
354 let s:my_synlink=1
355 endif
356
357 try
358 "let did_doxygen_syntax_inits = &background
359 hi doxygen_Dummy guifg=black
360
361 fun! s:Doxygen_Hilights_Base()
362 SynLink doxygenHtmlSpecial Special
363 SynLink doxygenHtmlVar Type
364 SynLink doxygenHtmlExpr String
365
366 SynLink doxygenSmallSpecial SpecialChar
367
368 SynLink doxygenSpecialCodeWord doxygenSmallSpecial
369 SynLink doxygenSpecialBoldWord doxygenSmallSpecial
370 SynLink doxygenSpecialEmphasisedWord doxygenSmallSpecial
371 SynLink doxygenSpecialArgumentWord doxygenSmallSpecial
372
373 " SynColor doxygenFormulaKeyword cterm=bold ctermfg=DarkMagenta guifg=DarkMagenta gui=bold
374 SynLink doxygenFormulaKeyword Keyword
375 "SynColor doxygenFormulaEscaped ctermfg=DarkMagenta guifg=DarkMagenta gui=bold
376 SynLink doxygenFormulaEscaped Special
377 SynLink doxygenFormulaOperator Operator
378 SynLink doxygenFormula Statement
379 SynLink doxygenSymbol Constant
380 SynLink doxygenSpecial Special
381 SynLink doxygenFormulaSpecial Special
382 "SynColor doxygenFormulaSpecial ctermfg=DarkBlue guifg=DarkBlue
383 endfun
384 call s:Doxygen_Hilights_Base()
385
386 fun! s:Doxygen_Hilights()
387 " Pick a sensible default for 'codeword'.
388 let font=''
389 if exists('g:doxygen_codeword_font')
390 if g:doxygen_codeword_font !~ '\<\k\+='
391 let font='font='.g:doxygen_codeword_font
392 else
393 let font=g:doxygen_codeword_font
394 endif
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000395 else
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000396 " Try and pick a font (only some platforms have been tested).
397 if has('gui_running')
398 if has('gui_gtk2')
399 if &guifont == ''
400 let font="font='FreeSerif 12'"
401 else
402 let font="font='".substitute(&guifont, '^.\{-}\([0-9]\+\)$', 'FreeSerif \1','')."'"
403 endif
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000404
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000405 elseif has('gui_win32') || has('gui_win16') || has('gui_win95')
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000406
407 if exists('g:doxygen_use_bitsream_vera') && g:doxygen_use_bitsream_vera
408 let font_base='Bitstream_Vera_Sans_Mono'
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000409 else
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000410 let font_base='Lucida_Console'
411 endif
412 if &guifont == ''
413 let font='font='.font_base.':h10'
414 else
415 let font='font='.matchstr(substitute(&guifont, '^[^:]*', font_base,''),'[^,]*')
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000416 endif
417 elseif has('gui_athena') || has('gui_gtk') || &guifont=~'^\(-[^-]\+\)\{14}'
418 if &guifont == ''
419 let font='font=-b&h-lucidatypewriter-medium-r-normal-*-*-140-*-*-m-*-iso8859-1'
420 else
421 " let font='font='.substitute(&guifont,'^\(-[^-]\+\)\{7}-\([0-9]\+\).*', '-b\&h-lucidatypewriter-medium-r-normal-*-*-\2-*-*-m-*-iso8859-1','')
422 " The above line works, but it is hard to expect the combination of
423 " the two fonts will look good.
424 endif
425 elseif has('gui_kde')
426 " let font='font=Bitstream\ Vera\ Sans\ Mono/12/-1/5/50/0/0/0/0/0'
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000427 endif
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000428 endif
429 endif
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000430 if font=='' | let font='gui=bold' | endif
431 exe 'SynColor doxygenCodeWord term=bold cterm=bold '.font
432 if (exists('g:doxygen_enhanced_color') && g:doxygen_enhanced_color) || (exists('g:doxygen_enhanced_colour') && g:doxygen_enhanced_colour)
433 if &background=='light'
434 SynColor doxygenComment ctermfg=DarkRed guifg=DarkRed
435 SynColor doxygenBrief cterm=bold ctermfg=Cyan guifg=DarkBlue gui=bold
436 SynColor doxygenBody ctermfg=DarkBlue guifg=DarkBlue
437 SynColor doxygenSpecialTypeOnelineDesc cterm=bold ctermfg=DarkRed guifg=firebrick3 gui=bold
438 SynColor doxygenBOther cterm=bold ctermfg=DarkMagenta guifg=#aa50aa gui=bold
439 SynColor doxygenParam ctermfg=DarkGray guifg=#aa50aa
440 SynColor doxygenParamName cterm=italic ctermfg=DarkBlue guifg=DeepSkyBlue4 gui=italic,bold
441 SynColor doxygenSpecialOnelineDesc cterm=bold ctermfg=DarkCyan guifg=DodgerBlue3 gui=bold
442 SynColor doxygenSpecialHeading cterm=bold ctermfg=DarkBlue guifg=DeepSkyBlue4 gui=bold
443 SynColor doxygenPrev ctermfg=DarkGreen guifg=DarkGreen
444 else
445 SynColor doxygenComment ctermfg=LightRed guifg=LightRed
446 SynColor doxygenBrief cterm=bold ctermfg=Cyan ctermbg=darkgrey guifg=LightBlue gui=Bold,Italic
447 SynColor doxygenBody ctermfg=Cyan guifg=LightBlue
448 SynColor doxygenSpecialTypeOnelineDesc cterm=bold ctermfg=Red guifg=firebrick3 gui=bold
449 SynColor doxygenBOther cterm=bold ctermfg=Magenta guifg=#aa50aa gui=bold
450 SynColor doxygenParam ctermfg=LightGray guifg=LightGray
451 SynColor doxygenParamName cterm=italic ctermfg=LightBlue guifg=LightBlue gui=italic,bold
452 SynColor doxygenSpecialOnelineDesc cterm=bold ctermfg=LightCyan guifg=LightCyan gui=bold
453 SynColor doxygenSpecialHeading cterm=bold ctermfg=LightBlue guifg=LightBlue gui=bold
454 SynColor doxygenPrev ctermfg=LightGreen guifg=LightGreen
455 endif
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000456 else
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000457 SynLink doxygenComment SpecialComment
458 SynLink doxygenBrief Statement
459 SynLink doxygenBody Comment
460 SynLink doxygenSpecialTypeOnelineDesc Statement
461 SynLink doxygenBOther Constant
462 SynLink doxygenParam SpecialComment
463 SynLink doxygenParamName Underlined
464 SynLink doxygenSpecialOnelineDesc Statement
465 SynLink doxygenSpecialHeading Statement
466 SynLink doxygenPrev SpecialComment
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000467 endif
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000468 endfun
469
470 call s:Doxygen_Hilights()
471
472 " This is still a proposal, but won't do any harm.
473 aug doxygengroup
474 au!
475 au Syntax UserColor_reset nested call s:Doxygen_Hilights_Base()
476 au Syntax UserColor_{on,reset,enable} nested call s:Doxygen_Hilights()
477 aug END
478
479
480 SynLink doxygenBody Comment
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000481 SynLink doxygenLine doxygenBody
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000482 SynLink doxygenTODO Todo
483 SynLink doxygenOtherTODO Todo
484 SynLink doxygenOtherWARN Todo
485 SynLink doxygenOtherBUG Todo
486
487 SynLink doxygenErrorSpecial Error
488 SynLink doxygenErrorEnd Error
489 SynLink doxygenErrorComment Error
490 SynLink doxygenLinkError Error
491 SynLink doxygenBriefSpecial doxygenSpecial
492 SynLink doxygenHashSpecial doxygenSpecial
493 SynLink doxygenGroupDefineSpecial doxygenSpecial
494 SynLink doxygenEndlinkSpecial doxygenSpecial
495 SynLink doxygenCodeRegionSpecial doxygenSpecial
496 SynLink doxygenVerbatimRegionSpecial doxygenSpecial
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000497 SynLink doxygenDotRegionSpecial doxygenSpecial
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000498 SynLink doxygenGroupDefine doxygenParam
499
500 SynLink doxygenSpecialMultilineDesc doxygenSpecialOnelineDesc
501 SynLink doxygenFormulaEnds doxygenSpecial
502 SynLink doxygenBold doxygenParam
503 SynLink doxygenBriefWord doxygenParam
504 SynLink doxygenRetval doxygenParam
505 SynLink doxygenOther doxygenParam
506 SynLink doxygenStart doxygenComment
507 SynLink doxygenStart2 doxygenStart
508 SynLink doxygenComment2 doxygenComment
509 SynLink doxygenCommentL doxygenComment
510 SynLink doxygenContinueComment doxygenComment
511 SynLink doxygenSpecialContinueComment doxygenComment
512 SynLink doxygenSkipComment doxygenComment
513 SynLink doxygenEndComment doxygenComment
514 SynLink doxygenStartL doxygenComment
515 SynLink doxygenBriefEndComment doxygenComment
516 SynLink doxygenPrevL doxygenPrev
517 SynLink doxygenBriefL doxygenBrief
518 SynLink doxygenBriefLine doxygenBrief
519 SynLink doxygenHeaderLine doxygenSpecialHeading
520 SynLink doxygenStartSkip doxygenContinueComment
521 SynLink doxygenLinkWord doxygenParamName
522 SynLink doxygenLinkRest doxygenSpecialMultilineDesc
523 SynLink doxygenHyperLink doxygenLinkWord
524 SynLink doxygenHashLink doxygenLinkWord
525
526 SynLink doxygenPage doxygenSpecial
527 SynLink doxygenPagePage doxygenBOther
528 SynLink doxygenPageIdent doxygenParamName
529 SynLink doxygenPageDesc doxygenSpecialTypeOnelineDesc
530
531 SynLink doxygenSpecialIdent doxygenPageIdent
532 SynLink doxygenSpecialSectionDesc doxygenSpecialMultilineDesc
533
534 SynLink doxygenSpecialRefWord doxygenOther
535 SynLink doxygenRefWord doxygenPageIdent
536 SynLink doxygenContinueLinkComment doxygenComment
537
538 SynLink doxygenHtmlCh Function
539 SynLink doxygenHtmlCmd Statement
540 SynLink doxygenHtmlBoldItalicUnderline doxygenHtmlBoldUnderlineItalic
541 SynLink doxygenHtmlUnderlineBold doxygenHtmlBoldUnderline
542 SynLink doxygenHtmlUnderlineItalicBold doxygenHtmlBoldUnderlineItalic
543 SynLink doxygenHtmlUnderlineBoldItalic doxygenHtmlBoldUnderlineItalic
544 SynLink doxygenHtmlItalicUnderline doxygenHtmlUnderlineItalic
545 SynLink doxygenHtmlItalicBold doxygenHtmlBoldItalic
546 SynLink doxygenHtmlItalicBoldUnderline doxygenHtmlBoldUnderlineItalic
547 SynLink doxygenHtmlItalicUnderlineBold doxygenHtmlBoldUnderlineItalic
548 SynLink doxygenHtmlLink Underlined
549
550 SynLink doxygenParamDirection StorageClass
551
552
553 if !exists("doxygen_my_rendering") && !exists("html_my_rendering")
554 SynColor doxygenBoldWord term=bold cterm=bold gui=bold
555 SynColor doxygenEmphasisedWord term=italic cterm=italic gui=italic
556 SynLink doxygenArgumentWord doxygenEmphasisedWord
557 SynLink doxygenHtmlCode doxygenCodeWord
558 SynLink doxygenHtmlBold doxygenBoldWord
559 SynColor doxygenHtmlBoldUnderline term=bold,underline cterm=bold,underline gui=bold,underline
560 SynColor doxygenHtmlBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic
561 SynColor doxygenHtmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline
562 SynColor doxygenHtmlUnderline term=underline cterm=underline gui=underline
563 SynColor doxygenHtmlUnderlineItalic term=italic,underline cterm=italic,underline gui=italic,underline
564 SynColor doxygenHtmlItalic term=italic cterm=italic gui=italic
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000565 endif
Bram Moolenaarb21e5842006-04-16 18:30:08 +0000566
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000567 finally
568 if s:my_synlink | delcommand SynLink | endif
569 if s:my_syncolor | delcommand SynColor | endif
570 endtry
Bram Moolenaarb21e5842006-04-16 18:30:08 +0000571
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000572 if &syntax=='idl'
573 syn cluster idlCommentable add=doxygenComment,doxygenCommentL
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000574 endif
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000575
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000576 "syn sync clear
577 "syn sync maxlines=500
578 "syn sync minlines=50
579 syn sync match doxygenComment groupthere cComment "/\@<!/\*"
580 syn sync match doxygenSyncComment grouphere doxygenComment "/\@<!/\*[*!]"
581 "syn sync match doxygenSyncComment grouphere doxygenComment "/\*[*!]" contains=doxygenStart,doxygenTODO keepend
582 syn sync match doxygenSyncEndComment groupthere NONE "\*/"
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000583
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000584 if !exists('b:current_syntax')
585 let b:current_syntax = "doxygen"
586 else
587 let b:current_syntax = b:current_syntax.'.doxygen'
588 endif
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000589
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000590finally
591 let &cpo = s:cpo_save
592 unlet s:cpo_save
593endtry
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000594
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000595" vim:et sw=2 sts=2