Mercurial > hg > RemoteEditor > vim7
annotate runtime/syntax/doxygen.vim @ 34:e170173ecb68 current-release
before ack base protocol.
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 26 Nov 2008 15:02:10 +0900 |
parents | 76efa0be13f1 |
children | c16898406ff2 |
rev | line source |
---|---|
0 | 1 " DoxyGen syntax hilighting extension for c/c++/idl/java |
34
e170173ecb68
before ack base protocol.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
2 " Language: doxygen on top of c, cpp, idl, java, php |
0 | 3 " Maintainer: Michael Geddes <vimmer@frog.wheelycreek.net> |
4 " Author: Michael Geddes | |
34
e170173ecb68
before ack base protocol.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
5 " Last Change: July 2008 |
e170173ecb68
before ack base protocol.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
6 " Version: 1.22 |
0 | 7 " |
34
e170173ecb68
before ack base protocol.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
8 " Copyright 2004-2008 Michael Geddes |
0 | 9 " 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 " | |
16 " There are two variables that control the syntax highlighting produced by this | |
17 " script: | |
18 " doxygen_enhanced_colour - Use the (non-standard) original colours designed | |
19 " for this highlighting. | |
20 " 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. | |
25 " A \link without an \endlink will cause an error highlight on the end-comment. | |
26 " 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 | |
30 " also be set to any highlight attribute. Alternatively, a highlight for doxygenCodeWord | |
31 " can be used to override it. | |
32 " | |
34
e170173ecb68
before ack base protocol.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
33 " By default, highlighting is done assuming you have the JAVADOC_AUTOBRIEF |
0 | 34 " setting turned on in your Doxygen configuration. If you don't, you |
35 " can set the variable g:doxygen_javadoc_autobrief to 0 to have the | |
36 " highlighting more accurately reflect the way Doxygen will interpret your | |
37 " comments. | |
38 " | |
34
e170173ecb68
before ack base protocol.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
39 " Support for cpp, c, idl, doxygen and php. |
e170173ecb68
before ack base protocol.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
40 " |
0 | 41 " Special thanks to: Wu Yongwei, Toby Allsopp |
42 " | |
43 | |
44 if exists('b:suppress_doxygen') | |
45 unlet b:suppress_doxygen | |
46 finish | |
47 endif | |
48 | |
49 if exists('b:current_syntax') && b:current_syntax =~ 'doxygen' && !exists('doxygen_debug_script') | |
50 finish | |
51 endif | |
52 | |
53 let s:cpo_save = &cpo | |
54 try | |
55 set cpo&vim | |
56 | |
57 " Start of Doxygen syntax hilighting: | |
58 " | |
59 | |
60 " C/C++ Style line comments | |
34
e170173ecb68
before ack base protocol.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
61 syn region doxygenComment start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contains=doxygenSyncStart,doxygenStart,doxygenTODO keepend fold containedin=phpRegion |
e170173ecb68
before ack base protocol.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
62 syn region doxygenCommentL start=+//[/!]<\@!+me=e-1 end=+$+ contains=doxygenStartL,@Spell keepend skipwhite skipnl nextgroup=doxygenComment2 fold containedin=phpRegion |
e170173ecb68
before ack base protocol.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
63 syn region doxygenCommentL start=+//[/!]<+me=e-2 end=+$+ contains=doxygenStartL,@Spell keepend skipwhite skipnl fold containedin=phpRegion |
e170173ecb68
before ack base protocol.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
64 syn region doxygenCommentL start=+//@\ze[{}]+ end=+$+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial,@Spell fold containedin=phpRegion |
0 | 65 |
66 " Single line brief followed by multiline comment. | |
67 syn region doxygenComment2 start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contained contains=doxygenSyncStart2,doxygenStart2,doxygenTODO keepend fold | |
68 " 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 | |
70 | |
71 " 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 | |
75 | |
76 | |
77 " 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 | |
80 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 | |
92 else | |
93 syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl | |
94 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 | |
98 endif | |
99 | |
100 " 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 | |
102 | |
34
e170173ecb68
before ack base protocol.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
103 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 |
0 | 104 |
105 " Match a '<' for applying a comment to the previous element. | |
106 syn match doxygenPrev +<+ contained nextgroup=doxygenBrief,doxygenBody,doxygenSpecial,doxygenStartSkip skipwhite | |
107 | |
108 if exists("c_comment_strings") | |
109 " These are anti-Doxygen comments. If there are more than two asterisks or 3 '/'s | |
110 " 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 | |
113 else | |
114 syn region cComment start="/\*\*\*" end="\*/" contains=@cCommentGroup,cSpaceError | |
115 syn region cCommentL start="////" skip="\\$" end="$" contains=@cCommentGroup,cSpaceError | |
116 endif | |
117 | |
118 " Special commands at the start of the area: starting with '@' or '\' | |
119 syn region doxygenStartSpecial contained start=+[@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=doxygenSpecial nextgroup=doxygenSkipComment skipnl keepend | |
120 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. | |
125 syn region doxygenBody contained start=+\(/\*[*!]\)\@<!<\|[^<]\|$+ matchgroup=doxygenEndComment end=+\*/+re=e-2,me=e-2 contains=doxygenContinueComment,doxygenTODO,doxygenSpecial,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell | |
126 | |
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 | |
149 syn region doxygenFindBriefSpecial start=+[@\\]brief\>+ end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ keepend contains=doxygenBriefSpecial nextgroup=doxygenBody keepend skipwhite skipnl contained | |
150 | |
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' | |
158 exe 'syn match doxygen'.a:name.'Word contained "\_s\@<='.mx.'" contains=doxygenHtmlSpecial,@Spell keepend' | |
159 endfun | |
160 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 | |
168 | |
169 syn match doxygenSmallSpecial contained +[@\\]\(\<[npcbea]\>\|\<em\>\|\<ref\>\|\<link\>\|f\$\|[$\\&<>#]\)\@=+ nextgroup=doxygenOtherLink,doxygenHyperLink,doxygenHashLink,doxygenFormula,doxygenSymbol,doxygenSpecial.*Word | |
170 | |
171 " Now for special characters | |
172 syn match doxygenSpecial contained +[@\\]\(\<[npcbea]\>\|\<em\>\|\<ref\|\<link\>\>\|\<f\$\|[$\\&<>#]\)\@!+ nextgroup=doxygenParam,doxygenRetval,doxygenBriefWord,doxygenBold,doxygenBOther,doxygenOther,doxygenOtherTODO,doxygenOtherWARN,doxygenOtherBUG,doxygenPage,doxygenGroupDefine,doxygenCodeRegion,doxygenVerbatimRegion,doxygenDotRegion | |
173 " 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 | |
180 " 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 | |
182 syn keyword doxygenParam contained param nextgroup=doxygenParamName,doxygenParamDirection skipwhite | |
183 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 | |
195 syn region doxygenCodeRegion contained matchgroup=doxygenOther start=+\<code\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endcode\>+ contains=doxygenCodeRegionSpecial,doxygenContinueComment,doxygenErrorComment,@NoSpell | |
196 syn match doxygenCodeRegionSpecial contained +[\\@]\(endcode\>\)\@=+ | |
197 | |
198 syn region doxygenVerbatimRegion contained matchgroup=doxygenOther start=+\<verbatim\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endverbatim\>+ contains=doxygenVerbatimRegionSpecial,doxygenContinueComment,doxygenErrorComment,@NoSpell | |
199 syn match doxygenVerbatimRegionSpecial contained +[\\@]\(endverbatim\>\)\@=+ | |
200 | |
201 if exists('b:current_syntax') | |
202 let b:doxygen_syntax_save=b:current_syntax | |
203 unlet b:current_syntax | |
204 endif | |
205 | |
206 syn include @Dotx syntax/dot.vim | |
207 | |
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 | |
215 syn region doxygenDotRegion contained matchgroup=doxygenOther start=+\<dot\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<enddot\>+ contains=doxygenDotRegionSpecial,doxygenErrorComment,doxygenContinueComment,@NoSpell,@Dotx | |
216 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 | |
226 syn keyword doxygenOther contained arg author date deprecated li return returns see invariant note post pre remarks since test nextgroup=doxygenSpecialMultilineDesc | |
227 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 | |
231 " 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 | |
233 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 | |
242 syn match doxygenHyperLink /\(\s\|^\s*\*\?\)\@<=\(http\|https\|ftp\):\/\/[-0-9a-zA-Z_?&=+#%/.!':;@]\+/ contained | |
243 | |
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 | |
248 syn match doxygenPageIdent "\<[a-zA-Z_0-9]\+\>" contained nextgroup=doxygenPageDesc | |
249 | |
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 | |
253 syn match doxygenSpecialIdent "\<[a-zA-Z_0-9]\+\>" contained nextgroup=doxygenSpecialSectionDesc | |
254 | |
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. | |
262 syn region doxygenSpecialMultilineDesc start=+.\++ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ contained contains=doxygenSpecialContinueComment,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell skipwhite keepend | |
263 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 | |
273 syn match doxygenSymbol contained +[$\\&<>#n]+ | |
274 | |
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 | |
305 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 | |
313 | |
314 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 | |
323 | |
324 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 | |
332 | |
333 syn region doxygenHtmlCode contained start="\c<code\>" end="\c</code>"me=e-7 contains=@doxygenHtmlTop,@NoSpell | |
334 | |
335 " Prevent the doxygen contained matches from leaking into the c/rc groups. | |
336 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 | |
394 else | |
395 " 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 | |
403 | |
404 elseif has('gui_win32') || has('gui_win16') || has('gui_win95') | |
405 | |
406 if exists('g:doxygen_use_bitsream_vera') && g:doxygen_use_bitsream_vera | |
407 let font_base='Bitstream_Vera_Sans_Mono' | |
408 else | |
409 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,''),'[^,]*') | |
415 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' | |
426 endif | |
427 endif | |
428 endif | |
429 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 | |
455 else | |
456 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 | |
466 endif | |
467 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 | |
480 SynLink doxygenLine doxygenBody | |
481 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 | |
496 SynLink doxygenDotRegionSpecial doxygenSpecial | |
497 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 | |
564 endif | |
565 | |
566 finally | |
567 if s:my_synlink | delcommand SynLink | endif | |
568 if s:my_syncolor | delcommand SynColor | endif | |
569 endtry | |
570 | |
571 if &syntax=='idl' | |
572 syn cluster idlCommentable add=doxygenComment,doxygenCommentL | |
573 endif | |
574 | |
575 "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 "\*/" | |
582 | |
583 if !exists('b:current_syntax') | |
584 let b:current_syntax = "doxygen" | |
585 else | |
586 let b:current_syntax = b:current_syntax.'.doxygen' | |
587 endif | |
588 | |
589 finally | |
590 let &cpo = s:cpo_save | |
591 unlet s:cpo_save | |
592 endtry | |
593 | |
594 " vim:et sw=2 sts=2 |