" Vim syntax file" Language: A-A-P recipe" Maintainer: Bram Moolenaar <Bram@vim.org>" Last Change: 2004 Jun 13" Quit when a syntax file was already loadedif exists("b:current_syntax") finishendiflet s:cpo_save = &cposet cpo&vimsyn include @aapPythonScript syntax/python.vimsyn match aapVariable /$[-+?*="'\\!]*[a-zA-Z0-9_.]*/syn match aapVariable /$[-+?*="'\\!]*([a-zA-Z0-9_.]*)/syn keyword aapTodo contained TODO Todosyn match aapString +'[^']\{-}'+syn match aapString +"[^"]\{-}"+syn match aapCommand '^\s*:action\>'syn match aapCommand '^\s*:add\>'syn match aapCommand '^\s*:addall\>'syn match aapCommand '^\s*:asroot\>'syn match aapCommand '^\s*:assertpkg\>'syn match aapCommand '^\s*:attr\>'syn match aapCommand '^\s*:attribute\>'syn match aapCommand '^\s*:autodepend\>'syn match aapCommand '^\s*:buildcheck\>'syn match aapCommand '^\s*:cd\>'syn match aapCommand '^\s*:chdir\>'syn match aapCommand '^\s*:checkin\>'syn match aapCommand '^\s*:checkout\>'syn match aapCommand '^\s*:child\>'syn match aapCommand '^\s*:chmod\>'syn match aapCommand '^\s*:commit\>'syn match aapCommand '^\s*:commitall\>'syn match aapCommand '^\s*:conf\>'syn match aapCommand '^\s*:copy\>'syn match aapCommand '^\s*:del\>'syn match aapCommand '^\s*:deldir\>'syn match aapCommand '^\s*:delete\>'syn match aapCommand '^\s*:delrule\>'syn match aapCommand '^\s*:dll\>'syn match aapCommand '^\s*:do\>'syn match aapCommand '^\s*:error\>'syn match aapCommand '^\s*:execute\>'syn match aapCommand '^\s*:exit\>'syn match aapCommand '^\s*:export\>'syn match aapCommand '^\s*:fetch\>'syn match aapCommand '^\s*:fetchall\>'syn match aapCommand '^\s*:filetype\>'syn match aapCommand '^\s*:finish\>'syn match aapCommand '^\s*:global\>'syn match aapCommand '^\s*:import\>'syn match aapCommand '^\s*:include\>'syn match aapCommand '^\s*:installpkg\>'syn match aapCommand '^\s*:lib\>'syn match aapCommand '^\s*:local\>'syn match aapCommand '^\s*:log\>'syn match aapCommand '^\s*:ltlib\>'syn match aapCommand '^\s*:mkdir\>'syn match aapCommand '^\s*:mkdownload\>'syn match aapCommand '^\s*:move\>'syn match aapCommand '^\s*:pass\>'syn match aapCommand '^\s*:popdir\>'syn match aapCommand '^\s*:produce\>'syn match aapCommand '^\s*:program\>'syn match aapCommand '^\s*:progsearch\>'syn match aapCommand '^\s*:publish\>'syn match aapCommand '^\s*:publishall\>'syn match aapCommand '^\s*:pushdir\>'syn match aapCommand '^\s*:quit\>'syn match aapCommand '^\s*:recipe\>'syn match aapCommand '^\s*:refresh\>'syn match aapCommand '^\s*:remove\>'syn match aapCommand '^\s*:removeall\>'syn match aapCommand '^\s*:require\>'syn match aapCommand '^\s*:revise\>'syn match aapCommand '^\s*:reviseall\>'syn match aapCommand '^\s*:route\>'syn match aapCommand '^\s*:rule\>'syn match aapCommand '^\s*:start\>'syn match aapCommand '^\s*:symlink\>'syn match aapCommand '^\s*:sys\>'syn match aapCommand '^\s*:sysdepend\>'syn match aapCommand '^\s*:syspath\>'syn match aapCommand '^\s*:system\>'syn match aapCommand '^\s*:tag\>'syn match aapCommand '^\s*:tagall\>'syn match aapCommand '^\s*:toolsearch\>'syn match aapCommand '^\s*:totype\>'syn match aapCommand '^\s*:touch\>'syn match aapCommand '^\s*:tree\>'syn match aapCommand '^\s*:unlock\>'syn match aapCommand '^\s*:update\>'syn match aapCommand '^\s*:usetool\>'syn match aapCommand '^\s*:variant\>'syn match aapCommand '^\s*:verscont\>'syn match aapCommand '^\s*:print\>' nextgroup=aapPipeEndsyn match aapPipeCmd '\s*:print\>' nextgroup=aapPipeEnd containedsyn match aapCommand '^\s*:cat\>' nextgroup=aapPipeEndsyn match aapPipeCmd '\s*:cat\>' nextgroup=aapPipeEnd containedsyn match aapCommand '^\s*:syseval\>' nextgroup=aapPipeEndsyn match aapPipeCmd '\s*:syseval\>' nextgroup=aapPipeEnd containedsyn match aapPipeCmd '\s*:assign\>' containedsyn match aapCommand '^\s*:eval\>' nextgroup=aapPipeEndsyn match aapPipeCmd '\s*:eval\>' nextgroup=aapPipeEndPy containedsyn match aapPipeCmd '\s*:tee\>' nextgroup=aapPipeEnd containedsyn match aapPipeCmd '\s*:log\>' nextgroup=aapPipeEnd containedsyn match aapPipeEnd '[^|]*|' nextgroup=aapPipeCmd contained skipnlsyn match aapPipeEndPy '[^|]*|' nextgroup=aapPipeCmd contained skipnl contains=@aapPythonScriptsyn match aapPipeStart '^\s*|' nextgroup=aapPipeCmd"" A Python line starts with @. Can be continued with a trailing backslash.syn region aapPythonRegion start="\s*@" skip='\\$' end=+$+ contains=@aapPythonScript keepend"" A Python block starts with ":python" and continues so long as the indent is" bigger.syn region aapPythonRegion matchgroup=aapCommand start="\z(\s*\):python" skip='\n\z1\s\|\n\s*\n' end=+$+ contains=@aapPythonScript" A Python expression is enclosed in backticks.syn region aapPythonRegion start="`" skip="``" end="`" contains=@aapPythonScript" TODO: There is something wrong with line continuation.syn match aapComment '#.*' contains=aapTodosyn match aapComment '#.*\(\\\n.*\)' contains=aapTodosyn match aapSpecial '$#'syn match aapSpecial '$\$'syn match aapSpecial '$(.)'" A heredoc assignment.syn region aapHeredoc start="^\s*\k\+\s*$\=+\=?\=<<\s*\z(\S*\)"hs=e+1 end="^\s*\z1\s*$"he=s-1" Syncing is needed for ":python" and "VAR << EOF". Don't use Python syncingsyn sync clearsyn sync fromstart" The default highlighting.hi def link aapTodo Todohi def link aapString Stringhi def link aapComment Commenthi def link aapSpecial Specialhi def link aapVariable Identifierhi def link aapPipeCmd aapCommandhi def link aapCommand Statementhi def link aapHeredoc Constantlet b:current_syntax = "aap"let &cpo = s:cpo_saveunlet s:cpo_save" vim: ts=8
" Vim syntax file
" Language: A-A-P recipe
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2004 Jun 13
" Quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn include @aapPythonScript syntax/python.vim
syn match aapVariable /$[-+?*="'\\!]*[a-zA-Z0-9_.]*/
syn match aapVariable /$[-+?*="'\\!]*([a-zA-Z0-9_.]*)/
syn keyword aapTodo contained TODO Todo
syn match aapString +'[^']\{-}'+
syn match aapString +"[^"]\{-}"+
syn match aapCommand '^\s*:action\>'
syn match aapCommand '^\s*:add\>'
syn match aapCommand '^\s*:addall\>'
syn match aapCommand '^\s*:asroot\>'
syn match aapCommand '^\s*:assertpkg\>'
syn match aapCommand '^\s*:attr\>'
syn match aapCommand '^\s*:attribute\>'
syn match aapCommand '^\s*:autodepend\>'
syn match aapCommand '^\s*:buildcheck\>'
syn match aapCommand '^\s*:cd\>'
syn match aapCommand '^\s*:chdir\>'
syn match aapCommand '^\s*:checkin\>'
syn match aapCommand '^\s*:checkout\>'
syn match aapCommand '^\s*:child\>'
syn match aapCommand '^\s*:chmod\>'
syn match aapCommand '^\s*:commit\>'
syn match aapCommand '^\s*:commitall\>'
syn match aapCommand '^\s*:conf\>'
syn match aapCommand '^\s*:copy\>'
syn match aapCommand '^\s*:del\>'
syn match aapCommand '^\s*:deldir\>'
syn match aapCommand '^\s*:delete\>'
syn match aapCommand '^\s*:delrule\>'
syn match aapCommand '^\s*:dll\>'
syn match aapCommand '^\s*:do\>'
syn match aapCommand '^\s*:error\>'
syn match aapCommand '^\s*:execute\>'
syn match aapCommand '^\s*:exit\>'
syn match aapCommand '^\s*:export\>'
syn match aapCommand '^\s*:fetch\>'
syn match aapCommand '^\s*:fetchall\>'
syn match aapCommand '^\s*:filetype\>'
syn match aapCommand '^\s*:finish\>'
syn match aapCommand '^\s*:global\>'
syn match aapCommand '^\s*:import\>'
syn match aapCommand '^\s*:include\>'
syn match aapCommand '^\s*:installpkg\>'
syn match aapCommand '^\s*:lib\>'
syn match aapCommand '^\s*:local\>'
syn match aapCommand '^\s*:log\>'
syn match aapCommand '^\s*:ltlib\>'
syn match aapCommand '^\s*:mkdir\>'
syn match aapCommand '^\s*:mkdownload\>'
syn match aapCommand '^\s*:move\>'
syn match aapCommand '^\s*:pass\>'
syn match aapCommand '^\s*:popdir\>'
syn match aapCommand '^\s*:produce\>'
syn match aapCommand '^\s*:program\>'
syn match aapCommand '^\s*:progsearch\>'
syn match aapCommand '^\s*:publish\>'
syn match aapCommand '^\s*:publishall\>'
syn match aapCommand '^\s*:pushdir\>'
syn match aapCommand '^\s*:quit\>'
syn match aapCommand '^\s*:recipe\>'
syn match aapCommand '^\s*:refresh\>'
syn match aapCommand '^\s*:remove\>'
syn match aapCommand '^\s*:removeall\>'
syn match aapCommand '^\s*:require\>'
syn match aapCommand '^\s*:revise\>'
syn match aapCommand '^\s*:reviseall\>'
syn match aapCommand '^\s*:route\>'
syn match aapCommand '^\s*:rule\>'
syn match aapCommand '^\s*:start\>'
syn match aapCommand '^\s*:symlink\>'
syn match aapCommand '^\s*:sys\>'
syn match aapCommand '^\s*:sysdepend\>'
syn match aapCommand '^\s*:syspath\>'
syn match aapCommand '^\s*:system\>'
syn match aapCommand '^\s*:tag\>'
syn match aapCommand '^\s*:tagall\>'
syn match aapCommand '^\s*:toolsearch\>'
syn match aapCommand '^\s*:totype\>'
syn match aapCommand '^\s*:touch\>'
syn match aapCommand '^\s*:tree\>'
syn match aapCommand '^\s*:unlock\>'
syn match aapCommand '^\s*:update\>'
syn match aapCommand '^\s*:usetool\>'
syn match aapCommand '^\s*:variant\>'
syn match aapCommand '^\s*:verscont\>'
syn match aapCommand '^\s*:print\>' nextgroup=aapPipeEnd
syn match aapPipeCmd '\s*:print\>' nextgroup=aapPipeEnd contained
syn match aapCommand '^\s*:cat\>' nextgroup=aapPipeEnd
syn match aapPipeCmd '\s*:cat\>' nextgroup=aapPipeEnd contained
syn match aapCommand '^\s*:syseval\>' nextgroup=aapPipeEnd
syn match aapPipeCmd '\s*:syseval\>' nextgroup=aapPipeEnd contained
syn match aapPipeCmd '\s*:assign\>' contained
syn match aapCommand '^\s*:eval\>' nextgroup=aapPipeEnd
syn match aapPipeCmd '\s*:eval\>' nextgroup=aapPipeEndPy contained
syn match aapPipeCmd '\s*:tee\>' nextgroup=aapPipeEnd contained
syn match aapPipeCmd '\s*:log\>' nextgroup=aapPipeEnd contained
syn match aapPipeEnd '[^|]*|' nextgroup=aapPipeCmd contained skipnl
syn match aapPipeEndPy '[^|]*|' nextgroup=aapPipeCmd contained skipnl contains=@aapPythonScript
syn match aapPipeStart '^\s*|' nextgroup=aapPipeCmd
"
" A Python line starts with @. Can be continued with a trailing backslash.
syn region aapPythonRegion start="\s*@" skip='\\$' end=+$+ contains=@aapPythonScript keepend
"
" A Python block starts with ":python" and continues so long as the indent is
" bigger.
syn region aapPythonRegion matchgroup=aapCommand start="\z(\s*\):python" skip='\n\z1\s\|\n\s*\n' end=+$+ contains=@aapPythonScript
" A Python expression is enclosed in backticks.
syn region aapPythonRegion start="`" skip="``" end="`" contains=@aapPythonScript
" TODO: There is something wrong with line continuation.
syn match aapComment '#.*' contains=aapTodo
syn match aapComment '#.*\(\\\n.*\)' contains=aapTodo
syn match aapSpecial '$#'
syn match aapSpecial '$\$'
syn match aapSpecial '$(.)'
" A heredoc assignment.
syn region aapHeredoc start="^\s*\k\+\s*$\=+\=?\=<<\s*\z(\S*\)"hs=e+1 end="^\s*\z1\s*$"he=s-1
" Syncing is needed for ":python" and "VAR << EOF". Don't use Python syncing
syn sync clear
syn sync fromstart
" The default highlighting.
hi def link aapTodo Todo
hi def link aapString String
hi def link aapComment Comment
hi def link aapSpecial Special
hi def link aapVariable Identifier
hi def link aapPipeCmd aapCommand
hi def link aapCommand Statement
hi def link aapHeredoc Constant
let b:current_syntax = "aap"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8