Add syntax support for Yank language.

This commit is contained in:
2024-08-08 01:02:53 -04:00
parent 7c8a3ac56d
commit 2364ef7ac0
2 changed files with 75 additions and 0 deletions

73
vim/after/syntax/yank.vim Normal file
View File

@ -0,0 +1,73 @@
" Vim syntax file
" Language: Yank Pipeline Language
" Maintainer: ADAM David Alan Martin <adam@recursive.engineer>
"
" Used for Yank language, from PYP-E
" Add an autocommand to vimrc for when the `ynk` file
" type is found.
if exists("b:current_syntax")
finish
endif
syn include @luaInYank syntax/lua.vim
let b:current_syntax="yank"
let s:cpo_save = &cpo
set cpo&vim
syn match ynkPipe "|"
syn match ynkNamedPipeline "^.\{-\}\(<-\)\@="
syn match ynkVariableAssignment "^.\{-\}\(\(:=\)\|\(?=\)\)\@="
syn match ynkPipeDef '<-'
syn match ynkCondDef '?='
syn match ynkVarDef ':='
syn match ynkCommand "\.add-module-path"
syn match ynkCommand "\.load"
syn match ynkCommand "\.add-include-path"
syn match ynkCommand "\.include"
syn match ynkCommand "\.set-queue-size"
syn match ynkCommand "\.set-delimiter"
" TODO: Deal with nested strings... `[ [one] [two] ]` is a string of strings. Need escape char too...
syn region ynkString start="\[" end="\]"
syn region ynkComment start="#" end="$"
syn region ynkEmbeddedLua matchgroup=ynkComment start="^ *# Begin:Lua$" end="^ *# End:Lua$" contains=@luaInYank
syn region ynkCommentInLua start="#" end="$" containedin=@luaInYank
syn clear luaParenError
syn match ynkLuaIllegalComment containedin=@luaInYank "--.*$"
syn match ynkLegalComment containedin=ynkEmbeddedLua "--.*$"
syn match ynkVariableExpand "%.\{-}%"
syn match ynkVariableExpand "%.\{-}%" contained containedin=@luaInYank
syn match ynkExpandTee "@[a-zA-Z0-9][a-zA-Z0-9]*"
syn match ynkExpandTap "+[a-zA-Z0-9][a-zA-Z0-9]*"
syn match ynkExpandWye "&[a-zA-Z0-9][a-zA-Z0-9]*"
syn match ynkExpandMerge "/[a-zA-Z0-9][a-zA-Z0-9]*"
syn match ynkExpandInline "=[a-zA-Z0-9][a-zA-Z0-9]*"
syn match ynkExpandSuperscalar "\*[a-zA-Z0-9][a-zA-Z0-9]*"
hi def link ynkPipe Operator
hi def link ynkVariableExpand PreProc
hi def link ynkCommand Type
hi def link ynkComment Comment
hi def link ynkPipeDef Object
hi def link ynkCondDef Operator
hi def link ynkVarDef Delimiter
hi def link ynkExpandTee Type
hi def link ynkExpandWye Object
hi def link ynkExpandInline Keyword
hi def link ynkLuaIllegalComment Dangerous
hi def link ynkCommentInLua Comment
hi def link luaComment Dangerous
hi def link ynkNamedPipeline Function
hi def link ynkVariableAssignment Identifier
hi def link ynkString String

View File

@ -33,3 +33,5 @@ endfunction
au BufNewFile,BufRead *.h setf cpp.cplusplus "call CheckForADAM()
au BufNewFile,BufRead *.cxx,*.cpp,*.hpp,*.cc,*.h setf cpp.cplusplus
au BufNewFile,BufRead *.ynk setf yank