mirror of
				https://github.com/vim/vim.git
				synced 2025-10-31 09:57:14 -04:00 
			
		
		
		
	
		
			
	
	
		
			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 |