mirror of
https://github.com/neovim/neovim.git
synced 2024-12-25 13:45:15 -07: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
|