neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

autodoc.vim (3730B)


      1 " Vim syntax file
      2 " Language:	Autodoc
      3 " Maintainer:	Stephen R. van den Berg <srb@cuci.nl>
      4 " Last Change:	2018 Jan 23
      5 " Version:	2.9
      6 " Remark:       Included by pike.vim, cmod.vim and optionally c.vim
      7 " Remark:       In order to make c.vim use it, set: c_autodoc
      8 
      9 " Quit when a (custom) syntax file was already loaded
     10 if exists("b:current_syntax")
     11  finish
     12 endif
     13 
     14 let s:cpo_save = &cpo
     15 set cpo&vim
     16 
     17 syn case match
     18 
     19 " A bunch of useful autodoc keywords
     20 syn keyword autodocStatement contained appears belongs global
     21 syn keyword autodocStatement contained decl directive inherit
     22 syn keyword autodocStatement contained deprecated obsolete bugs
     23 syn keyword autodocStatement contained copyright example fixme note param returns
     24 syn keyword autodocStatement contained seealso thanks throws constant
     25 syn keyword autodocStatement contained member index elem
     26 syn keyword autodocStatement contained value type item
     27 
     28 syn keyword autodocRegion contained enum mapping code multiset array
     29 syn keyword autodocRegion contained int string section mixed ol ul dl
     30 syn keyword autodocRegion contained class module namespace
     31 syn keyword autodocRegion contained endenum endmapping endcode endmultiset
     32 syn keyword autodocRegion contained endarray endint endstring endsection
     33 syn keyword autodocRegion contained endmixed endol endul enddl
     34 syn keyword autodocRegion contained endclass endmodule endnamespace
     35 
     36 syn keyword autodocIgnore contained ignore endignore
     37 
     38 syn keyword autodocStatAcc contained b i u tt url pre sub sup
     39 syn keyword autodocStatAcc contained ref rfc xml dl expr image
     40 
     41 syn keyword	autodocTodo		contained TODO FIXME XXX
     42 
     43 syn match autodocLineStart	display "\(//\|/\?\*\)\@2<=!"
     44 syn match autodocWords "[^!@{}[\]]\+" display contains=@Spell
     45 
     46 syn match autodocLink "@\[[^[\]]\+]"hs=s+2,he=e-1 display contains=autodocLead
     47 syn match autodocAtStmt "@[a-z]\+\%(\s\|$\)\@="hs=s+1 display contains=autodocStatement,autodocIgnore,autodocLead,autodocRegion
     48 
     49 " Due to limitations of the matching algorithm, we cannot highlight
     50 " nested autodocNStmtAcc structures correctly
     51 syn region autodocNStmtAcc start="@[a-z]\+{" end="@}" contains=autodocStatAcc,autodocLead keepend
     52 
     53 syn match autodocUrl contained display ".\+"
     54 syn region autodocAtUrlAcc start="{"ms=s+1 end="@}"he=e-1,me=e-2 contained display contains=autodocUrl,autodocLead keepend
     55 syn region autodocNUrlAcc start="@url{" end="@}" contains=autodocStatAcc,autodocAtUrlAcc,autodocLead transparent
     56 
     57 syn match autodocSpecial "@@" display
     58 syn match autodocLead "@" display contained
     59 
     60 "when wanted, highlight trailing white space
     61 if exists("c_space_errors")
     62  if !exists("c_no_trail_space_error")
     63    syn match	autodocSpaceError	display excludenl "\s\+$"
     64  endif
     65  if !exists("c_no_tab_space_error")
     66    syn match	autodocSpaceError	display " \+\t"me=e-1
     67  endif
     68 endif
     69 
     70 if exists("c_minlines")
     71  let b:c_minlines = c_minlines
     72 else
     73  if !exists("c_no_if0")
     74    let b:c_minlines = 50	" #if 0 constructs can be long
     75  else
     76    let b:c_minlines = 15	" mostly for () constructs
     77  endif
     78 endif
     79 exec "syn sync ccomment autodocComment minlines=" . b:c_minlines
     80 
     81 " Define the default highlighting.
     82 " Only used when an item doesn't have highlighting yet
     83 hi def link autodocStatement	Statement
     84 hi def link autodocStatAcc	Statement
     85 hi def link autodocRegion	Structure
     86 hi def link autodocAtStmt	Error
     87 hi def link autodocNStmtAcc	Identifier
     88 hi def link autodocLink		Type
     89 hi def link autodocTodo		Todo
     90 hi def link autodocSpaceError	Error
     91 hi def link autodocLineStart	SpecialComment
     92 hi def link autodocSpecial	SpecialChar
     93 hi def link autodocUrl		Underlined
     94 hi def link autodocLead		Statement
     95 hi def link autodocIgnore	Delimiter
     96 
     97 let b:current_syntax = "autodoc"
     98 
     99 let &cpo = s:cpo_save
    100 unlet s:cpo_save
    101 " vim: ts=8