| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | " DoxyGen syntax hilighting extension for c/c++/idl/java | 
					
						
							|  |  |  | " Language:     doxygen on top of c, cpp, idl, java | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  | " Maintainer:   Michael Geddes <vimmer@frog.wheelycreek.net> | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | " Author:       Michael Geddes | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  | " Last Change:  April 2007 | 
					
						
							|  |  |  | " Version:      1.20 | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | " | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  | " Copyright 2004-2006 Michael Geddes | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | " Please feel free to use, modify & distribute all or part of this script, | 
					
						
							|  |  |  | " providing this copyright message remains. | 
					
						
							|  |  |  | " I would appreciate being acknowledged in any derived scripts, and would | 
					
						
							|  |  |  | " appreciate and welcome any updates, modifications or suggestions. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " NOTE:  Comments welcome! | 
					
						
							|  |  |  | " | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  | " There are two variables that control the syntax highlighting produced by this | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | " script: | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  | " doxygen_enhanced_colour  - Use the (non-standard) original colours designed | 
					
						
							|  |  |  | "                            for this highlighting. | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | " doxygen_my_rendering     - Disable the HTML bold/italic/underline rendering. | 
					
						
							|  |  |  | " | 
					
						
							|  |  |  | " A brief description without '.' or '!' will cause the end comment | 
					
						
							|  |  |  | " character to be marked as an error.  You can define the colour of this using | 
					
						
							|  |  |  | " the highlight doxygenErrorComment. | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  | " A \link without an \endlink will cause an error highlight on the end-comment. | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | " This is defined by doxygenLinkError | 
					
						
							|  |  |  | " | 
					
						
							|  |  |  | " The variable g:doxygen_codeword_font can be set to the guifont for marking \c | 
					
						
							|  |  |  | " words - a 'typewriter' like font normally. Spaces must be escaped.  It can | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  | " also be set to any highlight attribute. Alternatively, a highlight for doxygenCodeWord | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | " can be used to override it. | 
					
						
							|  |  |  | " | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  | " By default, highlighting is done assumng you have the JAVADOC_AUTOBRIEF | 
					
						
							|  |  |  | " setting turned on in your Doxygen configuration.  If you don't, you | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | " can set the variable g:doxygen_javadoc_autobrief to 0 to have the | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  | " highlighting more accurately reflect the way Doxygen will interpret your | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | " comments. | 
					
						
							|  |  |  | " | 
					
						
							|  |  |  | " Special thanks to:  Wu Yongwei, Toby Allsopp | 
					
						
							|  |  |  | " | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if exists('b:suppress_doxygen') | 
					
						
							|  |  |  |   unlet b:suppress_doxygen | 
					
						
							|  |  |  |   finish | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if exists('b:current_syntax') && b:current_syntax =~ 'doxygen' && !exists('doxygen_debug_script') | 
					
						
							|  |  |  |   finish | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let s:cpo_save = &cpo | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  | try | 
					
						
							|  |  |  |   set cpo&vim | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " Start of Doxygen syntax hilighting: | 
					
						
							|  |  |  |   " | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " C/C++ Style line comments | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |   syn region doxygenComment start=+/\*\(\*/\)\@![*!]+  end=+\*/+ contains=doxygenSyncStart,doxygenStart,doxygenTODO keepend fold | 
					
						
							|  |  |  |   syn region doxygenCommentL start=+//[/!]<\@!+me=e-1 end=+$+ contains=doxygenStartL keepend skipwhite skipnl nextgroup=doxygenComment2 fold | 
					
						
							|  |  |  |   syn region doxygenCommentL start=+//[/!]<+me=e-2 end=+$+ contains=doxygenStartL keepend skipwhite skipnl fold | 
					
						
							|  |  |  |   syn region doxygenCommentL start=+//@\ze[{}]+ end=+$+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial fold | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   " Single line brief followed by multiline comment. | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |   syn region doxygenComment2 start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contained contains=doxygenSyncStart2,doxygenStart2,doxygenTODO keepend fold | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   " This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched. | 
					
						
							|  |  |  |   syn match doxygenSyncStart2 +[^*/]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenSkipComment,doxygenStartSkip2 skipwhite skipnl | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " Skip empty lines at the start for when comments start on the 2nd/3rd line. | 
					
						
							|  |  |  |   syn match doxygenStartSkip2 +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBody,doxygenStartSpecial,doxygenStartSkip skipwhite skipnl | 
					
						
							|  |  |  |   syn match doxygenStartSkip2 +^\s*\*$+ contained nextgroup=doxygenBody,doxygenStartSpecial,,doxygenStartSkip skipwhite skipnl | 
					
						
							|  |  |  |   syn match doxygenStart2 +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenStartSkip2 skipwhite skipnl | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   " Match the Starting pattern (effectively creating the start of a BNF) | 
					
						
							|  |  |  |   if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief | 
					
						
							|  |  |  |     syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |     syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenPrevL,doxygenBriefL,doxygenSpecial skipwhite | 
					
						
							|  |  |  |     " Match the first sentence as a brief comment | 
					
						
							|  |  |  |     if ! exists('g:doxygen_end_punctuation') | 
					
						
							|  |  |  |       let g:doxygen_end_punctuation='[.]' | 
					
						
							|  |  |  |     endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     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' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     syn match doxygenBriefEndComment +\*/+ contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     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' | 
					
						
							|  |  |  |     syn match doxygenPrevL +<+ contained  nextgroup=doxygenBriefL,doxygenSpecial skipwhite | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   else | 
					
						
							|  |  |  |     syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |     syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenPrevL,doxygenLine,doxygenSpecial skipwhite | 
					
						
							|  |  |  |     syn region doxygenLine start=+@\k\@!\|[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@<]+ start=+\<+ end='$' contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell keepend | 
					
						
							|  |  |  |     syn match doxygenPrevL +<+ contained  nextgroup=doxygenLine,doxygenSpecial skipwhite | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   endif | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   " This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched. | 
					
						
							|  |  |  |   syn match doxygenSyncStart +\ze[^*/]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |   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 | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   " Match a '<' for applying a comment to the previous element. | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |   syn match doxygenPrev +<+ contained nextgroup=doxygenBrief,doxygenBody,doxygenSpecial,doxygenStartSkip skipwhite | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  | if exists("c_comment_strings") | 
					
						
							|  |  |  |   " These are anti-Doxygen comments.  If there are more than two asterisks or 3 '/'s | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   " then turn the comments back into normal C comments. | 
					
						
							|  |  |  |   syn region cComment start="/\*\*\*" end="\*/" contains=@cCommentGroup,cCommentString,cCharacter,cNumbersCom,cSpaceError | 
					
						
							|  |  |  |   syn region cCommentL start="////" skip="\\$" end="$" contains=@cCommentGroup,cComment2String,cCharacter,cNumbersCom,cSpaceError | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  | else | 
					
						
							|  |  |  |   syn region cComment start="/\*\*\*" end="\*/" contains=@cCommentGroup,cSpaceError | 
					
						
							|  |  |  |   syn region cCommentL start="////" skip="\\$" end="$" contains=@cCommentGroup,cSpaceError | 
					
						
							|  |  |  | endif | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   " Special commands at the start of the area:  starting with '@' or '\' | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |   syn region doxygenStartSpecial contained start=+[@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!+ end=+$+ end=+\*/+me=s-1,he=s-1  contains=doxygenSpecial nextgroup=doxygenSkipComment skipnl keepend | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   syn match doxygenSkipComment contained +^\s*\*/\@!+ nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenPage skipwhite | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   "syn region doxygenBodyBit contained start=+$+ | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   " The main body of a doxygen comment. | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |   syn region doxygenBody contained start=+\(/\*[*!]\)\@<!<\|[^<]\|$+ matchgroup=doxygenEndComment end=+\*/+re=e-2,me=e-2 contains=doxygenContinueComment,doxygenTODO,doxygenSpecial,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   " These allow the skipping of comment continuation '*' characters. | 
					
						
							|  |  |  |   syn match doxygenContinueComment contained +^\s*\*/\@!\s*+ | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   " Catch a Brief comment without punctuation - flag it as an error but | 
					
						
							|  |  |  |   " make sure the end comment is picked up also. | 
					
						
							|  |  |  |   syn match doxygenErrorComment contained +\*/+ | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   " Skip empty lines at the start for when comments start on the 2nd/3rd line. | 
					
						
							|  |  |  |   if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief | 
					
						
							|  |  |  |     syn match doxygenStartSkip +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl | 
					
						
							|  |  |  |     syn match doxygenStartSkip +^\s*\*$+ contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     syn match doxygenStartSkip +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage,doxygenBody skipwhite skipnl | 
					
						
							|  |  |  |     syn match doxygenStartSkip +^\s*\*$+ contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage,doxygenBody skipwhite skipnl | 
					
						
							|  |  |  |   endif | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   " Match an [@\]brief so that it moves to body-mode. | 
					
						
							|  |  |  |   " | 
					
						
							|  |  |  |   " | 
					
						
							|  |  |  |   " syn match doxygenBriefLine  contained | 
					
						
							|  |  |  |   syn match doxygenBriefSpecial contained +[@\\]+ nextgroup=doxygenBriefWord skipwhite | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |   syn region doxygenFindBriefSpecial start=+[@\\]brief\>+ end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ keepend contains=doxygenBriefSpecial nextgroup=doxygenBody keepend skipwhite skipnl contained | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   " Create the single word matching special identifiers. | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   fun! s:DxyCreateSmallSpecial( kword, name ) | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |     let mx='[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\\[\\<>&.]@\|[.,][0-9a-zA-Z_]\@=\|::\|([^)]*)\|&[0-9a-zA-Z]\{2,7};\)\+' | 
					
						
							|  |  |  |     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' | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |     exe 'syn match doxygen'.a:name.'Word contained "\_s\@<='.mx.'" contains=doxygenHtmlSpecial,@Spell keepend' | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   endfun | 
					
						
							|  |  |  |   call s:DxyCreateSmallSpecial('p', 'Code') | 
					
						
							|  |  |  |   call s:DxyCreateSmallSpecial('c', 'Code') | 
					
						
							|  |  |  |   call s:DxyCreateSmallSpecial('b', 'Bold') | 
					
						
							|  |  |  |   call s:DxyCreateSmallSpecial('e', 'Emphasised') | 
					
						
							|  |  |  |   call s:DxyCreateSmallSpecial('em', 'Emphasised') | 
					
						
							|  |  |  |   call s:DxyCreateSmallSpecial('a', 'Argument') | 
					
						
							|  |  |  |   call s:DxyCreateSmallSpecial('ref', 'Ref') | 
					
						
							|  |  |  |   delfun s:DxyCreateSmallSpecial | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |   syn match doxygenSmallSpecial contained +[@\\]\(\<[npcbea]\>\|\<em\>\|\<ref\>\|\<link\>\|f\$\|[$\\&<>#]\)\@=+ nextgroup=doxygenOtherLink,doxygenHyperLink,doxygenHashLink,doxygenFormula,doxygenSymbol,doxygenSpecial.*Word | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   " Now for special characters | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |   syn match doxygenSpecial contained +[@\\]\(\<[npcbea]\>\|\<em\>\|\<ref\|\<link\>\>\|\<f\$\|[$\\&<>#]\)\@!+ nextgroup=doxygenParam,doxygenRetval,doxygenBriefWord,doxygenBold,doxygenBOther,doxygenOther,doxygenOtherTODO,doxygenOtherWARN,doxygenOtherBUG,doxygenPage,doxygenGroupDefine,doxygenCodeRegion,doxygenVerbatimRegion,doxygenDotRegion | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   " doxygenOtherLink,doxygenSymbol,doxygenFormula,doxygenErrorSpecial,doxygenSpecial.*Word | 
					
						
							|  |  |  |   " | 
					
						
							|  |  |  |   syn match doxygenGroupDefine contained +@\@<=[{}]+ | 
					
						
							|  |  |  |   syn match doxygenGroupDefineSpecial contained +@\ze[{}]+ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   syn match doxygenErrorSpecial contained +\s+ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |   " Match parameters and retvals (highlighting the first word as special). | 
					
						
							|  |  |  |   syn match doxygenParamDirection contained "\v\[(\s*in>((]\s*\[|\s*,\s*)out>)=|out>((]\s*\[|\s*,\s*)in>)=)\]" nextgroup=doxygenParamName skipwhite | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   syn keyword doxygenParam contained param nextgroup=doxygenParamName,doxygenParamDirection skipwhite | 
					
						
							|  |  |  |   syn match doxygenParamName contained +[A-Za-z0-9_:]\++ nextgroup=doxygenSpecialMultilineDesc skipwhite | 
					
						
							|  |  |  |   syn keyword doxygenRetval contained retval throw exception nextgroup=doxygenParamName skipwhite | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " Match one line identifiers. | 
					
						
							|  |  |  |   syn keyword doxygenOther contained addindex anchor | 
					
						
							|  |  |  |   \ dontinclude endhtmlonly endlatexonly showinitializer hideinitializer | 
					
						
							|  |  |  |   \ example htmlonly image include ingroup internal latexonly line | 
					
						
							|  |  |  |   \ overload relates relatesalso sa skip skipline | 
					
						
							|  |  |  |   \ until verbinclude version addtogroup htmlinclude copydoc dotfile | 
					
						
							|  |  |  |   \ xmlonly endxmlonly | 
					
						
							|  |  |  |   \ nextgroup=doxygenSpecialOnelineDesc | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |   syn region doxygenCodeRegion contained matchgroup=doxygenOther start=+\<code\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endcode\>+ contains=doxygenCodeRegionSpecial,doxygenContinueComment,doxygenErrorComment,@NoSpell | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   syn match doxygenCodeRegionSpecial contained +[\\@]\(endcode\>\)\@=+ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |   syn region doxygenVerbatimRegion contained matchgroup=doxygenOther start=+\<verbatim\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endverbatim\>+ contains=doxygenVerbatimRegionSpecial,doxygenContinueComment,doxygenErrorComment,@NoSpell | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   syn match doxygenVerbatimRegionSpecial contained +[\\@]\(endverbatim\>\)\@=+ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-22 22:33:57 +00:00
										 |  |  |   if exists('b:current_syntax')  | 
					
						
							|  |  |  |     let b:doxygen_syntax_save=b:current_syntax | 
					
						
							|  |  |  |     unlet b:current_syntax | 
					
						
							|  |  |  |   endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   syn include @Dotx syntax/dot.vim | 
					
						
							| 
									
										
										
										
											2006-04-22 22:33:57 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   if exists('b:doxygen_syntax_save')  | 
					
						
							|  |  |  |     let b:current_syntax=b:doxygen_syntax_save | 
					
						
							|  |  |  |     unlet b:doxygen_syntax_save | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     unlet b:current_syntax | 
					
						
							|  |  |  |   endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |   syn region doxygenDotRegion contained matchgroup=doxygenOther start=+\<dot\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<enddot\>+ contains=doxygenDotRegionSpecial,doxygenErrorComment,doxygenContinueComment,@NoSpell,@Dotx | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   syn match doxygenDotRegionSpecial contained +[\\@]\(enddot\>\)\@=+ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " Match single line identifiers. | 
					
						
							|  |  |  |   syn keyword doxygenBOther contained class enum file fn mainpage interface | 
					
						
							|  |  |  |   \ namespace struct typedef union var def name | 
					
						
							|  |  |  |   \ nextgroup=doxygenSpecialTypeOnelineDesc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   syn keyword doxygenOther contained par nextgroup=doxygenHeaderLine | 
					
						
							|  |  |  |   syn region doxygenHeaderLine start=+.+ end=+^+ contained skipwhite nextgroup=doxygenSpecialMultilineDesc | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |   syn keyword doxygenOther contained arg author date deprecated li return returns see invariant note post pre remarks since test nextgroup=doxygenSpecialMultilineDesc | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   syn keyword doxygenOtherTODO contained todo attention nextgroup=doxygenSpecialMultilineDesc | 
					
						
							|  |  |  |   syn keyword doxygenOtherWARN contained warning nextgroup=doxygenSpecialMultilineDesc | 
					
						
							|  |  |  |   syn keyword doxygenOtherBUG contained bug nextgroup=doxygenSpecialMultilineDesc | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |   " Handle \link, \endlink, highlighting the link-to and the link text bits separately. | 
					
						
							|  |  |  |   syn region doxygenOtherLink matchgroup=doxygenOther start=+\<link\>+ end=+[\@]\@<=endlink\>+ contained contains=doxygenLinkWord,doxygenContinueComment,doxygenLinkError,doxygenEndlinkSpecial | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   syn match doxygenEndlinkSpecial contained +[\\@]\zeendlink\>+ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   syn match doxygenLinkWord "[_a-zA-Z:#()][_a-z0-9A-Z:#()]*\>" contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment | 
					
						
							|  |  |  |   syn match doxygenLinkRest +[^*@\\]\|\*/\@!\|[@\\]\(endlink\>\)\@!+ contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment | 
					
						
							|  |  |  |   syn match doxygenContinueLinkComment contained +^\s*\*\=[^/]+me=e-1 nextgroup=doxygenLinkRest | 
					
						
							|  |  |  |   syn match doxygenLinkError "\*/" contained | 
					
						
							|  |  |  |   " #Link hilighting. | 
					
						
							|  |  |  |   syn match doxygenHashLink /\([a-zA-Z_][0-9a-zA-Z_]*\)\?#\(\.[0-9a-zA-Z_]\@=\|[a-zA-Z0-9_]\+\|::\|()\)\+/ contained contains=doxygenHashSpecial | 
					
						
							|  |  |  |   syn match doxygenHashSpecial /#/ contained | 
					
						
							|  |  |  |   syn match doxygenHyperLink /\(\s\|^\s*\*\?\)\@<=\(http\|https\|ftp\):\/\/[-0-9a-zA-Z_?&=+#%/.!':;@]\+/ contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " Handle \page.  This does not use doxygenBrief. | 
					
						
							|  |  |  |   syn match doxygenPage "[\\@]page\>"me=s+1 contained skipwhite nextgroup=doxygenPagePage | 
					
						
							|  |  |  |   syn keyword doxygenPagePage page contained skipwhite nextgroup=doxygenPageIdent | 
					
						
							|  |  |  |   syn region doxygenPageDesc  start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenBody | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |   syn match doxygenPageIdent "\<[a-zA-Z_0-9]\+\>" contained nextgroup=doxygenPageDesc | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   " Handle section | 
					
						
							|  |  |  |   syn keyword doxygenOther defgroup section subsection subsubsection weakgroup contained skipwhite nextgroup=doxygenSpecialIdent | 
					
						
							|  |  |  |   syn region doxygenSpecialSectionDesc  start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenContinueComment | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |   syn match doxygenSpecialIdent "\<[a-zA-Z_0-9]\+\>" contained nextgroup=doxygenSpecialSectionDesc | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   " Does the one-line description for the one-line type identifiers. | 
					
						
							|  |  |  |   syn region doxygenSpecialTypeOnelineDesc  start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend | 
					
						
							|  |  |  |   syn region doxygenSpecialOnelineDesc  start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " Handle the multiline description for the multiline type identifiers. | 
					
						
							|  |  |  |   " Continue until an 'empty' line (can contain a '*' continuation) or until the | 
					
						
							|  |  |  |   " next whole-line @ command \ command. | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |   syn region doxygenSpecialMultilineDesc  start=+.\++ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ contained contains=doxygenSpecialContinueComment,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell  skipwhite keepend | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   syn match doxygenSpecialContinueComment contained +^\s*\*/\@!\s*+ nextgroup=doxygenSpecial skipwhite | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " Handle special cases  'bold' and 'group' | 
					
						
							|  |  |  |   syn keyword doxygenBold contained bold nextgroup=doxygenSpecialHeading | 
					
						
							|  |  |  |   syn keyword doxygenBriefWord contained brief nextgroup=doxygenBriefLine skipwhite | 
					
						
							|  |  |  |   syn match doxygenSpecialHeading +.\++ contained skipwhite | 
					
						
							|  |  |  |   syn keyword doxygenGroup contained group nextgroup=doxygenGroupName skipwhite | 
					
						
							|  |  |  |   syn keyword doxygenGroupName contained +\k\++ nextgroup=doxygenSpecialOnelineDesc skipwhite | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " Handle special symbol identifiers  @$, @\, @$ etc | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |   syn match doxygenSymbol contained +[$\\&<>#n]+ | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   " Simplistic handling of formula regions | 
					
						
							|  |  |  |   syn region doxygenFormula contained matchgroup=doxygenFormulaEnds start=+f\$+ end=+[@\\]f\$+ contains=doxygenFormulaSpecial,doxygenFormulaOperator | 
					
						
							|  |  |  |   syn match doxygenFormulaSpecial contained +[@\\]\(f[^$]\|[^f]\)+me=s+1 nextgroup=doxygenFormulaKeyword,doxygenFormulaEscaped | 
					
						
							|  |  |  |   syn match doxygenFormulaEscaped contained "." | 
					
						
							|  |  |  |   syn match doxygenFormulaKeyword contained  "[a-z]\+" | 
					
						
							|  |  |  |   syn match doxygenFormulaOperator contained +[_^]+ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   syn region doxygenFormula contained matchgroup=doxygenFormulaEnds start=+f\[+ end=+[@\\]f]+ contains=doxygenFormulaSpecial,doxygenFormulaOperator,doxygenAtom | 
					
						
							|  |  |  |   syn region doxygenAtom contained transparent matchgroup=doxygenFormulaOperator start=+{+ end=+}+ contains=doxygenAtom,doxygenFormulaSpecial,doxygenFormulaOperator | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " Add TODO hilighting. | 
					
						
							|  |  |  |   syn keyword doxygenTODO contained TODO README XXX FIXME | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " Supported HTML subset.  Not perfect, but okay. | 
					
						
							|  |  |  |   syn case ignore | 
					
						
							|  |  |  |   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 | 
					
						
							|  |  |  |   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 | 
					
						
							|  |  |  |   syn keyword doxygenHtmlVar contained src alt longdesc name height width usemap ismap href type nextgroup=doxygenHtmlEqu skipwhite | 
					
						
							|  |  |  |   syn match doxygenHtmlEqu contained +=+ nextgroup=doxygenHtmlExpr skipwhite | 
					
						
							|  |  |  |   syn match doxygenHtmlExpr contained +"\(\\.\|[^"]\)*"\|'\(\\.\|[^']\)*'+ nextgroup=doxygenHtmlVar skipwhite | 
					
						
							|  |  |  |   syn case match | 
					
						
							|  |  |  |   syn match doxygenHtmlSpecial contained "&\(copy\|quot\|[AEIOUYaeiouy]uml\|[AEIOUYaeiouy]acute\|[AEIOUaeiouy]grave\|[AEIOUaeiouy]circ\|[ANOano]tilde\|szlig\|[Aa]ring\|nbsp\|gt\|lt\|amp\);" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   syn cluster doxygenHtmlGroup contains=doxygenHtmlCode,doxygenHtmlBold,doxygenHtmlUnderline,doxygenHtmlItalic,doxygenHtmlSpecial,doxygenHtmlTag,doxygenHtmlLink | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   syn cluster doxygenHtmlTop contains=@Spell,doxygenHtmlSpecial,doxygenHtmlTag,doxygenContinueComment | 
					
						
							|  |  |  |   " Html Support | 
					
						
							|  |  |  |   syn region doxygenHtmlLink contained start=+<[aA]\>\s*\(\n\s*\*\s*\)\=\(\(name\|href\)=\("[^"]*"\|'[^']*'\)\)\=\s*>+ end=+</[aA]>+me=e-4 contains=@doxygenHtmlTop | 
					
						
							|  |  |  |   hi link doxygenHtmlLink Underlined | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |   syn region doxygenHtmlBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderline,doxygenHtmlBoldItalic,@Spell | 
					
						
							|  |  |  |   syn region doxygenHtmlBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderline,doxygenHtmlBoldItalic,@Spell | 
					
						
							|  |  |  |   syn region doxygenHtmlBoldUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderlineItalic,@Spell | 
					
						
							|  |  |  |   syn region doxygenHtmlBoldItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldItalicUnderline,@Spell | 
					
						
							|  |  |  |   syn region doxygenHtmlBoldItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,doxygenHtmlBoldItalicUnderline,@Spell | 
					
						
							|  |  |  |   syn region doxygenHtmlBoldUnderlineItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,@Spell | 
					
						
							|  |  |  |   syn region doxygenHtmlBoldUnderlineItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,@Spell | 
					
						
							|  |  |  |   syn region doxygenHtmlBoldItalicUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderlineItalic,@Spell | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   syn region doxygenHtmlUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBold,doxygenHtmlUnderlineItalic,@Spell | 
					
						
							|  |  |  |   syn region doxygenHtmlUnderlineBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBoldItalic,@Spell | 
					
						
							|  |  |  |   syn region doxygenHtmlUnderlineBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBoldItalic,@Spell | 
					
						
							|  |  |  |   syn region doxygenHtmlUnderlineItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,htmUnderlineItalicBold,@Spell | 
					
						
							|  |  |  |   syn region doxygenHtmlUnderlineItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,htmUnderlineItalicBold,@Spell | 
					
						
							|  |  |  |   syn region doxygenHtmlUnderlineItalicBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,@Spell | 
					
						
							|  |  |  |   syn region doxygenHtmlUnderlineItalicBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,@Spell | 
					
						
							|  |  |  |   syn region doxygenHtmlUnderlineBoldItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,@Spell | 
					
						
							|  |  |  |   syn region doxygenHtmlUnderlineBoldItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,@Spell | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   syn region doxygenHtmlItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicBold,doxygenHtmlItalicUnderline,@Spell | 
					
						
							|  |  |  |   syn region doxygenHtmlItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,@Spell | 
					
						
							|  |  |  |   syn region doxygenHtmlItalicBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicBoldUnderline,@Spell | 
					
						
							|  |  |  |   syn region doxygenHtmlItalicBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlItalicBoldUnderline,@Spell | 
					
						
							|  |  |  |   syn region doxygenHtmlItalicBoldUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,@Spell | 
					
						
							|  |  |  |   syn region doxygenHtmlItalicUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicUnderlineBold,@Spell | 
					
						
							|  |  |  |   syn region doxygenHtmlItalicUnderlineBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,@Spell | 
					
						
							|  |  |  |   syn region doxygenHtmlItalicUnderlineBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,@Spell | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   syn region doxygenHtmlCode contained start="\c<code\>" end="\c</code>"me=e-7 contains=@doxygenHtmlTop,@NoSpell | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " Prevent the doxygen contained matches from leaking into the c/rc groups. | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   syn cluster cParenGroup add=doxygen.* | 
					
						
							|  |  |  |   syn cluster cParenGroup remove=doxygenComment,doxygenCommentL | 
					
						
							|  |  |  |   syn cluster cPreProcGroup add=doxygen.* | 
					
						
							|  |  |  |   syn cluster cMultiGroup add=doxygen.* | 
					
						
							|  |  |  |   syn cluster rcParenGroup add=doxygen.* | 
					
						
							|  |  |  |   syn cluster rcParenGroup remove=doxygenComment,doxygenCommentL | 
					
						
							|  |  |  |   syn cluster rcGroup add=doxygen.* | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   let s:my_syncolor=0 | 
					
						
							|  |  |  |   if !exists(':SynColor')  | 
					
						
							|  |  |  |     command -nargs=+ SynColor hi def <args> | 
					
						
							|  |  |  |     let s:my_syncolor=1 | 
					
						
							|  |  |  |   endif | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   let s:my_synlink=0 | 
					
						
							|  |  |  |   if !exists(':SynLink') | 
					
						
							|  |  |  |     command -nargs=+ SynLink hi def link <args> | 
					
						
							|  |  |  |     let s:my_synlink=1 | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  |   endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   try | 
					
						
							|  |  |  |     "let did_doxygen_syntax_inits = &background | 
					
						
							|  |  |  |     hi doxygen_Dummy guifg=black | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     fun! s:Doxygen_Hilights_Base() | 
					
						
							|  |  |  |       SynLink doxygenHtmlSpecial Special | 
					
						
							|  |  |  |       SynLink doxygenHtmlVar Type | 
					
						
							|  |  |  |       SynLink doxygenHtmlExpr String | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       SynLink doxygenSmallSpecial SpecialChar | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       SynLink doxygenSpecialCodeWord doxygenSmallSpecial | 
					
						
							|  |  |  |       SynLink doxygenSpecialBoldWord doxygenSmallSpecial | 
					
						
							|  |  |  |       SynLink doxygenSpecialEmphasisedWord doxygenSmallSpecial | 
					
						
							|  |  |  |       SynLink doxygenSpecialArgumentWord doxygenSmallSpecial | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       " SynColor doxygenFormulaKeyword cterm=bold ctermfg=DarkMagenta guifg=DarkMagenta gui=bold | 
					
						
							|  |  |  |       SynLink doxygenFormulaKeyword Keyword | 
					
						
							|  |  |  |       "SynColor doxygenFormulaEscaped  ctermfg=DarkMagenta guifg=DarkMagenta gui=bold | 
					
						
							|  |  |  |       SynLink doxygenFormulaEscaped Special | 
					
						
							|  |  |  |       SynLink doxygenFormulaOperator Operator | 
					
						
							|  |  |  |       SynLink doxygenFormula Statement | 
					
						
							|  |  |  |       SynLink doxygenSymbol Constant | 
					
						
							|  |  |  |       SynLink doxygenSpecial Special | 
					
						
							|  |  |  |       SynLink doxygenFormulaSpecial Special | 
					
						
							|  |  |  |       "SynColor doxygenFormulaSpecial ctermfg=DarkBlue guifg=DarkBlue | 
					
						
							|  |  |  |     endfun | 
					
						
							|  |  |  |     call s:Doxygen_Hilights_Base() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     fun! s:Doxygen_Hilights() | 
					
						
							|  |  |  |       " Pick a sensible default for 'codeword'. | 
					
						
							|  |  |  |       let font='' | 
					
						
							|  |  |  |       if exists('g:doxygen_codeword_font') | 
					
						
							|  |  |  |         if g:doxygen_codeword_font !~ '\<\k\+=' | 
					
						
							|  |  |  |           let font='font='.g:doxygen_codeword_font | 
					
						
							|  |  |  |         else | 
					
						
							|  |  |  |           let font=g:doxygen_codeword_font | 
					
						
							|  |  |  |         endif | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  |       else | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |         " Try and pick a font (only some platforms have been tested). | 
					
						
							|  |  |  |         if has('gui_running') | 
					
						
							|  |  |  |           if has('gui_gtk2') | 
					
						
							|  |  |  |             if &guifont == '' | 
					
						
							|  |  |  |               let font="font='FreeSerif 12'" | 
					
						
							|  |  |  |             else | 
					
						
							|  |  |  |               let font="font='".substitute(&guifont, '^.\{-}\([0-9]\+\)$', 'FreeSerif \1','')."'" | 
					
						
							|  |  |  |             endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           elseif has('gui_win32') || has('gui_win16') || has('gui_win95') | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |             if exists('g:doxygen_use_bitsream_vera')  && g:doxygen_use_bitsream_vera | 
					
						
							|  |  |  |               let font_base='Bitstream_Vera_Sans_Mono' | 
					
						
							|  |  |  |             else | 
					
						
							|  |  |  |               let font_base='Lucida_Console' | 
					
						
							|  |  |  |             endif | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |             if &guifont == '' | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |               let font='font='.font_base.':h10' | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |             else | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |               let font='font='.matchstr(substitute(&guifont, '^[^:]*', font_base,''),'[^,]*') | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |             endif | 
					
						
							|  |  |  |           elseif has('gui_athena') || has('gui_gtk') || &guifont=~'^\(-[^-]\+\)\{14}' | 
					
						
							|  |  |  |             if &guifont == '' | 
					
						
							|  |  |  |               let font='font=-b&h-lucidatypewriter-medium-r-normal-*-*-140-*-*-m-*-iso8859-1' | 
					
						
							|  |  |  |             else | 
					
						
							|  |  |  |             " let font='font='.substitute(&guifont,'^\(-[^-]\+\)\{7}-\([0-9]\+\).*', '-b\&h-lucidatypewriter-medium-r-normal-*-*-\2-*-*-m-*-iso8859-1','') | 
					
						
							|  |  |  |             " The above line works, but it is hard to expect the combination of | 
					
						
							|  |  |  |             " the two fonts will look good. | 
					
						
							|  |  |  |             endif | 
					
						
							|  |  |  |           elseif has('gui_kde') | 
					
						
							|  |  |  |             " let font='font=Bitstream\ Vera\ Sans\ Mono/12/-1/5/50/0/0/0/0/0' | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  |           endif | 
					
						
							|  |  |  |         endif | 
					
						
							|  |  |  |       endif | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |       if font=='' | let font='gui=bold' | endif | 
					
						
							|  |  |  |       exe 'SynColor doxygenCodeWord             term=bold cterm=bold '.font | 
					
						
							|  |  |  |       if (exists('g:doxygen_enhanced_color') && g:doxygen_enhanced_color) || (exists('g:doxygen_enhanced_colour') && g:doxygen_enhanced_colour) | 
					
						
							|  |  |  |         if &background=='light' | 
					
						
							|  |  |  |           SynColor doxygenComment ctermfg=DarkRed guifg=DarkRed | 
					
						
							|  |  |  |           SynColor doxygenBrief cterm=bold ctermfg=Cyan guifg=DarkBlue gui=bold | 
					
						
							|  |  |  |           SynColor doxygenBody ctermfg=DarkBlue guifg=DarkBlue | 
					
						
							|  |  |  |           SynColor doxygenSpecialTypeOnelineDesc cterm=bold ctermfg=DarkRed guifg=firebrick3 gui=bold | 
					
						
							|  |  |  |           SynColor doxygenBOther cterm=bold ctermfg=DarkMagenta guifg=#aa50aa gui=bold | 
					
						
							|  |  |  |           SynColor doxygenParam ctermfg=DarkGray guifg=#aa50aa | 
					
						
							|  |  |  |           SynColor doxygenParamName cterm=italic ctermfg=DarkBlue guifg=DeepSkyBlue4 gui=italic,bold | 
					
						
							|  |  |  |           SynColor doxygenSpecialOnelineDesc cterm=bold ctermfg=DarkCyan guifg=DodgerBlue3 gui=bold | 
					
						
							|  |  |  |           SynColor doxygenSpecialHeading cterm=bold ctermfg=DarkBlue guifg=DeepSkyBlue4 gui=bold | 
					
						
							|  |  |  |           SynColor doxygenPrev ctermfg=DarkGreen guifg=DarkGreen | 
					
						
							|  |  |  |         else | 
					
						
							|  |  |  |           SynColor doxygenComment ctermfg=LightRed guifg=LightRed | 
					
						
							|  |  |  |           SynColor doxygenBrief cterm=bold ctermfg=Cyan ctermbg=darkgrey guifg=LightBlue gui=Bold,Italic | 
					
						
							|  |  |  |           SynColor doxygenBody ctermfg=Cyan guifg=LightBlue | 
					
						
							|  |  |  |           SynColor doxygenSpecialTypeOnelineDesc cterm=bold ctermfg=Red guifg=firebrick3 gui=bold | 
					
						
							|  |  |  |           SynColor doxygenBOther cterm=bold ctermfg=Magenta guifg=#aa50aa gui=bold | 
					
						
							|  |  |  |           SynColor doxygenParam ctermfg=LightGray guifg=LightGray | 
					
						
							|  |  |  |           SynColor doxygenParamName cterm=italic ctermfg=LightBlue guifg=LightBlue gui=italic,bold | 
					
						
							|  |  |  |           SynColor doxygenSpecialOnelineDesc cterm=bold ctermfg=LightCyan guifg=LightCyan gui=bold | 
					
						
							|  |  |  |           SynColor doxygenSpecialHeading cterm=bold ctermfg=LightBlue guifg=LightBlue gui=bold | 
					
						
							|  |  |  |           SynColor doxygenPrev ctermfg=LightGreen guifg=LightGreen | 
					
						
							|  |  |  |         endif | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  |       else | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |         SynLink doxygenComment SpecialComment | 
					
						
							|  |  |  |         SynLink doxygenBrief Statement | 
					
						
							|  |  |  |         SynLink doxygenBody Comment | 
					
						
							|  |  |  |         SynLink doxygenSpecialTypeOnelineDesc Statement | 
					
						
							|  |  |  |         SynLink doxygenBOther Constant | 
					
						
							|  |  |  |         SynLink doxygenParam SpecialComment | 
					
						
							|  |  |  |         SynLink doxygenParamName Underlined | 
					
						
							|  |  |  |         SynLink doxygenSpecialOnelineDesc Statement | 
					
						
							|  |  |  |         SynLink doxygenSpecialHeading Statement | 
					
						
							|  |  |  |         SynLink doxygenPrev SpecialComment | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  |       endif | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |     endfun | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     call s:Doxygen_Hilights() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     " This is still a proposal, but won't do any harm. | 
					
						
							|  |  |  |     aug doxygengroup | 
					
						
							|  |  |  |     au! | 
					
						
							|  |  |  |     au Syntax UserColor_reset nested call s:Doxygen_Hilights_Base() | 
					
						
							|  |  |  |     au Syntax UserColor_{on,reset,enable} nested call s:Doxygen_Hilights() | 
					
						
							|  |  |  |     aug END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     SynLink doxygenBody                   Comment | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |     SynLink doxygenLine                   doxygenBody | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |     SynLink doxygenTODO                   Todo | 
					
						
							|  |  |  |     SynLink doxygenOtherTODO              Todo | 
					
						
							|  |  |  |     SynLink doxygenOtherWARN              Todo | 
					
						
							|  |  |  |     SynLink doxygenOtherBUG               Todo | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     SynLink doxygenErrorSpecial           Error | 
					
						
							|  |  |  |     SynLink doxygenErrorEnd               Error | 
					
						
							|  |  |  |     SynLink doxygenErrorComment           Error | 
					
						
							|  |  |  |     SynLink doxygenLinkError              Error | 
					
						
							|  |  |  |     SynLink doxygenBriefSpecial           doxygenSpecial | 
					
						
							|  |  |  |     SynLink doxygenHashSpecial            doxygenSpecial | 
					
						
							|  |  |  |     SynLink doxygenGroupDefineSpecial     doxygenSpecial | 
					
						
							|  |  |  |     SynLink doxygenEndlinkSpecial         doxygenSpecial | 
					
						
							|  |  |  |     SynLink doxygenCodeRegionSpecial      doxygenSpecial | 
					
						
							|  |  |  |     SynLink doxygenVerbatimRegionSpecial  doxygenSpecial | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  |     SynLink doxygenDotRegionSpecial       doxygenSpecial | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |     SynLink doxygenGroupDefine            doxygenParam | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     SynLink doxygenSpecialMultilineDesc   doxygenSpecialOnelineDesc | 
					
						
							|  |  |  |     SynLink doxygenFormulaEnds            doxygenSpecial | 
					
						
							|  |  |  |     SynLink doxygenBold                   doxygenParam | 
					
						
							|  |  |  |     SynLink doxygenBriefWord              doxygenParam | 
					
						
							|  |  |  |     SynLink doxygenRetval                 doxygenParam | 
					
						
							|  |  |  |     SynLink doxygenOther                  doxygenParam | 
					
						
							|  |  |  |     SynLink doxygenStart                  doxygenComment | 
					
						
							|  |  |  |     SynLink doxygenStart2                 doxygenStart | 
					
						
							|  |  |  |     SynLink doxygenComment2               doxygenComment | 
					
						
							|  |  |  |     SynLink doxygenCommentL               doxygenComment | 
					
						
							|  |  |  |     SynLink doxygenContinueComment        doxygenComment | 
					
						
							|  |  |  |     SynLink doxygenSpecialContinueComment doxygenComment | 
					
						
							|  |  |  |     SynLink doxygenSkipComment            doxygenComment | 
					
						
							|  |  |  |     SynLink doxygenEndComment             doxygenComment | 
					
						
							|  |  |  |     SynLink doxygenStartL                 doxygenComment | 
					
						
							|  |  |  |     SynLink doxygenBriefEndComment        doxygenComment | 
					
						
							|  |  |  |     SynLink doxygenPrevL                  doxygenPrev | 
					
						
							|  |  |  |     SynLink doxygenBriefL                 doxygenBrief | 
					
						
							|  |  |  |     SynLink doxygenBriefLine              doxygenBrief | 
					
						
							|  |  |  |     SynLink doxygenHeaderLine             doxygenSpecialHeading | 
					
						
							|  |  |  |     SynLink doxygenStartSkip              doxygenContinueComment | 
					
						
							|  |  |  |     SynLink doxygenLinkWord               doxygenParamName | 
					
						
							|  |  |  |     SynLink doxygenLinkRest               doxygenSpecialMultilineDesc | 
					
						
							|  |  |  |     SynLink doxygenHyperLink              doxygenLinkWord | 
					
						
							|  |  |  |     SynLink doxygenHashLink               doxygenLinkWord | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     SynLink doxygenPage                   doxygenSpecial | 
					
						
							|  |  |  |     SynLink doxygenPagePage               doxygenBOther | 
					
						
							|  |  |  |     SynLink doxygenPageIdent              doxygenParamName | 
					
						
							|  |  |  |     SynLink doxygenPageDesc               doxygenSpecialTypeOnelineDesc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     SynLink doxygenSpecialIdent           doxygenPageIdent | 
					
						
							|  |  |  |     SynLink doxygenSpecialSectionDesc     doxygenSpecialMultilineDesc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     SynLink doxygenSpecialRefWord         doxygenOther | 
					
						
							|  |  |  |     SynLink doxygenRefWord                doxygenPageIdent | 
					
						
							|  |  |  |     SynLink doxygenContinueLinkComment    doxygenComment | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     SynLink doxygenHtmlCh                 Function | 
					
						
							|  |  |  |     SynLink doxygenHtmlCmd                Statement | 
					
						
							|  |  |  |     SynLink doxygenHtmlBoldItalicUnderline     doxygenHtmlBoldUnderlineItalic | 
					
						
							|  |  |  |     SynLink doxygenHtmlUnderlineBold           doxygenHtmlBoldUnderline | 
					
						
							|  |  |  |     SynLink doxygenHtmlUnderlineItalicBold     doxygenHtmlBoldUnderlineItalic | 
					
						
							|  |  |  |     SynLink doxygenHtmlUnderlineBoldItalic     doxygenHtmlBoldUnderlineItalic | 
					
						
							|  |  |  |     SynLink doxygenHtmlItalicUnderline         doxygenHtmlUnderlineItalic | 
					
						
							|  |  |  |     SynLink doxygenHtmlItalicBold              doxygenHtmlBoldItalic | 
					
						
							|  |  |  |     SynLink doxygenHtmlItalicBoldUnderline     doxygenHtmlBoldUnderlineItalic | 
					
						
							|  |  |  |     SynLink doxygenHtmlItalicUnderlineBold     doxygenHtmlBoldUnderlineItalic | 
					
						
							|  |  |  |     SynLink doxygenHtmlLink                    Underlined | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     SynLink doxygenParamDirection              StorageClass | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if !exists("doxygen_my_rendering") && !exists("html_my_rendering") | 
					
						
							|  |  |  |       SynColor doxygenBoldWord             term=bold cterm=bold gui=bold | 
					
						
							|  |  |  |       SynColor doxygenEmphasisedWord       term=italic cterm=italic gui=italic | 
					
						
							|  |  |  |       SynLink  doxygenArgumentWord         doxygenEmphasisedWord | 
					
						
							|  |  |  |       SynLink  doxygenHtmlCode             doxygenCodeWord | 
					
						
							|  |  |  |       SynLink  doxygenHtmlBold             doxygenBoldWord | 
					
						
							|  |  |  |       SynColor doxygenHtmlBoldUnderline       term=bold,underline cterm=bold,underline gui=bold,underline | 
					
						
							|  |  |  |       SynColor doxygenHtmlBoldItalic          term=bold,italic cterm=bold,italic gui=bold,italic | 
					
						
							|  |  |  |       SynColor doxygenHtmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline | 
					
						
							|  |  |  |       SynColor doxygenHtmlUnderline        term=underline cterm=underline gui=underline | 
					
						
							|  |  |  |       SynColor doxygenHtmlUnderlineItalic  term=italic,underline cterm=italic,underline gui=italic,underline | 
					
						
							|  |  |  |       SynColor doxygenHtmlItalic           term=italic cterm=italic gui=italic | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  |     endif | 
					
						
							| 
									
										
										
										
											2006-04-16 18:30:08 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   finally | 
					
						
							|  |  |  |     if s:my_synlink | delcommand SynLink | endif | 
					
						
							|  |  |  |     if s:my_syncolor | delcommand SynColor | endif | 
					
						
							|  |  |  |   endtry | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if &syntax=='idl' | 
					
						
							|  |  |  |     syn cluster idlCommentable add=doxygenComment,doxygenCommentL | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  |   endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   "syn sync clear | 
					
						
							|  |  |  |   "syn sync maxlines=500 | 
					
						
							|  |  |  |   "syn sync minlines=50 | 
					
						
							|  |  |  |   syn sync match doxygenComment groupthere cComment "/\@<!/\*" | 
					
						
							|  |  |  |   syn sync match doxygenSyncComment grouphere doxygenComment "/\@<!/\*[*!]" | 
					
						
							|  |  |  |   "syn sync match doxygenSyncComment grouphere doxygenComment "/\*[*!]" contains=doxygenStart,doxygenTODO keepend | 
					
						
							|  |  |  |   syn sync match doxygenSyncEndComment groupthere NONE "\*/" | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  |   if !exists('b:current_syntax') | 
					
						
							|  |  |  |     let b:current_syntax = "doxygen" | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     let b:current_syntax = b:current_syntax.'.doxygen' | 
					
						
							|  |  |  |   endif | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-17 22:14:47 +00:00
										 |  |  | finally | 
					
						
							|  |  |  |   let &cpo = s:cpo_save | 
					
						
							|  |  |  |   unlet s:cpo_save | 
					
						
							|  |  |  | endtry | 
					
						
							| 
									
										
										
										
											2006-04-15 20:25:09 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " vim:et sw=2 sts=2 |