mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 11:15:14 -07:00
159 lines
5.6 KiB
VimL
159 lines
5.6 KiB
VimL
|
" 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
|