blob: cadbf54dc50fabebd034bcae5c70cfe1278e8c42 [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 Moolenaar9d98fe92013-08-03 18:35:36 +02005" Last Change: Jan 2009 (\tparam by Domnique Pelle, Aug 2013)
Bram Moolenaar5c736222010-01-06 20:54:52 +01006" Version: 1.23
Bram Moolenaarc6249bb2006-04-15 20:25:09 +00007"
Bram Moolenaare37d50a2008-08-06 17:06:04 +00008" Copyright 2004-2008 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 Moolenaare37d50a2008-08-06 17:06:04 +000033" By default, highlighting is done assuming you have the JAVADOC_AUTOBRIEF
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000034" 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"
Bram Moolenaare37d50a2008-08-06 17:06:04 +000039" Support for cpp, c, idl, doxygen and php.
40"
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000041" Special thanks to: Wu Yongwei, Toby Allsopp
42"
43
44if exists('b:suppress_doxygen')
45 unlet b:suppress_doxygen
46 finish
47endif
48
49if exists('b:current_syntax') && b:current_syntax =~ 'doxygen' && !exists('doxygen_debug_script')
50 finish
51endif
52
53let s:cpo_save = &cpo
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000054try
55 set cpo&vim
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000056
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000057 " Start of Doxygen syntax hilighting:
58 "
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000059
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000060 " C/C++ Style line comments
Bram Moolenaare37d50a2008-08-06 17:06:04 +000061 syn region doxygenComment start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contains=doxygenSyncStart,doxygenStart,doxygenTODO keepend fold containedin=phpRegion
62 syn region doxygenCommentL start=+//[/!]<\@!+me=e-1 end=+$+ contains=doxygenStartL,@Spell keepend skipwhite skipnl nextgroup=doxygenComment2 fold containedin=phpRegion
63 syn region doxygenCommentL start=+//[/!]<+me=e-2 end=+$+ contains=doxygenStartL,@Spell keepend skipwhite skipnl fold containedin=phpRegion
64 syn region doxygenCommentL start=+//@\ze[{}]+ end=+$+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial,@Spell fold containedin=phpRegion
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000065
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000066 " Single line brief followed by multiline comment.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000067 syn region doxygenComment2 start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contained contains=doxygenSyncStart2,doxygenStart2,doxygenTODO keepend fold
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000068 " This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched.
69 syn match doxygenSyncStart2 +[^*/]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenSkipComment,doxygenStartSkip2 skipwhite skipnl
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000070
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000071 " Skip empty lines at the start for when comments start on the 2nd/3rd line.
72 syn match doxygenStartSkip2 +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBody,doxygenStartSpecial,doxygenStartSkip skipwhite skipnl
73 syn match doxygenStartSkip2 +^\s*\*$+ contained nextgroup=doxygenBody,doxygenStartSpecial,,doxygenStartSkip skipwhite skipnl
74 syn match doxygenStart2 +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenStartSkip2 skipwhite skipnl
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000075
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000076
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000077 " Match the Starting pattern (effectively creating the start of a BNF)
78 if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief
79 syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000080 syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenPrevL,doxygenBriefL,doxygenSpecial skipwhite
81 " Match the first sentence as a brief comment
82 if ! exists('g:doxygen_end_punctuation')
83 let g:doxygen_end_punctuation='[.]'
84 endif
85
86 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'
87
88 syn match doxygenBriefEndComment +\*/+ contained
89
90 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'
91 syn match doxygenPrevL +<+ contained nextgroup=doxygenBriefL,doxygenSpecial skipwhite
Bram Moolenaarb21e5842006-04-16 18:30:08 +000092 else
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000093 syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000094 syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenPrevL,doxygenLine,doxygenSpecial skipwhite
95 syn region doxygenLine start=+@\k\@!\|[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@<]+ start=+\<+ end='$' contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell keepend
96 syn match doxygenPrevL +<+ contained nextgroup=doxygenLine,doxygenSpecial skipwhite
97
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000098 endif
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000099
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000100 " This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched.
101 syn match doxygenSyncStart +\ze[^*/]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000102
Bram Moolenaare37d50a2008-08-06 17:06:04 +0000103 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 +0000104
105 " Match a '<' for applying a comment to the previous element.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000106 syn match doxygenPrev +<+ contained nextgroup=doxygenBrief,doxygenBody,doxygenSpecial,doxygenStartSkip skipwhite
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000107
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000108if exists("c_comment_strings")
109 " These are anti-Doxygen comments. If there are more than two asterisks or 3 '/'s
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000110 " then turn the comments back into normal C comments.
111 syn region cComment start="/\*\*\*" end="\*/" contains=@cCommentGroup,cCommentString,cCharacter,cNumbersCom,cSpaceError
112 syn region cCommentL start="////" skip="\\$" end="$" contains=@cCommentGroup,cComment2String,cCharacter,cNumbersCom,cSpaceError
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000113else
114 syn region cComment start="/\*\*\*" end="\*/" contains=@cCommentGroup,cSpaceError
115 syn region cCommentL start="////" skip="\\$" end="$" contains=@cCommentGroup,cSpaceError
116endif
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000117
118 " Special commands at the start of the area: starting with '@' or '\'
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000119 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 +0000120 syn match doxygenSkipComment contained +^\s*\*/\@!+ nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenPage skipwhite
121
122 "syn region doxygenBodyBit contained start=+$+
123
124 " The main body of a doxygen comment.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000125 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 +0000126
127 " These allow the skipping of comment continuation '*' characters.
128 syn match doxygenContinueComment contained +^\s*\*/\@!\s*+
129
130 " Catch a Brief comment without punctuation - flag it as an error but
131 " make sure the end comment is picked up also.
132 syn match doxygenErrorComment contained +\*/+
133
134
135 " Skip empty lines at the start for when comments start on the 2nd/3rd line.
136 if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief
137 syn match doxygenStartSkip +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
138 syn match doxygenStartSkip +^\s*\*$+ contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
139 else
140 syn match doxygenStartSkip +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage,doxygenBody skipwhite skipnl
141 syn match doxygenStartSkip +^\s*\*$+ contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage,doxygenBody skipwhite skipnl
142 endif
143
144 " Match an [@\]brief so that it moves to body-mode.
145 "
146 "
147 " syn match doxygenBriefLine contained
148 syn match doxygenBriefSpecial contained +[@\\]+ nextgroup=doxygenBriefWord skipwhite
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000149 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 +0000150
151
152 " Create the single word matching special identifiers.
153
154 fun! s:DxyCreateSmallSpecial( kword, name )
155
156 let mx='[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\\[\\<>&.]@\|[.,][0-9a-zA-Z_]\@=\|::\|([^)]*)\|&[0-9a-zA-Z]\{2,7};\)\+'
157 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 +0000158 exe 'syn match doxygen'.a:name.'Word contained "\_s\@<='.mx.'" contains=doxygenHtmlSpecial,@Spell keepend'
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000159 endfun
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000160 call s:DxyCreateSmallSpecial('p', 'Code')
161 call s:DxyCreateSmallSpecial('c', 'Code')
162 call s:DxyCreateSmallSpecial('b', 'Bold')
163 call s:DxyCreateSmallSpecial('e', 'Emphasised')
164 call s:DxyCreateSmallSpecial('em', 'Emphasised')
165 call s:DxyCreateSmallSpecial('a', 'Argument')
166 call s:DxyCreateSmallSpecial('ref', 'Ref')
167 delfun s:DxyCreateSmallSpecial
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000168
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000169 syn match doxygenSmallSpecial contained +[@\\]\(\<[npcbea]\>\|\<em\>\|\<ref\>\|\<link\>\|f\$\|[$\\&<>#]\)\@=+ nextgroup=doxygenOtherLink,doxygenHyperLink,doxygenHashLink,doxygenFormula,doxygenSymbol,doxygenSpecial.*Word
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000170
171 " Now for special characters
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000172 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 +0000173 " doxygenOtherLink,doxygenSymbol,doxygenFormula,doxygenErrorSpecial,doxygenSpecial.*Word
174 "
175 syn match doxygenGroupDefine contained +@\@<=[{}]+
176 syn match doxygenGroupDefineSpecial contained +@\ze[{}]+
177
178 syn match doxygenErrorSpecial contained +\s+
179
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000180 " Match parameters and retvals (highlighting the first word as special).
181 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 +0200182 syn keyword doxygenParam contained param tparam nextgroup=doxygenParamName,doxygenParamDirection skipwhite
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000183 syn match doxygenParamName contained +[A-Za-z0-9_:]\++ nextgroup=doxygenSpecialMultilineDesc skipwhite
184 syn keyword doxygenRetval contained retval throw exception nextgroup=doxygenParamName skipwhite
185
186 " Match one line identifiers.
187 syn keyword doxygenOther contained addindex anchor
188 \ dontinclude endhtmlonly endlatexonly showinitializer hideinitializer
189 \ example htmlonly image include ingroup internal latexonly line
190 \ overload relates relatesalso sa skip skipline
191 \ until verbinclude version addtogroup htmlinclude copydoc dotfile
192 \ xmlonly endxmlonly
193 \ nextgroup=doxygenSpecialOnelineDesc
194
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000195 syn region doxygenCodeRegion contained matchgroup=doxygenOther start=+\<code\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endcode\>+ contains=doxygenCodeRegionSpecial,doxygenContinueComment,doxygenErrorComment,@NoSpell
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000196 syn match doxygenCodeRegionSpecial contained +[\\@]\(endcode\>\)\@=+
197
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000198 syn region doxygenVerbatimRegion contained matchgroup=doxygenOther start=+\<verbatim\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endverbatim\>+ contains=doxygenVerbatimRegionSpecial,doxygenContinueComment,doxygenErrorComment,@NoSpell
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000199 syn match doxygenVerbatimRegionSpecial contained +[\\@]\(endverbatim\>\)\@=+
200
Bram Moolenaareb3593b2006-04-22 22:33:57 +0000201 if exists('b:current_syntax')
202 let b:doxygen_syntax_save=b:current_syntax
203 unlet b:current_syntax
204 endif
205
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000206 syn include @Dotx syntax/dot.vim
Bram Moolenaareb3593b2006-04-22 22:33:57 +0000207
208 if exists('b:doxygen_syntax_save')
209 let b:current_syntax=b:doxygen_syntax_save
210 unlet b:doxygen_syntax_save
211 else
212 unlet b:current_syntax
213 endif
214
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000215 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 +0000216 syn match doxygenDotRegionSpecial contained +[\\@]\(enddot\>\)\@=+
217
218 " Match single line identifiers.
219 syn keyword doxygenBOther contained class enum file fn mainpage interface
220 \ namespace struct typedef union var def name
221 \ nextgroup=doxygenSpecialTypeOnelineDesc
222
223 syn keyword doxygenOther contained par nextgroup=doxygenHeaderLine
224 syn region doxygenHeaderLine start=+.+ end=+^+ contained skipwhite nextgroup=doxygenSpecialMultilineDesc
225
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000226 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 +0000227 syn keyword doxygenOtherTODO contained todo attention nextgroup=doxygenSpecialMultilineDesc
228 syn keyword doxygenOtherWARN contained warning nextgroup=doxygenSpecialMultilineDesc
229 syn keyword doxygenOtherBUG contained bug nextgroup=doxygenSpecialMultilineDesc
230
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000231 " Handle \link, \endlink, highlighting the link-to and the link text bits separately.
232 syn region doxygenOtherLink matchgroup=doxygenOther start=+\<link\>+ end=+[\@]\@<=endlink\>+ contained contains=doxygenLinkWord,doxygenContinueComment,doxygenLinkError,doxygenEndlinkSpecial
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000233 syn match doxygenEndlinkSpecial contained +[\\@]\zeendlink\>+
234
235 syn match doxygenLinkWord "[_a-zA-Z:#()][_a-z0-9A-Z:#()]*\>" contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment
236 syn match doxygenLinkRest +[^*@\\]\|\*/\@!\|[@\\]\(endlink\>\)\@!+ contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment
237 syn match doxygenContinueLinkComment contained +^\s*\*\=[^/]+me=e-1 nextgroup=doxygenLinkRest
238 syn match doxygenLinkError "\*/" contained
239 " #Link hilighting.
240 syn match doxygenHashLink /\([a-zA-Z_][0-9a-zA-Z_]*\)\?#\(\.[0-9a-zA-Z_]\@=\|[a-zA-Z0-9_]\+\|::\|()\)\+/ contained contains=doxygenHashSpecial
241 syn match doxygenHashSpecial /#/ contained
Bram Moolenaar5c736222010-01-06 20:54:52 +0100242 syn match doxygenHyperLink /\(\s\|^\s*\*\?\)\@<=\(http\|https\|ftp\):\/\/[-0-9a-zA-Z_?&=+#%/.!':;@~]\+/ contained
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000243
244 " Handle \page. This does not use doxygenBrief.
245 syn match doxygenPage "[\\@]page\>"me=s+1 contained skipwhite nextgroup=doxygenPagePage
246 syn keyword doxygenPagePage page contained skipwhite nextgroup=doxygenPageIdent
247 syn region doxygenPageDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenBody
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000248 syn match doxygenPageIdent "\<[a-zA-Z_0-9]\+\>" contained nextgroup=doxygenPageDesc
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000249
250 " Handle section
251 syn keyword doxygenOther defgroup section subsection subsubsection weakgroup contained skipwhite nextgroup=doxygenSpecialIdent
252 syn region doxygenSpecialSectionDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenContinueComment
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000253 syn match doxygenSpecialIdent "\<[a-zA-Z_0-9]\+\>" contained nextgroup=doxygenSpecialSectionDesc
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000254
255 " Does the one-line description for the one-line type identifiers.
256 syn region doxygenSpecialTypeOnelineDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend
257 syn region doxygenSpecialOnelineDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend
258
259 " Handle the multiline description for the multiline type identifiers.
260 " Continue until an 'empty' line (can contain a '*' continuation) or until the
261 " next whole-line @ command \ command.
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000262 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 +0000263 syn match doxygenSpecialContinueComment contained +^\s*\*/\@!\s*+ nextgroup=doxygenSpecial skipwhite
264
265 " Handle special cases 'bold' and 'group'
266 syn keyword doxygenBold contained bold nextgroup=doxygenSpecialHeading
267 syn keyword doxygenBriefWord contained brief nextgroup=doxygenBriefLine skipwhite
268 syn match doxygenSpecialHeading +.\++ contained skipwhite
269 syn keyword doxygenGroup contained group nextgroup=doxygenGroupName skipwhite
270 syn keyword doxygenGroupName contained +\k\++ nextgroup=doxygenSpecialOnelineDesc skipwhite
271
272 " Handle special symbol identifiers @$, @\, @$ etc
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000273 syn match doxygenSymbol contained +[$\\&<>#n]+
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000274
275 " Simplistic handling of formula regions
276 syn region doxygenFormula contained matchgroup=doxygenFormulaEnds start=+f\$+ end=+[@\\]f\$+ contains=doxygenFormulaSpecial,doxygenFormulaOperator
277 syn match doxygenFormulaSpecial contained +[@\\]\(f[^$]\|[^f]\)+me=s+1 nextgroup=doxygenFormulaKeyword,doxygenFormulaEscaped
278 syn match doxygenFormulaEscaped contained "."
279 syn match doxygenFormulaKeyword contained "[a-z]\+"
280 syn match doxygenFormulaOperator contained +[_^]+
281
282 syn region doxygenFormula contained matchgroup=doxygenFormulaEnds start=+f\[+ end=+[@\\]f]+ contains=doxygenFormulaSpecial,doxygenFormulaOperator,doxygenAtom
283 syn region doxygenAtom contained transparent matchgroup=doxygenFormulaOperator start=+{+ end=+}+ contains=doxygenAtom,doxygenFormulaSpecial,doxygenFormulaOperator
284
285 " Add TODO hilighting.
286 syn keyword doxygenTODO contained TODO README XXX FIXME
287
288 " Supported HTML subset. Not perfect, but okay.
289 syn case ignore
290 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
291 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
292 syn keyword doxygenHtmlVar contained src alt longdesc name height width usemap ismap href type nextgroup=doxygenHtmlEqu skipwhite
293 syn match doxygenHtmlEqu contained +=+ nextgroup=doxygenHtmlExpr skipwhite
294 syn match doxygenHtmlExpr contained +"\(\\.\|[^"]\)*"\|'\(\\.\|[^']\)*'+ nextgroup=doxygenHtmlVar skipwhite
295 syn case match
296 syn match doxygenHtmlSpecial contained "&\(copy\|quot\|[AEIOUYaeiouy]uml\|[AEIOUYaeiouy]acute\|[AEIOUaeiouy]grave\|[AEIOUaeiouy]circ\|[ANOano]tilde\|szlig\|[Aa]ring\|nbsp\|gt\|lt\|amp\);"
297
298 syn cluster doxygenHtmlGroup contains=doxygenHtmlCode,doxygenHtmlBold,doxygenHtmlUnderline,doxygenHtmlItalic,doxygenHtmlSpecial,doxygenHtmlTag,doxygenHtmlLink
299
300 syn cluster doxygenHtmlTop contains=@Spell,doxygenHtmlSpecial,doxygenHtmlTag,doxygenContinueComment
301 " Html Support
302 syn region doxygenHtmlLink contained start=+<[aA]\>\s*\(\n\s*\*\s*\)\=\(\(name\|href\)=\("[^"]*"\|'[^']*'\)\)\=\s*>+ end=+</[aA]>+me=e-4 contains=@doxygenHtmlTop
303 hi link doxygenHtmlLink Underlined
304
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000305 syn region doxygenHtmlBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderline,doxygenHtmlBoldItalic,@Spell
306 syn region doxygenHtmlBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderline,doxygenHtmlBoldItalic,@Spell
307 syn region doxygenHtmlBoldUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderlineItalic,@Spell
308 syn region doxygenHtmlBoldItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldItalicUnderline,@Spell
309 syn region doxygenHtmlBoldItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,doxygenHtmlBoldItalicUnderline,@Spell
310 syn region doxygenHtmlBoldUnderlineItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,@Spell
311 syn region doxygenHtmlBoldUnderlineItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,@Spell
312 syn region doxygenHtmlBoldItalicUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderlineItalic,@Spell
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000313
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000314 syn region doxygenHtmlUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBold,doxygenHtmlUnderlineItalic,@Spell
315 syn region doxygenHtmlUnderlineBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBoldItalic,@Spell
316 syn region doxygenHtmlUnderlineBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBoldItalic,@Spell
317 syn region doxygenHtmlUnderlineItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,htmUnderlineItalicBold,@Spell
318 syn region doxygenHtmlUnderlineItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,htmUnderlineItalicBold,@Spell
319 syn region doxygenHtmlUnderlineItalicBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,@Spell
320 syn region doxygenHtmlUnderlineItalicBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,@Spell
321 syn region doxygenHtmlUnderlineBoldItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,@Spell
322 syn region doxygenHtmlUnderlineBoldItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,@Spell
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000323
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000324 syn region doxygenHtmlItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicBold,doxygenHtmlItalicUnderline,@Spell
325 syn region doxygenHtmlItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,@Spell
326 syn region doxygenHtmlItalicBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicBoldUnderline,@Spell
327 syn region doxygenHtmlItalicBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlItalicBoldUnderline,@Spell
328 syn region doxygenHtmlItalicBoldUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,@Spell
329 syn region doxygenHtmlItalicUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicUnderlineBold,@Spell
330 syn region doxygenHtmlItalicUnderlineBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,@Spell
331 syn region doxygenHtmlItalicUnderlineBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,@Spell
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000332
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000333 syn region doxygenHtmlCode contained start="\c<code\>" end="\c</code>"me=e-7 contains=@doxygenHtmlTop,@NoSpell
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000334
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000335 " Prevent the doxygen contained matches from leaking into the c/rc groups.
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000336 syn cluster cParenGroup add=doxygen.*
337 syn cluster cParenGroup remove=doxygenComment,doxygenCommentL
338 syn cluster cPreProcGroup add=doxygen.*
339 syn cluster cMultiGroup add=doxygen.*
340 syn cluster rcParenGroup add=doxygen.*
341 syn cluster rcParenGroup remove=doxygenComment,doxygenCommentL
342 syn cluster rcGroup add=doxygen.*
343
344 let s:my_syncolor=0
345 if !exists(':SynColor')
346 command -nargs=+ SynColor hi def <args>
347 let s:my_syncolor=1
348 endif
349
350 let s:my_synlink=0
351 if !exists(':SynLink')
352 command -nargs=+ SynLink hi def link <args>
353 let s:my_synlink=1
354 endif
355
356 try
357 "let did_doxygen_syntax_inits = &background
358 hi doxygen_Dummy guifg=black
359
360 fun! s:Doxygen_Hilights_Base()
361 SynLink doxygenHtmlSpecial Special
362 SynLink doxygenHtmlVar Type
363 SynLink doxygenHtmlExpr String
364
365 SynLink doxygenSmallSpecial SpecialChar
366
367 SynLink doxygenSpecialCodeWord doxygenSmallSpecial
368 SynLink doxygenSpecialBoldWord doxygenSmallSpecial
369 SynLink doxygenSpecialEmphasisedWord doxygenSmallSpecial
370 SynLink doxygenSpecialArgumentWord doxygenSmallSpecial
371
372 " SynColor doxygenFormulaKeyword cterm=bold ctermfg=DarkMagenta guifg=DarkMagenta gui=bold
373 SynLink doxygenFormulaKeyword Keyword
374 "SynColor doxygenFormulaEscaped ctermfg=DarkMagenta guifg=DarkMagenta gui=bold
375 SynLink doxygenFormulaEscaped Special
376 SynLink doxygenFormulaOperator Operator
377 SynLink doxygenFormula Statement
378 SynLink doxygenSymbol Constant
379 SynLink doxygenSpecial Special
380 SynLink doxygenFormulaSpecial Special
381 "SynColor doxygenFormulaSpecial ctermfg=DarkBlue guifg=DarkBlue
382 endfun
383 call s:Doxygen_Hilights_Base()
384
385 fun! s:Doxygen_Hilights()
386 " Pick a sensible default for 'codeword'.
387 let font=''
388 if exists('g:doxygen_codeword_font')
389 if g:doxygen_codeword_font !~ '\<\k\+='
390 let font='font='.g:doxygen_codeword_font
391 else
392 let font=g:doxygen_codeword_font
393 endif
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000394 else
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000395 " Try and pick a font (only some platforms have been tested).
396 if has('gui_running')
397 if has('gui_gtk2')
398 if &guifont == ''
399 let font="font='FreeSerif 12'"
400 else
401 let font="font='".substitute(&guifont, '^.\{-}\([0-9]\+\)$', 'FreeSerif \1','')."'"
402 endif
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000403
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000404 elseif has('gui_win32') || has('gui_win16') || has('gui_win95')
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000405
406 if exists('g:doxygen_use_bitsream_vera') && g:doxygen_use_bitsream_vera
407 let font_base='Bitstream_Vera_Sans_Mono'
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000408 else
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000409 let font_base='Lucida_Console'
410 endif
411 if &guifont == ''
412 let font='font='.font_base.':h10'
413 else
414 let font='font='.matchstr(substitute(&guifont, '^[^:]*', font_base,''),'[^,]*')
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000415 endif
416 elseif has('gui_athena') || has('gui_gtk') || &guifont=~'^\(-[^-]\+\)\{14}'
417 if &guifont == ''
418 let font='font=-b&h-lucidatypewriter-medium-r-normal-*-*-140-*-*-m-*-iso8859-1'
419 else
420 " let font='font='.substitute(&guifont,'^\(-[^-]\+\)\{7}-\([0-9]\+\).*', '-b\&h-lucidatypewriter-medium-r-normal-*-*-\2-*-*-m-*-iso8859-1','')
421 " The above line works, but it is hard to expect the combination of
422 " the two fonts will look good.
423 endif
424 elseif has('gui_kde')
425 " let font='font=Bitstream\ Vera\ Sans\ Mono/12/-1/5/50/0/0/0/0/0'
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000426 endif
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000427 endif
428 endif
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000429 if font=='' | let font='gui=bold' | endif
430 exe 'SynColor doxygenCodeWord term=bold cterm=bold '.font
431 if (exists('g:doxygen_enhanced_color') && g:doxygen_enhanced_color) || (exists('g:doxygen_enhanced_colour') && g:doxygen_enhanced_colour)
432 if &background=='light'
433 SynColor doxygenComment ctermfg=DarkRed guifg=DarkRed
434 SynColor doxygenBrief cterm=bold ctermfg=Cyan guifg=DarkBlue gui=bold
435 SynColor doxygenBody ctermfg=DarkBlue guifg=DarkBlue
436 SynColor doxygenSpecialTypeOnelineDesc cterm=bold ctermfg=DarkRed guifg=firebrick3 gui=bold
437 SynColor doxygenBOther cterm=bold ctermfg=DarkMagenta guifg=#aa50aa gui=bold
438 SynColor doxygenParam ctermfg=DarkGray guifg=#aa50aa
439 SynColor doxygenParamName cterm=italic ctermfg=DarkBlue guifg=DeepSkyBlue4 gui=italic,bold
440 SynColor doxygenSpecialOnelineDesc cterm=bold ctermfg=DarkCyan guifg=DodgerBlue3 gui=bold
441 SynColor doxygenSpecialHeading cterm=bold ctermfg=DarkBlue guifg=DeepSkyBlue4 gui=bold
442 SynColor doxygenPrev ctermfg=DarkGreen guifg=DarkGreen
443 else
444 SynColor doxygenComment ctermfg=LightRed guifg=LightRed
445 SynColor doxygenBrief cterm=bold ctermfg=Cyan ctermbg=darkgrey guifg=LightBlue gui=Bold,Italic
446 SynColor doxygenBody ctermfg=Cyan guifg=LightBlue
447 SynColor doxygenSpecialTypeOnelineDesc cterm=bold ctermfg=Red guifg=firebrick3 gui=bold
448 SynColor doxygenBOther cterm=bold ctermfg=Magenta guifg=#aa50aa gui=bold
449 SynColor doxygenParam ctermfg=LightGray guifg=LightGray
450 SynColor doxygenParamName cterm=italic ctermfg=LightBlue guifg=LightBlue gui=italic,bold
451 SynColor doxygenSpecialOnelineDesc cterm=bold ctermfg=LightCyan guifg=LightCyan gui=bold
452 SynColor doxygenSpecialHeading cterm=bold ctermfg=LightBlue guifg=LightBlue gui=bold
453 SynColor doxygenPrev ctermfg=LightGreen guifg=LightGreen
454 endif
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000455 else
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000456 SynLink doxygenComment SpecialComment
457 SynLink doxygenBrief Statement
458 SynLink doxygenBody Comment
459 SynLink doxygenSpecialTypeOnelineDesc Statement
460 SynLink doxygenBOther Constant
461 SynLink doxygenParam SpecialComment
462 SynLink doxygenParamName Underlined
463 SynLink doxygenSpecialOnelineDesc Statement
464 SynLink doxygenSpecialHeading Statement
465 SynLink doxygenPrev SpecialComment
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000466 endif
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000467 endfun
468
469 call s:Doxygen_Hilights()
470
471 " This is still a proposal, but won't do any harm.
472 aug doxygengroup
473 au!
474 au Syntax UserColor_reset nested call s:Doxygen_Hilights_Base()
475 au Syntax UserColor_{on,reset,enable} nested call s:Doxygen_Hilights()
476 aug END
477
478
479 SynLink doxygenBody Comment
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000480 SynLink doxygenLine doxygenBody
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000481 SynLink doxygenTODO Todo
482 SynLink doxygenOtherTODO Todo
483 SynLink doxygenOtherWARN Todo
484 SynLink doxygenOtherBUG Todo
485
486 SynLink doxygenErrorSpecial Error
487 SynLink doxygenErrorEnd Error
488 SynLink doxygenErrorComment Error
489 SynLink doxygenLinkError Error
490 SynLink doxygenBriefSpecial doxygenSpecial
491 SynLink doxygenHashSpecial doxygenSpecial
492 SynLink doxygenGroupDefineSpecial doxygenSpecial
493 SynLink doxygenEndlinkSpecial doxygenSpecial
494 SynLink doxygenCodeRegionSpecial doxygenSpecial
495 SynLink doxygenVerbatimRegionSpecial doxygenSpecial
Bram Moolenaarc81e5e72007-05-05 18:24:42 +0000496 SynLink doxygenDotRegionSpecial doxygenSpecial
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000497 SynLink doxygenGroupDefine doxygenParam
498
499 SynLink doxygenSpecialMultilineDesc doxygenSpecialOnelineDesc
500 SynLink doxygenFormulaEnds doxygenSpecial
501 SynLink doxygenBold doxygenParam
502 SynLink doxygenBriefWord doxygenParam
503 SynLink doxygenRetval doxygenParam
504 SynLink doxygenOther doxygenParam
505 SynLink doxygenStart doxygenComment
506 SynLink doxygenStart2 doxygenStart
507 SynLink doxygenComment2 doxygenComment
508 SynLink doxygenCommentL doxygenComment
509 SynLink doxygenContinueComment doxygenComment
510 SynLink doxygenSpecialContinueComment doxygenComment
511 SynLink doxygenSkipComment doxygenComment
512 SynLink doxygenEndComment doxygenComment
513 SynLink doxygenStartL doxygenComment
514 SynLink doxygenBriefEndComment doxygenComment
515 SynLink doxygenPrevL doxygenPrev
516 SynLink doxygenBriefL doxygenBrief
517 SynLink doxygenBriefLine doxygenBrief
518 SynLink doxygenHeaderLine doxygenSpecialHeading
519 SynLink doxygenStartSkip doxygenContinueComment
520 SynLink doxygenLinkWord doxygenParamName
521 SynLink doxygenLinkRest doxygenSpecialMultilineDesc
522 SynLink doxygenHyperLink doxygenLinkWord
523 SynLink doxygenHashLink doxygenLinkWord
524
525 SynLink doxygenPage doxygenSpecial
526 SynLink doxygenPagePage doxygenBOther
527 SynLink doxygenPageIdent doxygenParamName
528 SynLink doxygenPageDesc doxygenSpecialTypeOnelineDesc
529
530 SynLink doxygenSpecialIdent doxygenPageIdent
531 SynLink doxygenSpecialSectionDesc doxygenSpecialMultilineDesc
532
533 SynLink doxygenSpecialRefWord doxygenOther
534 SynLink doxygenRefWord doxygenPageIdent
535 SynLink doxygenContinueLinkComment doxygenComment
536
537 SynLink doxygenHtmlCh Function
538 SynLink doxygenHtmlCmd Statement
539 SynLink doxygenHtmlBoldItalicUnderline doxygenHtmlBoldUnderlineItalic
540 SynLink doxygenHtmlUnderlineBold doxygenHtmlBoldUnderline
541 SynLink doxygenHtmlUnderlineItalicBold doxygenHtmlBoldUnderlineItalic
542 SynLink doxygenHtmlUnderlineBoldItalic doxygenHtmlBoldUnderlineItalic
543 SynLink doxygenHtmlItalicUnderline doxygenHtmlUnderlineItalic
544 SynLink doxygenHtmlItalicBold doxygenHtmlBoldItalic
545 SynLink doxygenHtmlItalicBoldUnderline doxygenHtmlBoldUnderlineItalic
546 SynLink doxygenHtmlItalicUnderlineBold doxygenHtmlBoldUnderlineItalic
547 SynLink doxygenHtmlLink Underlined
548
549 SynLink doxygenParamDirection StorageClass
550
551
552 if !exists("doxygen_my_rendering") && !exists("html_my_rendering")
553 SynColor doxygenBoldWord term=bold cterm=bold gui=bold
554 SynColor doxygenEmphasisedWord term=italic cterm=italic gui=italic
555 SynLink doxygenArgumentWord doxygenEmphasisedWord
556 SynLink doxygenHtmlCode doxygenCodeWord
557 SynLink doxygenHtmlBold doxygenBoldWord
558 SynColor doxygenHtmlBoldUnderline term=bold,underline cterm=bold,underline gui=bold,underline
559 SynColor doxygenHtmlBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic
560 SynColor doxygenHtmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline
561 SynColor doxygenHtmlUnderline term=underline cterm=underline gui=underline
562 SynColor doxygenHtmlUnderlineItalic term=italic,underline cterm=italic,underline gui=italic,underline
563 SynColor doxygenHtmlItalic term=italic cterm=italic gui=italic
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000564 endif
Bram Moolenaarb21e5842006-04-16 18:30:08 +0000565
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000566 finally
567 if s:my_synlink | delcommand SynLink | endif
568 if s:my_syncolor | delcommand SynColor | endif
569 endtry
Bram Moolenaarb21e5842006-04-16 18:30:08 +0000570
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000571 if &syntax=='idl'
572 syn cluster idlCommentable add=doxygenComment,doxygenCommentL
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000573 endif
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000574
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000575 "syn sync clear
576 "syn sync maxlines=500
577 "syn sync minlines=50
578 syn sync match doxygenComment groupthere cComment "/\@<!/\*"
579 syn sync match doxygenSyncComment grouphere doxygenComment "/\@<!/\*[*!]"
580 "syn sync match doxygenSyncComment grouphere doxygenComment "/\*[*!]" contains=doxygenStart,doxygenTODO keepend
581 syn sync match doxygenSyncEndComment groupthere NONE "\*/"
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000582
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000583 if !exists('b:current_syntax')
584 let b:current_syntax = "doxygen"
585 else
586 let b:current_syntax = b:current_syntax.'.doxygen'
587 endif
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000588
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000589finally
590 let &cpo = s:cpo_save
591 unlet s:cpo_save
592endtry
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000593
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000594" vim:et sw=2 sts=2