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