xref: /vim-8.2.3635/runtime/syntax/aap.vim (revision 071d4279)
1*071d4279SBram Moolenaar" Vim syntax file
2*071d4279SBram Moolenaar" Language:	A-A-P recipe
3*071d4279SBram Moolenaar" Maintainer:	Bram Moolenaar <[email protected]>
4*071d4279SBram Moolenaar" Last Change:	2004 Jun 13
5*071d4279SBram Moolenaar
6*071d4279SBram Moolenaar" Quit when a syntax file was already loaded
7*071d4279SBram Moolenaarif exists("b:current_syntax")
8*071d4279SBram Moolenaar    finish
9*071d4279SBram Moolenaarendif
10*071d4279SBram Moolenaar
11*071d4279SBram Moolenaarlet s:cpo_save = &cpo
12*071d4279SBram Moolenaarset cpo&vim
13*071d4279SBram Moolenaar
14*071d4279SBram Moolenaarsyn include @aapPythonScript syntax/python.vim
15*071d4279SBram Moolenaar
16*071d4279SBram Moolenaarsyn match       aapVariable /$[-+?*="'\\!]*[a-zA-Z0-9_.]*/
17*071d4279SBram Moolenaarsyn match       aapVariable /$[-+?*="'\\!]*([a-zA-Z0-9_.]*)/
18*071d4279SBram Moolenaarsyn keyword	aapTodo contained TODO Todo
19*071d4279SBram Moolenaarsyn match	aapString +'[^']\{-}'+
20*071d4279SBram Moolenaarsyn match	aapString +"[^"]\{-}"+
21*071d4279SBram Moolenaar
22*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:action\>'
23*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:add\>'
24*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:addall\>'
25*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:asroot\>'
26*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:assertpkg\>'
27*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:attr\>'
28*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:attribute\>'
29*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:autodepend\>'
30*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:buildcheck\>'
31*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:cd\>'
32*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:chdir\>'
33*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:checkin\>'
34*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:checkout\>'
35*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:child\>'
36*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:chmod\>'
37*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:commit\>'
38*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:commitall\>'
39*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:conf\>'
40*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:copy\>'
41*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:del\>'
42*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:deldir\>'
43*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:delete\>'
44*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:delrule\>'
45*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:dll\>'
46*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:do\>'
47*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:error\>'
48*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:execute\>'
49*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:exit\>'
50*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:export\>'
51*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:fetch\>'
52*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:fetchall\>'
53*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:filetype\>'
54*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:finish\>'
55*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:global\>'
56*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:import\>'
57*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:include\>'
58*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:installpkg\>'
59*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:lib\>'
60*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:local\>'
61*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:log\>'
62*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:ltlib\>'
63*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:mkdir\>'
64*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:mkdownload\>'
65*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:move\>'
66*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:pass\>'
67*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:popdir\>'
68*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:produce\>'
69*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:program\>'
70*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:progsearch\>'
71*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:publish\>'
72*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:publishall\>'
73*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:pushdir\>'
74*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:quit\>'
75*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:recipe\>'
76*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:refresh\>'
77*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:remove\>'
78*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:removeall\>'
79*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:require\>'
80*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:revise\>'
81*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:reviseall\>'
82*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:route\>'
83*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:rule\>'
84*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:start\>'
85*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:symlink\>'
86*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:sys\>'
87*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:sysdepend\>'
88*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:syspath\>'
89*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:system\>'
90*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:tag\>'
91*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:tagall\>'
92*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:toolsearch\>'
93*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:totype\>'
94*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:touch\>'
95*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:tree\>'
96*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:unlock\>'
97*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:update\>'
98*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:usetool\>'
99*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:variant\>'
100*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:verscont\>'
101*071d4279SBram Moolenaar
102*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:print\>' nextgroup=aapPipeEnd
103*071d4279SBram Moolenaarsyn match	aapPipeCmd '\s*:print\>' nextgroup=aapPipeEnd contained
104*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:cat\>' nextgroup=aapPipeEnd
105*071d4279SBram Moolenaarsyn match	aapPipeCmd '\s*:cat\>' nextgroup=aapPipeEnd contained
106*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:syseval\>' nextgroup=aapPipeEnd
107*071d4279SBram Moolenaarsyn match	aapPipeCmd '\s*:syseval\>' nextgroup=aapPipeEnd contained
108*071d4279SBram Moolenaarsyn match	aapPipeCmd '\s*:assign\>' contained
109*071d4279SBram Moolenaarsyn match	aapCommand '^\s*:eval\>' nextgroup=aapPipeEnd
110*071d4279SBram Moolenaarsyn match	aapPipeCmd '\s*:eval\>' nextgroup=aapPipeEndPy contained
111*071d4279SBram Moolenaarsyn match	aapPipeCmd '\s*:tee\>' nextgroup=aapPipeEnd contained
112*071d4279SBram Moolenaarsyn match	aapPipeCmd '\s*:log\>' nextgroup=aapPipeEnd contained
113*071d4279SBram Moolenaarsyn match	aapPipeEnd '[^|]*|' nextgroup=aapPipeCmd contained skipnl
114*071d4279SBram Moolenaarsyn match	aapPipeEndPy '[^|]*|' nextgroup=aapPipeCmd contained skipnl contains=@aapPythonScript
115*071d4279SBram Moolenaarsyn match	aapPipeStart '^\s*|' nextgroup=aapPipeCmd
116*071d4279SBram Moolenaar
117*071d4279SBram Moolenaar"
118*071d4279SBram Moolenaar" A Python line starts with @.  Can be continued with a trailing backslash.
119*071d4279SBram Moolenaarsyn region aapPythonRegion start="\s*@" skip='\\$' end=+$+ contains=@aapPythonScript keepend
120*071d4279SBram Moolenaar"
121*071d4279SBram Moolenaar" A Python block starts with ":python" and continues so long as the indent is
122*071d4279SBram Moolenaar" bigger.
123*071d4279SBram Moolenaarsyn region aapPythonRegion matchgroup=aapCommand start="\z(\s*\):python" skip='\n\z1\s\|\n\s*\n' end=+$+ contains=@aapPythonScript
124*071d4279SBram Moolenaar
125*071d4279SBram Moolenaar" A Python expression is enclosed in backticks.
126*071d4279SBram Moolenaarsyn region aapPythonRegion start="`" skip="``" end="`" contains=@aapPythonScript
127*071d4279SBram Moolenaar
128*071d4279SBram Moolenaar" TODO: There is something wrong with line continuation.
129*071d4279SBram Moolenaarsyn match	aapComment '#.*' contains=aapTodo
130*071d4279SBram Moolenaarsyn match	aapComment '#.*\(\\\n.*\)' contains=aapTodo
131*071d4279SBram Moolenaar
132*071d4279SBram Moolenaarsyn match	aapSpecial '$#'
133*071d4279SBram Moolenaarsyn match	aapSpecial '$\$'
134*071d4279SBram Moolenaarsyn match	aapSpecial '$(.)'
135*071d4279SBram Moolenaar
136*071d4279SBram Moolenaar" A heredoc assignment.
137*071d4279SBram Moolenaarsyn region aapHeredoc start="^\s*\k\+\s*$\=+\=?\=<<\s*\z(\S*\)"hs=e+1 end="^\s*\z1\s*$"he=s-1
138*071d4279SBram Moolenaar
139*071d4279SBram Moolenaar" Syncing is needed for ":python" and "VAR << EOF".  Don't use Python syncing
140*071d4279SBram Moolenaarsyn sync clear
141*071d4279SBram Moolenaarsyn sync fromstart
142*071d4279SBram Moolenaar
143*071d4279SBram Moolenaar" The default highlighting.
144*071d4279SBram Moolenaarhi def link aapTodo		Todo
145*071d4279SBram Moolenaarhi def link aapString		String
146*071d4279SBram Moolenaarhi def link aapComment		Comment
147*071d4279SBram Moolenaarhi def link aapSpecial		Special
148*071d4279SBram Moolenaarhi def link aapVariable		Identifier
149*071d4279SBram Moolenaarhi def link aapPipeCmd		aapCommand
150*071d4279SBram Moolenaarhi def link aapCommand		Statement
151*071d4279SBram Moolenaarhi def link aapHeredoc		Constant
152*071d4279SBram Moolenaar
153*071d4279SBram Moolenaarlet b:current_syntax = "aap"
154*071d4279SBram Moolenaar
155*071d4279SBram Moolenaarlet &cpo = s:cpo_save
156*071d4279SBram Moolenaarunlet s:cpo_save
157*071d4279SBram Moolenaar
158*071d4279SBram Moolenaar" vim: ts=8
159