blob: 4916b4d364abfcaf9818a889b5f280e656f2cade [file] [log] [blame]
Bram Moolenaarc6249bb2006-04-15 20:25:09 +00001" DoxyGen syntax hilighting extension for c/c++/idl/java
2" Language: doxygen on top of c, cpp, idl, java
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 Moolenaarc81e5e72007-05-05 18:24:42 +00005" Last Change: April 2007
6" Version: 1.20
Bram Moolenaarc6249bb2006-04-15 20:25:09 +00007"
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00008" Copyright 2004-2006 Michael Geddes
Bram Moolenaarc6249bb2006-04-15 20:25:09 +00009" Please feel free to use, modify & distribute all or part of this script,
10" providing this copyright message remains.
11" I would appreciate being acknowledged in any derived scripts, and would
12" appreciate and welcome any updates, modifications or suggestions.
13
14" NOTE: Comments welcome!
15"
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000016" There are two variables that control the syntax highlighting produced by this
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000017" script:
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000018" doxygen_enhanced_colour - Use the (non-standard) original colours designed
19" for this highlighting.
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000020" doxygen_my_rendering - Disable the HTML bold/italic/underline rendering.
21"
22" A brief description without '.' or '!' will cause the end comment
23" character to be marked as an error. You can define the colour of this using
24" the highlight doxygenErrorComment.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000025" A \link without an \endlink will cause an error highlight on the end-comment.
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000026" This is defined by doxygenLinkError
27"
28" The variable g:doxygen_codeword_font can be set to the guifont for marking \c
29" words - a 'typewriter' like font normally. Spaces must be escaped. It can
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000030" also be set to any highlight attribute. Alternatively, a highlight for doxygenCodeWord
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000031" can be used to override it.
32"
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000033" By default, highlighting is done assumng you have the JAVADOC_AUTOBRIEF
34" setting turned on in your Doxygen configuration. If you don't, you
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000035" can set the variable g:doxygen_javadoc_autobrief to 0 to have the
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000036" highlighting more accurately reflect the way Doxygen will interpret your
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000037" comments.
38"
39" Special thanks to: Wu Yongwei, Toby Allsopp
40"
41
42if exists('b:suppress_doxygen')
43 unlet b:suppress_doxygen
44 finish
45endif
46
47if exists('b:current_syntax') && b:current_syntax =~ 'doxygen' && !exists('doxygen_debug_script')
48 finish
49endif
50
51let s:cpo_save = &cpo
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000052try
53 set cpo&vim
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000054
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000055 " Start of Doxygen syntax hilighting:
56 "
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000057
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000058 " C/C++ Style line comments
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000059 syn region doxygenComment start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contains=doxygenSyncStart,doxygenStart,doxygenTODO keepend fold
60 syn region doxygenCommentL start=+//[/!]<\@!+me=e-1 end=+$+ contains=doxygenStartL keepend skipwhite skipnl nextgroup=doxygenComment2 fold
61 syn region doxygenCommentL start=+//[/!]<+me=e-2 end=+$+ contains=doxygenStartL keepend skipwhite skipnl fold
62 syn region doxygenCommentL start=+//@\ze[{}]+ end=+$+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial fold
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000063
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000064 " Single line brief followed by multiline comment.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000065 syn region doxygenComment2 start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contained contains=doxygenSyncStart2,doxygenStart2,doxygenTODO keepend fold
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000066 " This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched.
67 syn match doxygenSyncStart2 +[^*/]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenSkipComment,doxygenStartSkip2 skipwhite skipnl
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000068
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000069 " Skip empty lines at the start for when comments start on the 2nd/3rd line.
70 syn match doxygenStartSkip2 +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBody,doxygenStartSpecial,doxygenStartSkip skipwhite skipnl
71 syn match doxygenStartSkip2 +^\s*\*$+ contained nextgroup=doxygenBody,doxygenStartSpecial,,doxygenStartSkip skipwhite skipnl
72 syn match doxygenStart2 +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenStartSkip2 skipwhite skipnl
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000073
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000074
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000075 " Match the Starting pattern (effectively creating the start of a BNF)
76 if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief
77 syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000078 syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenPrevL,doxygenBriefL,doxygenSpecial skipwhite
79 " Match the first sentence as a brief comment
80 if ! exists('g:doxygen_end_punctuation')
81 let g:doxygen_end_punctuation='[.]'
82 endif
83
84 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'
85
86 syn match doxygenBriefEndComment +\*/+ contained
87
88 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'
89 syn match doxygenPrevL +<+ contained nextgroup=doxygenBriefL,doxygenSpecial skipwhite
Bram Moolenaarb21e5842006-04-16 18:30:08 +000090 else
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000091 syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000092 syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenPrevL,doxygenLine,doxygenSpecial skipwhite
93 syn region doxygenLine start=+@\k\@!\|[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@<]+ start=+\<+ end='$' contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell keepend
94 syn match doxygenPrevL +<+ contained nextgroup=doxygenLine,doxygenSpecial skipwhite
95
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000096 endif
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000097
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000098 " This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched.
99 syn match doxygenSyncStart +\ze[^*/]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000100
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000101 syn region doxygenBriefLine contained start=+\<\k+ end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ contains=doxygenContinueComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink skipwhite keepend
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000102
103 " Match a '<' for applying a comment to the previous element.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000104 syn match doxygenPrev +<+ contained nextgroup=doxygenBrief,doxygenBody,doxygenSpecial,doxygenStartSkip skipwhite
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000105
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000106if exists("c_comment_strings")
107 " These are anti-Doxygen comments. If there are more than two asterisks or 3 '/'s
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000108 " then turn the comments back into normal C comments.
109 syn region cComment start="/\*\*\*" end="\*/" contains=@cCommentGroup,cCommentString,cCharacter,cNumbersCom,cSpaceError
110 syn region cCommentL start="////" skip="\\$" end="$" contains=@cCommentGroup,cComment2String,cCharacter,cNumbersCom,cSpaceError
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000111else
112 syn region cComment start="/\*\*\*" end="\*/" contains=@cCommentGroup,cSpaceError
113 syn region cCommentL start="////" skip="\\$" end="$" contains=@cCommentGroup,cSpaceError
114endif
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000115
116 " Special commands at the start of the area: starting with '@' or '\'
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000117 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 +0000118 syn match doxygenSkipComment contained +^\s*\*/\@!+ nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenPage skipwhite
119
120 "syn region doxygenBodyBit contained start=+$+
121
122 " The main body of a doxygen comment.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000123 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 +0000124
125 " These allow the skipping of comment continuation '*' characters.
126 syn match doxygenContinueComment contained +^\s*\*/\@!\s*+
127
128 " Catch a Brief comment without punctuation - flag it as an error but
129 " make sure the end comment is picked up also.
130 syn match doxygenErrorComment contained +\*/+
131
132
133 " Skip empty lines at the start for when comments start on the 2nd/3rd line.
134 if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief
135 syn match doxygenStartSkip +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
136 syn match doxygenStartSkip +^\s*\*$+ contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
137 else
138 syn match doxygenStartSkip +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage,doxygenBody skipwhite skipnl
139 syn match doxygenStartSkip +^\s*\*$+ contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage,doxygenBody skipwhite skipnl
140 endif
141
142 " Match an [@\]brief so that it moves to body-mode.
143 "
144 "
145 " syn match doxygenBriefLine contained
146 syn match doxygenBriefSpecial contained +[@\\]+ nextgroup=doxygenBriefWord skipwhite
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000147 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 +0000148
149
150 " Create the single word matching special identifiers.
151
152 fun! s:DxyCreateSmallSpecial( kword, name )
153
154 let mx='[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\\[\\<>&.]@\|[.,][0-9a-zA-Z_]\@=\|::\|([^)]*)\|&[0-9a-zA-Z]\{2,7};\)\+'
155 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 +0000156 exe 'syn match doxygen'.a:name.'Word contained "\_s\@<='.mx.'" contains=doxygenHtmlSpecial,@Spell keepend'
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000157 endfun
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000158 call s:DxyCreateSmallSpecial('p', 'Code')
159 call s:DxyCreateSmallSpecial('c', 'Code')
160 call s:DxyCreateSmallSpecial('b', 'Bold')
161 call s:DxyCreateSmallSpecial('e', 'Emphasised')
162 call s:DxyCreateSmallSpecial('em', 'Emphasised')
163 call s:DxyCreateSmallSpecial('a', 'Argument')
164 call s:DxyCreateSmallSpecial('ref', 'Ref')
165 delfun s:DxyCreateSmallSpecial
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000166
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000167 syn match doxygenSmallSpecial contained +[@\\]\(\<[npcbea]\>\|\<em\>\|\<ref\>\|\<link\>\|f\$\|[$\\&<>#]\)\@=+ nextgroup=doxygenOtherLink,doxygenHyperLink,doxygenHashLink,doxygenFormula,doxygenSymbol,doxygenSpecial.*Word
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000168
169 " Now for special characters
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000170 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 +0000171 " doxygenOtherLink,doxygenSymbol,doxygenFormula,doxygenErrorSpecial,doxygenSpecial.*Word
172 "
173 syn match doxygenGroupDefine contained +@\@<=[{}]+
174 syn match doxygenGroupDefineSpecial contained +@\ze[{}]+
175
176 syn match doxygenErrorSpecial contained +\s+
177
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000178 " Match parameters and retvals (highlighting the first word as special).
179 syn match doxygenParamDirection contained "\v\[(\s*in>((]\s*\[|\s*,\s*)out>)=|out>((]\s*\[|\s*,\s*)in>)=)\]" nextgroup=doxygenParamName skipwhite
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000180 syn keyword doxygenParam contained param nextgroup=doxygenParamName,doxygenParamDirection skipwhite
181 syn match doxygenParamName contained +[A-Za-z0-9_:]\++ nextgroup=doxygenSpecialMultilineDesc skipwhite
182 syn keyword doxygenRetval contained retval throw exception nextgroup=doxygenParamName skipwhite
183
184 " Match one line identifiers.
185 syn keyword doxygenOther contained addindex anchor
186 \ dontinclude endhtmlonly endlatexonly showinitializer hideinitializer
187 \ example htmlonly image include ingroup internal latexonly line
188 \ overload relates relatesalso sa skip skipline
189 \ until verbinclude version addtogroup htmlinclude copydoc dotfile
190 \ xmlonly endxmlonly
191 \ nextgroup=doxygenSpecialOnelineDesc
192
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000193 syn region doxygenCodeRegion contained matchgroup=doxygenOther start=+\<code\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endcode\>+ contains=doxygenCodeRegionSpecial,doxygenContinueComment,doxygenErrorComment,@NoSpell
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000194 syn match doxygenCodeRegionSpecial contained +[\\@]\(endcode\>\)\@=+
195
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000196 syn region doxygenVerbatimRegion contained matchgroup=doxygenOther start=+\<verbatim\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endverbatim\>+ contains=doxygenVerbatimRegionSpecial,doxygenContinueComment,doxygenErrorComment,@NoSpell
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000197 syn match doxygenVerbatimRegionSpecial contained +[\\@]\(endverbatim\>\)\@=+
198
Bram Moolenaareb3593b2006-04-22 22:33:57 +0000199 if exists('b:current_syntax')
200 let b:doxygen_syntax_save=b:current_syntax
201 unlet b:current_syntax
202 endif
203
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000204 syn include @Dotx syntax/dot.vim
Bram Moolenaareb3593b2006-04-22 22:33:57 +0000205
206 if exists('b:doxygen_syntax_save')
207 let b:current_syntax=b:doxygen_syntax_save
208 unlet b:doxygen_syntax_save
209 else
210 unlet b:current_syntax
211 endif
212
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000213 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 +0000214 syn match doxygenDotRegionSpecial contained +[\\@]\(enddot\>\)\@=+
215
216 " Match single line identifiers.
217 syn keyword doxygenBOther contained class enum file fn mainpage interface
218 \ namespace struct typedef union var def name
219 \ nextgroup=doxygenSpecialTypeOnelineDesc
220
221 syn keyword doxygenOther contained par nextgroup=doxygenHeaderLine
222 syn region doxygenHeaderLine start=+.+ end=+^+ contained skipwhite nextgroup=doxygenSpecialMultilineDesc
223
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000224 syn keyword doxygenOther contained arg author date deprecated li return returns see invariant note post pre remarks since test nextgroup=doxygenSpecialMultilineDesc
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000225 syn keyword doxygenOtherTODO contained todo attention nextgroup=doxygenSpecialMultilineDesc
226 syn keyword doxygenOtherWARN contained warning nextgroup=doxygenSpecialMultilineDesc
227 syn keyword doxygenOtherBUG contained bug nextgroup=doxygenSpecialMultilineDesc
228
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000229 " Handle \link, \endlink, highlighting the link-to and the link text bits separately.
230 syn region doxygenOtherLink matchgroup=doxygenOther start=+\<link\>+ end=+[\@]\@<=endlink\>+ contained contains=doxygenLinkWord,doxygenContinueComment,doxygenLinkError,doxygenEndlinkSpecial
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000231 syn match doxygenEndlinkSpecial contained +[\\@]\zeendlink\>+
232
233 syn match doxygenLinkWord "[_a-zA-Z:#()][_a-z0-9A-Z:#()]*\>" contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment
234 syn match doxygenLinkRest +[^*@\\]\|\*/\@!\|[@\\]\(endlink\>\)\@!+ contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment
235 syn match doxygenContinueLinkComment contained +^\s*\*\=[^/]+me=e-1 nextgroup=doxygenLinkRest
236 syn match doxygenLinkError "\*/" contained
237 " #Link hilighting.
238 syn match doxygenHashLink /\([a-zA-Z_][0-9a-zA-Z_]*\)\?#\(\.[0-9a-zA-Z_]\@=\|[a-zA-Z0-9_]\+\|::\|()\)\+/ contained contains=doxygenHashSpecial
239 syn match doxygenHashSpecial /#/ contained
240 syn match doxygenHyperLink /\(\s\|^\s*\*\?\)\@<=\(http\|https\|ftp\):\/\/[-0-9a-zA-Z_?&=+#%/.!':;@]\+/ contained
241
242 " Handle \page. This does not use doxygenBrief.
243 syn match doxygenPage "[\\@]page\>"me=s+1 contained skipwhite nextgroup=doxygenPagePage
244 syn keyword doxygenPagePage page contained skipwhite nextgroup=doxygenPageIdent
245 syn region doxygenPageDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenBody
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000246 syn match doxygenPageIdent "\<[a-zA-Z_0-9]\+\>" contained nextgroup=doxygenPageDesc
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000247
248 " Handle section
249 syn keyword doxygenOther defgroup section subsection subsubsection weakgroup contained skipwhite nextgroup=doxygenSpecialIdent
250 syn region doxygenSpecialSectionDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenContinueComment
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000251 syn match doxygenSpecialIdent "\<[a-zA-Z_0-9]\+\>" contained nextgroup=doxygenSpecialSectionDesc
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000252
253 " Does the one-line description for the one-line type identifiers.
254 syn region doxygenSpecialTypeOnelineDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend
255 syn region doxygenSpecialOnelineDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend
256
257 " Handle the multiline description for the multiline type identifiers.
258 " Continue until an 'empty' line (can contain a '*' continuation) or until the
259 " next whole-line @ command \ command.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000260 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 +0000261 syn match doxygenSpecialContinueComment contained +^\s*\*/\@!\s*+ nextgroup=doxygenSpecial skipwhite
262
263 " Handle special cases 'bold' and 'group'
264 syn keyword doxygenBold contained bold nextgroup=doxygenSpecialHeading
265 syn keyword doxygenBriefWord contained brief nextgroup=doxygenBriefLine skipwhite
266 syn match doxygenSpecialHeading +.\++ contained skipwhite
267 syn keyword doxygenGroup contained group nextgroup=doxygenGroupName skipwhite
268 syn keyword doxygenGroupName contained +\k\++ nextgroup=doxygenSpecialOnelineDesc skipwhite
269
270 " Handle special symbol identifiers @$, @\, @$ etc
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000271 syn match doxygenSymbol contained +[$\\&<>#n]+
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000272
273 " Simplistic handling of formula regions
274 syn region doxygenFormula contained matchgroup=doxygenFormulaEnds start=+f\$+ end=+[@\\]f\$+ contains=doxygenFormulaSpecial,doxygenFormulaOperator
275 syn match doxygenFormulaSpecial contained +[@\\]\(f[^$]\|[^f]\)+me=s+1 nextgroup=doxygenFormulaKeyword,doxygenFormulaEscaped
276 syn match doxygenFormulaEscaped contained "."
277 syn match doxygenFormulaKeyword contained "[a-z]\+"
278 syn match doxygenFormulaOperator contained +[_^]+
279
280 syn region doxygenFormula contained matchgroup=doxygenFormulaEnds start=+f\[+ end=+[@\\]f]+ contains=doxygenFormulaSpecial,doxygenFormulaOperator,doxygenAtom
281 syn region doxygenAtom contained transparent matchgroup=doxygenFormulaOperator start=+{+ end=+}+ contains=doxygenAtom,doxygenFormulaSpecial,doxygenFormulaOperator
282
283 " Add TODO hilighting.
284 syn keyword doxygenTODO contained TODO README XXX FIXME
285
286 " Supported HTML subset. Not perfect, but okay.
287 syn case ignore
288 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
289 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
290 syn keyword doxygenHtmlVar contained src alt longdesc name height width usemap ismap href type nextgroup=doxygenHtmlEqu skipwhite
291 syn match doxygenHtmlEqu contained +=+ nextgroup=doxygenHtmlExpr skipwhite
292 syn match doxygenHtmlExpr contained +"\(\\.\|[^"]\)*"\|'\(\\.\|[^']\)*'+ nextgroup=doxygenHtmlVar skipwhite
293 syn case match
294 syn match doxygenHtmlSpecial contained "&\(copy\|quot\|[AEIOUYaeiouy]uml\|[AEIOUYaeiouy]acute\|[AEIOUaeiouy]grave\|[AEIOUaeiouy]circ\|[ANOano]tilde\|szlig\|[Aa]ring\|nbsp\|gt\|lt\|amp\);"
295
296 syn cluster doxygenHtmlGroup contains=doxygenHtmlCode,doxygenHtmlBold,doxygenHtmlUnderline,doxygenHtmlItalic,doxygenHtmlSpecial,doxygenHtmlTag,doxygenHtmlLink
297
298 syn cluster doxygenHtmlTop contains=@Spell,doxygenHtmlSpecial,doxygenHtmlTag,doxygenContinueComment
299 " Html Support
300 syn region doxygenHtmlLink contained start=+<[aA]\>\s*\(\n\s*\*\s*\)\=\(\(name\|href\)=\("[^"]*"\|'[^']*'\)\)\=\s*>+ end=+</[aA]>+me=e-4 contains=@doxygenHtmlTop
301 hi link doxygenHtmlLink Underlined
302
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000303 syn region doxygenHtmlBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderline,doxygenHtmlBoldItalic,@Spell
304 syn region doxygenHtmlBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderline,doxygenHtmlBoldItalic,@Spell
305 syn region doxygenHtmlBoldUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderlineItalic,@Spell
306 syn region doxygenHtmlBoldItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldItalicUnderline,@Spell
307 syn region doxygenHtmlBoldItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,doxygenHtmlBoldItalicUnderline,@Spell
308 syn region doxygenHtmlBoldUnderlineItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,@Spell
309 syn region doxygenHtmlBoldUnderlineItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,@Spell
310 syn region doxygenHtmlBoldItalicUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderlineItalic,@Spell
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000311
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000312 syn region doxygenHtmlUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBold,doxygenHtmlUnderlineItalic,@Spell
313 syn region doxygenHtmlUnderlineBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBoldItalic,@Spell
314 syn region doxygenHtmlUnderlineBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBoldItalic,@Spell
315 syn region doxygenHtmlUnderlineItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,htmUnderlineItalicBold,@Spell
316 syn region doxygenHtmlUnderlineItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,htmUnderlineItalicBold,@Spell
317 syn region doxygenHtmlUnderlineItalicBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,@Spell
318 syn region doxygenHtmlUnderlineItalicBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,@Spell
319 syn region doxygenHtmlUnderlineBoldItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,@Spell
320 syn region doxygenHtmlUnderlineBoldItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,@Spell
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000321
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000322 syn region doxygenHtmlItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicBold,doxygenHtmlItalicUnderline,@Spell
323 syn region doxygenHtmlItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,@Spell
324 syn region doxygenHtmlItalicBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicBoldUnderline,@Spell
325 syn region doxygenHtmlItalicBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlItalicBoldUnderline,@Spell
326 syn region doxygenHtmlItalicBoldUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,@Spell
327 syn region doxygenHtmlItalicUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicUnderlineBold,@Spell
328 syn region doxygenHtmlItalicUnderlineBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,@Spell
329 syn region doxygenHtmlItalicUnderlineBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,@Spell
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000330
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000331 syn region doxygenHtmlCode contained start="\c<code\>" end="\c</code>"me=e-7 contains=@doxygenHtmlTop,@NoSpell
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000332
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000333 " Prevent the doxygen contained matches from leaking into the c/rc groups.
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000334 syn cluster cParenGroup add=doxygen.*
335 syn cluster cParenGroup remove=doxygenComment,doxygenCommentL
336 syn cluster cPreProcGroup add=doxygen.*
337 syn cluster cMultiGroup add=doxygen.*
338 syn cluster rcParenGroup add=doxygen.*
339 syn cluster rcParenGroup remove=doxygenComment,doxygenCommentL
340 syn cluster rcGroup add=doxygen.*
341
342 let s:my_syncolor=0
343 if !exists(':SynColor')
344 command -nargs=+ SynColor hi def <args>
345 let s:my_syncolor=1
346 endif
347
348 let s:my_synlink=0
349 if !exists(':SynLink')
350 command -nargs=+ SynLink hi def link <args>
351 let s:my_synlink=1
352 endif
353
354 try
355 "let did_doxygen_syntax_inits = &background
356 hi doxygen_Dummy guifg=black
357
358 fun! s:Doxygen_Hilights_Base()
359 SynLink doxygenHtmlSpecial Special
360 SynLink doxygenHtmlVar Type
361 SynLink doxygenHtmlExpr String
362
363 SynLink doxygenSmallSpecial SpecialChar
364
365 SynLink doxygenSpecialCodeWord doxygenSmallSpecial
366 SynLink doxygenSpecialBoldWord doxygenSmallSpecial
367 SynLink doxygenSpecialEmphasisedWord doxygenSmallSpecial
368 SynLink doxygenSpecialArgumentWord doxygenSmallSpecial
369
370 " SynColor doxygenFormulaKeyword cterm=bold ctermfg=DarkMagenta guifg=DarkMagenta gui=bold
371 SynLink doxygenFormulaKeyword Keyword
372 "SynColor doxygenFormulaEscaped ctermfg=DarkMagenta guifg=DarkMagenta gui=bold
373 SynLink doxygenFormulaEscaped Special
374 SynLink doxygenFormulaOperator Operator
375 SynLink doxygenFormula Statement
376 SynLink doxygenSymbol Constant
377 SynLink doxygenSpecial Special
378 SynLink doxygenFormulaSpecial Special
379 "SynColor doxygenFormulaSpecial ctermfg=DarkBlue guifg=DarkBlue
380 endfun
381 call s:Doxygen_Hilights_Base()
382
383 fun! s:Doxygen_Hilights()
384 " Pick a sensible default for 'codeword'.
385 let font=''
386 if exists('g:doxygen_codeword_font')
387 if g:doxygen_codeword_font !~ '\<\k\+='
388 let font='font='.g:doxygen_codeword_font
389 else
390 let font=g:doxygen_codeword_font
391 endif
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000392 else
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000393 " Try and pick a font (only some platforms have been tested).
394 if has('gui_running')
395 if has('gui_gtk2')
396 if &guifont == ''
397 let font="font='FreeSerif 12'"
398 else
399 let font="font='".substitute(&guifont, '^.\{-}\([0-9]\+\)$', 'FreeSerif \1','')."'"
400 endif
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000401
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000402 elseif has('gui_win32') || has('gui_win16') || has('gui_win95')
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000403
404 if exists('g:doxygen_use_bitsream_vera') && g:doxygen_use_bitsream_vera
405 let font_base='Bitstream_Vera_Sans_Mono'
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000406 else
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000407 let font_base='Lucida_Console'
408 endif
409 if &guifont == ''
410 let font='font='.font_base.':h10'
411 else
412 let font='font='.matchstr(substitute(&guifont, '^[^:]*', font_base,''),'[^,]*')
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000413 endif
414 elseif has('gui_athena') || has('gui_gtk') || &guifont=~'^\(-[^-]\+\)\{14}'
415 if &guifont == ''
416 let font='font=-b&h-lucidatypewriter-medium-r-normal-*-*-140-*-*-m-*-iso8859-1'
417 else
418 " let font='font='.substitute(&guifont,'^\(-[^-]\+\)\{7}-\([0-9]\+\).*', '-b\&h-lucidatypewriter-medium-r-normal-*-*-\2-*-*-m-*-iso8859-1','')
419 " The above line works, but it is hard to expect the combination of
420 " the two fonts will look good.
421 endif
422 elseif has('gui_kde')
423 " let font='font=Bitstream\ Vera\ Sans\ Mono/12/-1/5/50/0/0/0/0/0'
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000424 endif
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000425 endif
426 endif
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000427 if font=='' | let font='gui=bold' | endif
428 exe 'SynColor doxygenCodeWord term=bold cterm=bold '.font
429 if (exists('g:doxygen_enhanced_color') && g:doxygen_enhanced_color) || (exists('g:doxygen_enhanced_colour') && g:doxygen_enhanced_colour)
430 if &background=='light'
431 SynColor doxygenComment ctermfg=DarkRed guifg=DarkRed
432 SynColor doxygenBrief cterm=bold ctermfg=Cyan guifg=DarkBlue gui=bold
433 SynColor doxygenBody ctermfg=DarkBlue guifg=DarkBlue
434 SynColor doxygenSpecialTypeOnelineDesc cterm=bold ctermfg=DarkRed guifg=firebrick3 gui=bold
435 SynColor doxygenBOther cterm=bold ctermfg=DarkMagenta guifg=#aa50aa gui=bold
436 SynColor doxygenParam ctermfg=DarkGray guifg=#aa50aa
437 SynColor doxygenParamName cterm=italic ctermfg=DarkBlue guifg=DeepSkyBlue4 gui=italic,bold
438 SynColor doxygenSpecialOnelineDesc cterm=bold ctermfg=DarkCyan guifg=DodgerBlue3 gui=bold
439 SynColor doxygenSpecialHeading cterm=bold ctermfg=DarkBlue guifg=DeepSkyBlue4 gui=bold
440 SynColor doxygenPrev ctermfg=DarkGreen guifg=DarkGreen
441 else
442 SynColor doxygenComment ctermfg=LightRed guifg=LightRed
443 SynColor doxygenBrief cterm=bold ctermfg=Cyan ctermbg=darkgrey guifg=LightBlue gui=Bold,Italic
444 SynColor doxygenBody ctermfg=Cyan guifg=LightBlue
445 SynColor doxygenSpecialTypeOnelineDesc cterm=bold ctermfg=Red guifg=firebrick3 gui=bold
446 SynColor doxygenBOther cterm=bold ctermfg=Magenta guifg=#aa50aa gui=bold
447 SynColor doxygenParam ctermfg=LightGray guifg=LightGray
448 SynColor doxygenParamName cterm=italic ctermfg=LightBlue guifg=LightBlue gui=italic,bold
449 SynColor doxygenSpecialOnelineDesc cterm=bold ctermfg=LightCyan guifg=LightCyan gui=bold
450 SynColor doxygenSpecialHeading cterm=bold ctermfg=LightBlue guifg=LightBlue gui=bold
451 SynColor doxygenPrev ctermfg=LightGreen guifg=LightGreen
452 endif
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000453 else
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000454 SynLink doxygenComment SpecialComment
455 SynLink doxygenBrief Statement
456 SynLink doxygenBody Comment
457 SynLink doxygenSpecialTypeOnelineDesc Statement
458 SynLink doxygenBOther Constant
459 SynLink doxygenParam SpecialComment
460 SynLink doxygenParamName Underlined
461 SynLink doxygenSpecialOnelineDesc Statement
462 SynLink doxygenSpecialHeading Statement
463 SynLink doxygenPrev SpecialComment
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000464 endif
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000465 endfun
466
467 call s:Doxygen_Hilights()
468
469 " This is still a proposal, but won't do any harm.
470 aug doxygengroup
471 au!
472 au Syntax UserColor_reset nested call s:Doxygen_Hilights_Base()
473 au Syntax UserColor_{on,reset,enable} nested call s:Doxygen_Hilights()
474 aug END
475
476
477 SynLink doxygenBody Comment
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000478 SynLink doxygenLine doxygenBody
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000479 SynLink doxygenTODO Todo
480 SynLink doxygenOtherTODO Todo
481 SynLink doxygenOtherWARN Todo
482 SynLink doxygenOtherBUG Todo
483
484 SynLink doxygenErrorSpecial Error
485 SynLink doxygenErrorEnd Error
486 SynLink doxygenErrorComment Error
487 SynLink doxygenLinkError Error
488 SynLink doxygenBriefSpecial doxygenSpecial
489 SynLink doxygenHashSpecial doxygenSpecial
490 SynLink doxygenGroupDefineSpecial doxygenSpecial
491 SynLink doxygenEndlinkSpecial doxygenSpecial
492 SynLink doxygenCodeRegionSpecial doxygenSpecial
493 SynLink doxygenVerbatimRegionSpecial doxygenSpecial
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000494 SynLink doxygenDotRegionSpecial doxygenSpecial
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000495 SynLink doxygenGroupDefine doxygenParam
496
497 SynLink doxygenSpecialMultilineDesc doxygenSpecialOnelineDesc
498 SynLink doxygenFormulaEnds doxygenSpecial
499 SynLink doxygenBold doxygenParam
500 SynLink doxygenBriefWord doxygenParam
501 SynLink doxygenRetval doxygenParam
502 SynLink doxygenOther doxygenParam
503 SynLink doxygenStart doxygenComment
504 SynLink doxygenStart2 doxygenStart
505 SynLink doxygenComment2 doxygenComment
506 SynLink doxygenCommentL doxygenComment
507 SynLink doxygenContinueComment doxygenComment
508 SynLink doxygenSpecialContinueComment doxygenComment
509 SynLink doxygenSkipComment doxygenComment
510 SynLink doxygenEndComment doxygenComment
511 SynLink doxygenStartL doxygenComment
512 SynLink doxygenBriefEndComment doxygenComment
513 SynLink doxygenPrevL doxygenPrev
514 SynLink doxygenBriefL doxygenBrief
515 SynLink doxygenBriefLine doxygenBrief
516 SynLink doxygenHeaderLine doxygenSpecialHeading
517 SynLink doxygenStartSkip doxygenContinueComment
518 SynLink doxygenLinkWord doxygenParamName
519 SynLink doxygenLinkRest doxygenSpecialMultilineDesc
520 SynLink doxygenHyperLink doxygenLinkWord
521 SynLink doxygenHashLink doxygenLinkWord
522
523 SynLink doxygenPage doxygenSpecial
524 SynLink doxygenPagePage doxygenBOther
525 SynLink doxygenPageIdent doxygenParamName
526 SynLink doxygenPageDesc doxygenSpecialTypeOnelineDesc
527
528 SynLink doxygenSpecialIdent doxygenPageIdent
529 SynLink doxygenSpecialSectionDesc doxygenSpecialMultilineDesc
530
531 SynLink doxygenSpecialRefWord doxygenOther
532 SynLink doxygenRefWord doxygenPageIdent
533 SynLink doxygenContinueLinkComment doxygenComment
534
535 SynLink doxygenHtmlCh Function
536 SynLink doxygenHtmlCmd Statement
537 SynLink doxygenHtmlBoldItalicUnderline doxygenHtmlBoldUnderlineItalic
538 SynLink doxygenHtmlUnderlineBold doxygenHtmlBoldUnderline
539 SynLink doxygenHtmlUnderlineItalicBold doxygenHtmlBoldUnderlineItalic
540 SynLink doxygenHtmlUnderlineBoldItalic doxygenHtmlBoldUnderlineItalic
541 SynLink doxygenHtmlItalicUnderline doxygenHtmlUnderlineItalic
542 SynLink doxygenHtmlItalicBold doxygenHtmlBoldItalic
543 SynLink doxygenHtmlItalicBoldUnderline doxygenHtmlBoldUnderlineItalic
544 SynLink doxygenHtmlItalicUnderlineBold doxygenHtmlBoldUnderlineItalic
545 SynLink doxygenHtmlLink Underlined
546
547 SynLink doxygenParamDirection StorageClass
548
549
550 if !exists("doxygen_my_rendering") && !exists("html_my_rendering")
551 SynColor doxygenBoldWord term=bold cterm=bold gui=bold
552 SynColor doxygenEmphasisedWord term=italic cterm=italic gui=italic
553 SynLink doxygenArgumentWord doxygenEmphasisedWord
554 SynLink doxygenHtmlCode doxygenCodeWord
555 SynLink doxygenHtmlBold doxygenBoldWord
556 SynColor doxygenHtmlBoldUnderline term=bold,underline cterm=bold,underline gui=bold,underline
557 SynColor doxygenHtmlBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic
558 SynColor doxygenHtmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline
559 SynColor doxygenHtmlUnderline term=underline cterm=underline gui=underline
560 SynColor doxygenHtmlUnderlineItalic term=italic,underline cterm=italic,underline gui=italic,underline
561 SynColor doxygenHtmlItalic term=italic cterm=italic gui=italic
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000562 endif
Bram Moolenaarb21e5842006-04-16 18:30:08 +0000563
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000564 finally
565 if s:my_synlink | delcommand SynLink | endif
566 if s:my_syncolor | delcommand SynColor | endif
567 endtry
Bram Moolenaarb21e5842006-04-16 18:30:08 +0000568
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000569 if &syntax=='idl'
570 syn cluster idlCommentable add=doxygenComment,doxygenCommentL
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000571 endif
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000572
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000573 "syn sync clear
574 "syn sync maxlines=500
575 "syn sync minlines=50
576 syn sync match doxygenComment groupthere cComment "/\@<!/\*"
577 syn sync match doxygenSyncComment grouphere doxygenComment "/\@<!/\*[*!]"
578 "syn sync match doxygenSyncComment grouphere doxygenComment "/\*[*!]" contains=doxygenStart,doxygenTODO keepend
579 syn sync match doxygenSyncEndComment groupthere NONE "\*/"
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000580
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000581 if !exists('b:current_syntax')
582 let b:current_syntax = "doxygen"
583 else
584 let b:current_syntax = b:current_syntax.'.doxygen'
585 endif
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000586
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000587finally
588 let &cpo = s:cpo_save
589 unlet s:cpo_save
590endtry
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000591
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000592" vim:et sw=2 sts=2