102 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language:	Autodoc
 | |
| " Maintainer:	Stephen R. van den Berg <srb@cuci.nl>
 | |
| " Last Change:	2018 Jan 23
 | |
| " Version:	2.9
 | |
| " Remark:       Included by pike.vim, cmod.vim and optionally c.vim
 | |
| " Remark:       In order to make c.vim use it, set: c_autodoc
 | |
| 
 | |
| " Quit when a (custom) syntax file was already loaded
 | |
| if exists("b:current_syntax")
 | |
|   finish
 | |
| endif
 | |
| 
 | |
| let s:cpo_save = &cpo
 | |
| set cpo&vim
 | |
| 
 | |
| syn case match
 | |
| 
 | |
| " A bunch of useful autodoc keywords
 | |
| syn keyword autodocStatement contained appears belongs global
 | |
| syn keyword autodocStatement contained decl directive inherit
 | |
| syn keyword autodocStatement contained deprecated obsolete bugs
 | |
| syn keyword autodocStatement contained copyright example fixme note param returns
 | |
| syn keyword autodocStatement contained seealso thanks throws constant
 | |
| syn keyword autodocStatement contained member index elem
 | |
| syn keyword autodocStatement contained value type item
 | |
| 
 | |
| syn keyword autodocRegion contained enum mapping code multiset array
 | |
| syn keyword autodocRegion contained int string section mixed ol ul dl
 | |
| syn keyword autodocRegion contained class module namespace
 | |
| syn keyword autodocRegion contained endenum endmapping endcode endmultiset
 | |
| syn keyword autodocRegion contained endarray endint endstring endsection
 | |
| syn keyword autodocRegion contained endmixed endol endul enddl
 | |
| syn keyword autodocRegion contained endclass endmodule endnamespace
 | |
| 
 | |
| syn keyword autodocIgnore contained ignore endignore
 | |
| 
 | |
| syn keyword autodocStatAcc contained b i u tt url pre sub sup
 | |
| syn keyword autodocStatAcc contained ref rfc xml dl expr image
 | |
| 
 | |
| syn keyword	autodocTodo		contained TODO FIXME XXX
 | |
| 
 | |
| syn match autodocLineStart	display "\(//\|/\?\*\)\@2<=!"
 | |
| syn match autodocWords "[^!@{}[\]]\+" display contains=@Spell
 | |
| 
 | |
| syn match autodocLink "@\[[^[\]]\+]"hs=s+2,he=e-1 display contains=autodocLead
 | |
| syn match autodocAtStmt "@[a-z]\+\%(\s\|$\)\@="hs=s+1 display contains=autodocStatement,autodocIgnore,autodocLead,autodocRegion
 | |
| 
 | |
| " Due to limitations of the matching algorithm, we cannot highlight
 | |
| " nested autodocNStmtAcc structures correctly
 | |
| syn region autodocNStmtAcc start="@[a-z]\+{" end="@}" contains=autodocStatAcc,autodocLead keepend
 | |
| 
 | |
| syn match autodocUrl contained display ".\+"
 | |
| syn region autodocAtUrlAcc start="{"ms=s+1 end="@}"he=e-1,me=e-2 contained display contains=autodocUrl,autodocLead keepend
 | |
| syn region autodocNUrlAcc start="@url{" end="@}" contains=autodocStatAcc,autodocAtUrlAcc,autodocLead transparent
 | |
| 
 | |
| syn match autodocSpecial "@@" display
 | |
| syn match autodocLead "@" display contained
 | |
| 
 | |
| "when wanted, highlight trailing white space
 | |
| if exists("c_space_errors")
 | |
|   if !exists("c_no_trail_space_error")
 | |
|     syn match	autodocSpaceError	display excludenl "\s\+$"
 | |
|   endif
 | |
|   if !exists("c_no_tab_space_error")
 | |
|     syn match	autodocSpaceError	display " \+\t"me=e-1
 | |
|   endif
 | |
| endif
 | |
| 
 | |
| if exists("c_minlines")
 | |
|   let b:c_minlines = c_minlines
 | |
| else
 | |
|   if !exists("c_no_if0")
 | |
|     let b:c_minlines = 50	" #if 0 constructs can be long
 | |
|   else
 | |
|     let b:c_minlines = 15	" mostly for () constructs
 | |
|   endif
 | |
| endif
 | |
| exec "syn sync ccomment autodocComment minlines=" . b:c_minlines
 | |
| 
 | |
| " Define the default highlighting.
 | |
| " Only used when an item doesn't have highlighting yet
 | |
| hi def link autodocStatement	Statement
 | |
| hi def link autodocStatAcc	Statement
 | |
| hi def link autodocRegion	Structure
 | |
| hi def link autodocAtStmt	Error
 | |
| hi def link autodocNStmtAcc	Identifier
 | |
| hi def link autodocLink		Type
 | |
| hi def link autodocTodo		Todo
 | |
| hi def link autodocSpaceError	Error
 | |
| hi def link autodocLineStart	SpecialComment
 | |
| hi def link autodocSpecial	SpecialChar
 | |
| hi def link autodocUrl		Underlined
 | |
| hi def link autodocLead		Statement
 | |
| hi def link autodocIgnore	Delimiter
 | |
| 
 | |
| let b:current_syntax = "autodoc"
 | |
| 
 | |
| let &cpo = s:cpo_save
 | |
| unlet s:cpo_save
 | |
| " vim: ts=8
 |