mirror of
https://github.com/neovim/neovim.git
synced 2024-12-24 13:15:09 -07:00
parent
07fdbba9d0
commit
4f67f5ba6e
@ -1765,6 +1765,9 @@ au BufNewFile,BufRead *.vroom setf vroom
|
|||||||
" Webmacro
|
" Webmacro
|
||||||
au BufNewFile,BufRead *.wm setf webmacro
|
au BufNewFile,BufRead *.wm setf webmacro
|
||||||
|
|
||||||
|
" WebAssembly
|
||||||
|
au BufNewFile,BufRead *.wast,*.wat setf wast
|
||||||
|
|
||||||
" Wget config
|
" Wget config
|
||||||
au BufNewFile,BufRead .wgetrc,wgetrc setf wget
|
au BufNewFile,BufRead .wgetrc,wgetrc setf wget
|
||||||
|
|
||||||
|
17
runtime/ftplugin/wast.vim
Normal file
17
runtime/ftplugin/wast.vim
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
" Vim filetype plugin file
|
||||||
|
" Language: WebAssembly
|
||||||
|
" Maintainer: rhysd <lin90162@yahoo.co.jp>
|
||||||
|
" Last Change: Jul 29, 2018
|
||||||
|
" For bugs, patches and license go to https://github.com/rhysd/vim-wasm
|
||||||
|
|
||||||
|
if exists("b:did_ftplugin")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let b:did_ftplugin = 1
|
||||||
|
|
||||||
|
setlocal comments=s:(;,e:;),:;;
|
||||||
|
setlocal commentstring=(;%s;)
|
||||||
|
setlocal formatoptions-=t
|
||||||
|
setlocal iskeyword+=$,.,/
|
||||||
|
|
||||||
|
let b:undo_ftplugin = "setlocal comments< commentstring< formatoptions< iskeyword<"
|
17
runtime/indent/wast.vim
Normal file
17
runtime/indent/wast.vim
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
" Vim indent file
|
||||||
|
" Language: WebAssembly
|
||||||
|
" Maintainer: rhysd <lin90162@yahoo.co.jp>
|
||||||
|
" Last Change: Jul 29, 2018
|
||||||
|
" For bugs, patches and license go to https://github.com/rhysd/vim-wasm
|
||||||
|
|
||||||
|
if exists("b:did_indent")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let b:did_indent = 1
|
||||||
|
|
||||||
|
" WebAssembly text format is S-expression. We can reuse LISP indentation
|
||||||
|
" logic.
|
||||||
|
setlocal indentexpr=lispindent('.')
|
||||||
|
setlocal noautoindent nosmartindent
|
||||||
|
|
||||||
|
let b:undo_indent = "setl lisp< indentexpr<"
|
@ -2,8 +2,8 @@
|
|||||||
" Language: shell (sh) Korn shell (ksh) bash (sh)
|
" Language: shell (sh) Korn shell (ksh) bash (sh)
|
||||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||||
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
|
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
|
||||||
" Last Change: Mar 19, 2018
|
" Last Change: Jul 31, 2018
|
||||||
" Version: 174
|
" Version: 179
|
||||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
|
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
|
||||||
" For options and settings, please use: :help ft-sh-syntax
|
" For options and settings, please use: :help ft-sh-syntax
|
||||||
" This file includes many ideas from Eric Brunet (eric.brunet@ens.fr)
|
" This file includes many ideas from Eric Brunet (eric.brunet@ens.fr)
|
||||||
@ -126,17 +126,17 @@ if exists("b:is_kornshell") || exists("b:is_bash")
|
|||||||
endif
|
endif
|
||||||
syn cluster shArithParenList contains=shArithmetic,shCaseEsac,shComment,shDeref,shDo,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shExDoubleQuote,shHereString,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement,shIf,shFor
|
syn cluster shArithParenList contains=shArithmetic,shCaseEsac,shComment,shDeref,shDo,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shExDoubleQuote,shHereString,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement,shIf,shFor
|
||||||
syn cluster shArithList contains=@shArithParenList,shParenError
|
syn cluster shArithList contains=@shArithParenList,shParenError
|
||||||
syn cluster shCaseEsacList contains=shCaseStart,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial,shCaseRange
|
syn cluster shCaseEsacList contains=shCaseStart,shCaseLabel,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial,shCaseRange
|
||||||
syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq
|
syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSubBQ,shComment,shDo,shEcho,shExpr,shFor,shForPP,shHereDoc,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq
|
||||||
syn cluster shCommandSubList contains=shAlias,shArithmetic,shCmdParenRegion,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shHereDoc,shNumber,shOperator,shOption,shPosnParm,shHereString,shRedir,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable
|
syn cluster shCommandSubList contains=shAlias,shArithmetic,shCmdParenRegion,shCommandSub,shComment,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shHereDoc,shNumber,shOperator,shOption,shPosnParm,shHereString,shRedir,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable
|
||||||
syn cluster shCurlyList contains=shNumber,shComma,shDeref,shDerefSimple,shDerefSpecial
|
syn cluster shCurlyList contains=shNumber,shComma,shDeref,shDerefSimple,shDerefSpecial
|
||||||
syn cluster shDblQuoteList contains=shCommandSub,shDeref,shDerefSimple,shEscape,shPosnParm,shCtrlSeq,shSpecial
|
syn cluster shDblQuoteList contains=shArithmetic,shCommandSub,shCommandSubBQ,shDeref,shDerefSimple,shEscape,shPosnParm,shCtrlSeq,shSpecial,shSpecialDQ
|
||||||
syn cluster shDerefList contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError,shDerefPSR,shDerefPPS
|
syn cluster shDerefList contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError,shDerefPSR,shDerefPPS
|
||||||
syn cluster shDerefVarList contains=shDerefOff,shDerefOp,shDerefVarArray,shDerefOpError
|
syn cluster shDerefVarList contains=shDerefOff,shDerefOp,shDerefVarArray,shDerefOpError
|
||||||
syn cluster shEchoList contains=shArithmetic,shCommandSub,shDeref,shDerefSimple,shEscape,shExpr,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq,shEchoQuote
|
syn cluster shEchoList contains=shArithmetic,shCommandSub,shCommandSubBQ,shDeref,shDerefSimple,shEscape,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq,shEchoQuote
|
||||||
syn cluster shExprList1 contains=shCharClass,shNumber,shOperator,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shDblBrace,shDeref,shDerefSimple,shCtrlSeq
|
syn cluster shExprList1 contains=shCharClass,shNumber,shOperator,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shDblBrace,shDeref,shDerefSimple,shCtrlSeq
|
||||||
syn cluster shExprList2 contains=@shExprList1,@shCaseList,shTest
|
syn cluster shExprList2 contains=@shExprList1,@shCaseList,shTest
|
||||||
syn cluster shFunctionList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shOption,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shCtrlSeq
|
syn cluster shFunctionList contains=@shCommandSubList,shCaseEsac,shColon,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shOption,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shCtrlSeq
|
||||||
if exists("b:is_kornshell") || exists("b:is_bash")
|
if exists("b:is_kornshell") || exists("b:is_bash")
|
||||||
syn cluster shFunctionList add=shRepeat
|
syn cluster shFunctionList add=shRepeat
|
||||||
syn cluster shFunctionList add=shDblBrace,shDblParen
|
syn cluster shFunctionList add=shDblBrace,shDblParen
|
||||||
@ -144,12 +144,12 @@ endif
|
|||||||
syn cluster shHereBeginList contains=@shCommandSubList
|
syn cluster shHereBeginList contains=@shCommandSubList
|
||||||
syn cluster shHereList contains=shBeginHere,shHerePayload
|
syn cluster shHereList contains=shBeginHere,shHerePayload
|
||||||
syn cluster shHereListDQ contains=shBeginHere,@shDblQuoteList,shHerePayload
|
syn cluster shHereListDQ contains=shBeginHere,@shDblQuoteList,shHerePayload
|
||||||
syn cluster shIdList contains=shCommandSub,shWrapLineOperator,shSetOption,shDeref,shDerefSimple,shHereString,shRedir,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial,shAtExpr
|
syn cluster shIdList contains=shCommandSub,shCommandSubBQ,shWrapLineOperator,shSetOption,shComment,shDeref,shDerefSimple,shHereString,shRedir,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial,shAtExpr
|
||||||
syn cluster shIfList contains=@shLoopList,shDblBrace,shDblParen,shFunctionKey,shFunctionOne,shFunctionTwo
|
syn cluster shIfList contains=@shLoopList,shDblBrace,shDblParen,shFunctionKey,shFunctionOne,shFunctionTwo
|
||||||
syn cluster shLoopList contains=@shCaseList,@shErrorList,shCaseEsac,shConditional,shDblBrace,shExpr,shFor,shForPP,shIf,shOption,shSet,shTest,shTestOpr,shTouch
|
syn cluster shLoopList contains=@shCaseList,@shErrorList,shCaseEsac,shConditional,shDblBrace,shExpr,shFor,shForPP,shIf,shOption,shSet,shTest,shTestOpr,shTouch
|
||||||
syn cluster shPPSRightList contains=shComment,shDeref,shDerefSimple,shEscape,shPosnParm
|
syn cluster shPPSRightList contains=shComment,shDeref,shDerefSimple,shEscape,shPosnParm
|
||||||
syn cluster shSubShList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator
|
syn cluster shSubShList contains=@shCommandSubList,shCommandSubBQ,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator
|
||||||
syn cluster shTestList contains=shCharClass,shCommandSub,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shExDoubleQuote,shExpr,shExSingleQuote,shNumber,shOperator,shSingleQuote,shTest,shTestOpr
|
syn cluster shTestList contains=shCharClass,shCommandSub,shCommandSubBQ,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shSpecialDQ,shExDoubleQuote,shExpr,shExSingleQuote,shNumber,shOperator,shSingleQuote,shTest,shTestOpr
|
||||||
syn cluster shNoZSList contains=shSpecialNoZS
|
syn cluster shNoZSList contains=shSpecialNoZS
|
||||||
|
|
||||||
" Echo: {{{1
|
" Echo: {{{1
|
||||||
@ -262,14 +262,15 @@ syn match shComma contained ","
|
|||||||
|
|
||||||
" Case: case...esac {{{1
|
" Case: case...esac {{{1
|
||||||
" ====
|
" ====
|
||||||
syn match shCaseBar contained skipwhite "\(^\|[^\\]\)\(\\\\\)*\zs|" nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote
|
syn match shCaseBar contained skipwhite "\(^\|[^\\]\)\(\\\\\)*\zs|" nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote
|
||||||
syn match shCaseStart contained skipwhite skipnl "(" nextgroup=shCase,shCaseBar
|
syn match shCaseStart contained skipwhite skipnl "(" nextgroup=shCase,shCaseBar
|
||||||
|
syn match shCaseLabel contained skipwhite "\%(\\.\|[-a-zA-Z0-9_*.]\)\+" contains=shCharClass
|
||||||
if exists("b:is_bash")
|
if exists("b:is_bash")
|
||||||
ShFoldIfDoFor syn region shCase contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)" end=";;" end=";&" end=";;&" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
|
ShFoldIfDoFor syn region shCase contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)" end=";;" end=";&" end=";;&" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
|
||||||
else
|
else
|
||||||
ShFoldIfDoFor syn region shCase contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)" end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
|
ShFoldIfDoFor syn region shCase contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)" end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
|
||||||
endif
|
endif
|
||||||
ShFoldIfDoFor syn region shCaseEsac matchgroup=shConditional start="\<case\>" end="\<esac\>" contains=@shCaseEsacList
|
ShFoldIfDoFor syn region shCaseEsac matchgroup=shConditional start="\<case\>" end="\<esac\>" contains=@shCaseEsacList
|
||||||
|
|
||||||
syn keyword shCaseIn contained skipwhite skipnl in nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote
|
syn keyword shCaseIn contained skipwhite skipnl in nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote
|
||||||
if exists("b:is_bash")
|
if exists("b:is_bash")
|
||||||
@ -289,8 +290,8 @@ endif
|
|||||||
" Misc: {{{1
|
" Misc: {{{1
|
||||||
"======
|
"======
|
||||||
syn match shWrapLineOperator "\\$"
|
syn match shWrapLineOperator "\\$"
|
||||||
syn region shCommandSub start="`" skip="\\\\\|\\." end="`" contains=@shCommandSubList
|
syn region shCommandSubBQ start="`" skip="\\\\\|\\." end="`" contains=@shCommandSubList
|
||||||
syn match shEscape contained '\%(^\)\@!\%(\\\\\)*\\.'
|
syn match shEscape contained '\%(^\)\@!\%(\\\\\)*\\.' nextgroup=shSingleQuote,shDoubleQuote,shComment
|
||||||
|
|
||||||
" $() and $(()): {{{1
|
" $() and $(()): {{{1
|
||||||
" $(..) is not supported by sh (Bourne shell). However, apparently
|
" $(..) is not supported by sh (Bourne shell). However, apparently
|
||||||
@ -347,17 +348,19 @@ elseif !exists("g:sh_no_error")
|
|||||||
syn region shExSingleQuote matchGroup=Error start=+\$'+ skip=+\\\\\|\\.+ end=+'+ contains=shStringSpecial
|
syn region shExSingleQuote matchGroup=Error start=+\$'+ skip=+\\\\\|\\.+ end=+'+ contains=shStringSpecial
|
||||||
syn region shExDoubleQuote matchGroup=Error start=+\$"+ skip=+\\\\\|\\.+ end=+"+ contains=shStringSpecial
|
syn region shExDoubleQuote matchGroup=Error start=+\$"+ skip=+\\\\\|\\.+ end=+"+ contains=shStringSpecial
|
||||||
endif
|
endif
|
||||||
syn region shSingleQuote matchgroup=shQuote start=+'+ end=+'+ contains=@Spell nextgroup=shSpecialStart
|
syn region shSingleQuote matchgroup=shQuote start=+'+ end=+'+ contains=@Spell nextgroup=shSpecialStart,shSpecialSQ
|
||||||
syn region shDoubleQuote matchgroup=shQuote start=+\%(\%(\\\\\)*\\\)\@<!"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial,@Spell nextgroup=shSpecialStart
|
syn region shDoubleQuote matchgroup=shQuote start=+\%(\%(\\\\\)*\\\)\@<!"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial,@Spell nextgroup=shSpecialStart
|
||||||
|
syn region shDoubleQuote matchgroup=shQuote start=+"+ skip=+\\"+ end=+"+ contained contains=@shDblQuoteList,shStringSpecial,@Spell nextgroup=shSpecialStart
|
||||||
syn match shStringSpecial "[^[:print:] \t]" contained
|
syn match shStringSpecial "[^[:print:] \t]" contained
|
||||||
syn match shStringSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]"
|
syn match shStringSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shComment
|
||||||
syn match shSpecial "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shBkslshSnglQuote,shBkslshDblQuote,@shNoZSList
|
syn match shSpecialSQ "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" contained nextgroup=shBkslshSnglQuote,@shNoZSList
|
||||||
|
syn match shSpecialDQ "[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" contained nextgroup=shBkslshDblQuote,@shNoZSList
|
||||||
syn match shSpecialStart "\%(\\\\\)*\\[\\"'`$()#]" contained nextgroup=shBkslshSnglQuote,shBkslshDblQuote,@shNoZSList
|
syn match shSpecialStart "\%(\\\\\)*\\[\\"'`$()#]" contained nextgroup=shBkslshSnglQuote,shBkslshDblQuote,@shNoZSList
|
||||||
syn match shSpecial "^\%(\\\\\)*\\[\\"'`$()#]"
|
syn match shSpecial "^\%(\\\\\)*\\[\\"'`$()#]"
|
||||||
syn match shSpecialNoZS contained "\%(\\\\\)*\\[\\"'`$()#]"
|
syn match shSpecialNoZS contained "\%(\\\\\)*\\[\\"'`$()#]"
|
||||||
syn match shSpecialNxt contained "\\[\\"'`$()#]"
|
syn match shSpecialNxt contained "\\[\\"'`$()#]"
|
||||||
syn region shBkslshSnglQuote contained matchgroup=shQuote start=+'+ end=+'+ contains=@Spell
|
syn region shBkslshSnglQuote contained matchgroup=shQuote start=+'+ end=+'+ contains=@Spell nextgroup=shSpecialStart
|
||||||
syn region shBkslshDblQuote contained matchgroup=shQuote start=+"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial,@Spell
|
syn region shBkslshDblQuote contained matchgroup=shQuote start=+"+ skip=+\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial,@Spell nextgroup=shSpecialStart
|
||||||
|
|
||||||
" Comments: {{{1
|
" Comments: {{{1
|
||||||
"==========
|
"==========
|
||||||
@ -375,20 +378,21 @@ syn match shQuickComment contained "#.*$"
|
|||||||
" Here Documents: {{{1
|
" Here Documents: {{{1
|
||||||
" =========================================
|
" =========================================
|
||||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc01 start="<<\s*\\\=\z([^ \t0-9|>]\+\)" matchgroup=shHereDoc01 end="^\z1\s*$" contains=@shDblQuoteList
|
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc01 start="<<\s*\\\=\z([^ \t0-9|>]\+\)" matchgroup=shHereDoc01 end="^\z1\s*$" contains=@shDblQuoteList
|
||||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc02 start="<<\s*\"\z([^ \t0-9|>]\+\)\"" matchgroup=shHereDoc02 end="^\z1\s*$"
|
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc02 start="<<\s*\"\z([^ \t|>]\+\)\"" matchgroup=shHereDoc02 end="^\z1\s*$"
|
||||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc03 start="<<-\s*\z([^ \t0-9|>]\+\)" matchgroup=shHereDoc03 end="^\s*\z1\s*$" contains=@shDblQuoteList
|
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc03 start="<<-\s*\z([^ \t0-9|>]\+\)" matchgroup=shHereDoc03 end="^\s*\z1\s*$" contains=@shDblQuoteList
|
||||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc04 start="<<-\s*'\z([^'0-9]\+\)'" matchgroup=shHereDoc04 end="^\s*\z1\s*$"
|
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc04 start="<<-\s*'\z([^']\+\)'" matchgroup=shHereDoc04 end="^\s*\z1\s*$"
|
||||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc05 start="<<\s*'\z([^'0-9]\+\)'" matchgroup=shHereDoc05 end="^\z1\s*$"
|
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc05 start="<<\s*'\z([^']\+\)'" matchgroup=shHereDoc05 end="^\z1\s*$"
|
||||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc06 start="<<-\s*\"\z([^ \t0-9|>]\+\)\"" matchgroup=shHereDoc06 end="^\s*\z1\s*$"
|
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc06 start="<<-\s*\"\z([^ \t|>]\+\)\"" matchgroup=shHereDoc06 end="^\s*\z1\s*$"
|
||||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc07 start="<<\s*\\\_$\_s*\z([^ \t0-9|>]\+\)" matchgroup=shHereDoc07 end="^\z1\s*$" contains=@shDblQuoteList
|
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc07 start="<<\s*\\\_$\_s*\z([^ \t0-9|>]\+\)" matchgroup=shHereDoc07 end="^\z1\s*$" contains=@shDblQuoteList
|
||||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc08 start="<<\s*\\\_$\_s*'\z([^ \t0-9|>]\+\)'" matchgroup=shHereDoc08 end="^\z1\s*$"
|
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc08 start="<<\s*\\\_$\_s*'\z([^ \t0-9|>]\+\)'" matchgroup=shHereDoc08 end="^\z1\s*$"
|
||||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc09 start="<<\s*\\\_$\_s*\"\z([^ \t0-9|>]\+\)\"" matchgroup=shHereDoc09 end="^\z1\s*$"
|
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc09 start="<<\s*\\\_$\_s*\"\z([^ \t0-9|>]\+\)\"" matchgroup=shHereDoc09 end="^\z1\s*$"
|
||||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc10 start="<<-\s*\\\_$\_s*\z([^ \t0-9|>]\+\)" matchgroup=shHereDoc10 end="^\s*\z1\s*$"
|
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc10 start="<<-\s*\\\_$\_s*\z([^ \t0-9|>]\+\)" matchgroup=shHereDoc10 end="^\s*\z1\s*$"
|
||||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc11 start="<<-\s*\\\_$\_s*\\\z([^ \t0-9|>]\+\)" matchgroup=shHereDoc11 end="^\s*\z1\s*$"
|
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc11 start="<<-\s*\\\_$\_s*\\\z([^ \t0-9|>]\+\)" matchgroup=shHereDoc11 end="^\s*\z1\s*$"
|
||||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc12 start="<<-\s*\\\_$\_s*'\z([^ \t0-9|>]\+\)'" matchgroup=shHereDoc12 end="^\s*\z1\s*$"
|
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc12 start="<<-\s*\\\_$\_s*'\z([^ \t|>]\+\)'" matchgroup=shHereDoc12 end="^\s*\z1\s*$"
|
||||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc13 start="<<-\s*\\\_$\_s*\"\z([^ \t0-9|>]\+\)\"" matchgroup=shHereDoc13 end="^\s*\z1\s*$"
|
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc13 start="<<-\s*\\\_$\_s*\"\z([^ \t|>]\+\)\"" matchgroup=shHereDoc13 end="^\s*\z1\s*$"
|
||||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc14 start="<<\\\z([^ \t0-9|>]\+\)" matchgroup=shHereDoc14 end="^\z1\s*$"
|
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc14 start="<<\\\z([^ \t0-9|>]\+\)" matchgroup=shHereDoc14 end="^\z1\s*$"
|
||||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc15 start="<<-\s*\\\z([^ \t0-9|>]\+\)" matchgroup=shHereDoc15 end="^\s*\z1\s*$"
|
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc15 start="<<-\s*\\\z([^ \t0-9|>]\+\)" matchgroup=shHereDoc15 end="^\s*\z1\s*$"
|
||||||
|
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc16 start="<<-\s*\\\z([^ \t0-9|>]\+\)" matchgroup=shHereDoc15 end="^\s*\z1\s*$"
|
||||||
|
|
||||||
" Here Strings: {{{1
|
" Here Strings: {{{1
|
||||||
" =============
|
" =============
|
||||||
@ -404,9 +408,11 @@ syn match shVariable "\<\([bwglsav]:\)\=[a-zA-Z0-9.!@_%+,]*\ze=" nextgroup=shVa
|
|||||||
syn match shVarAssign "=" contained nextgroup=shCmdParenRegion,shPattern,shDeref,shDerefSimple,shDoubleQuote,shExDoubleQuote,shSingleQuote,shExSingleQuote
|
syn match shVarAssign "=" contained nextgroup=shCmdParenRegion,shPattern,shDeref,shDerefSimple,shDoubleQuote,shExDoubleQuote,shSingleQuote,shExSingleQuote
|
||||||
syn region shAtExpr contained start="@(" end=")" contains=@shIdList
|
syn region shAtExpr contained start="@(" end=")" contains=@shIdList
|
||||||
if exists("b:is_bash")
|
if exists("b:is_bash")
|
||||||
|
syn match shSet "^\s*set\ze\s*$"
|
||||||
syn region shSetList oneline matchgroup=shSet start="\<\(declare\|typeset\|local\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+#\|=" contains=@shIdList
|
syn region shSetList oneline matchgroup=shSet start="\<\(declare\|typeset\|local\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+#\|=" contains=@shIdList
|
||||||
syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="\ze[;|)]\|$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+=" contains=@shIdList
|
syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="\ze[;|#)]\|$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+=" contains=@shIdList nextgroup=shComment
|
||||||
elseif exists("b:is_kornshell") || exists("b:is_posix")
|
elseif exists("b:is_kornshell") || exists("b:is_posix")
|
||||||
|
syn match shSet "^\s*set\ze\s*$"
|
||||||
syn region shSetList oneline matchgroup=shSet start="\<\(typeset\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
|
syn region shSetList oneline matchgroup=shSet start="\<\(typeset\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
|
||||||
syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
|
syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
|
||||||
else
|
else
|
||||||
@ -508,9 +514,9 @@ syn match shDerefString contained "\\["']" nextgroup=shDerefPattern
|
|||||||
if exists("b:is_bash")
|
if exists("b:is_bash")
|
||||||
" bash : ${parameter:offset}
|
" bash : ${parameter:offset}
|
||||||
" bash : ${parameter:offset:length}
|
" bash : ${parameter:offset:length}
|
||||||
syn region shDerefOff contained start=':' end='\ze:' end='\ze}' contains=shDeref,shDerefSimple,shDerefEscape nextgroup=shDerefLen,shDeref,shDerefSimple
|
syn region shDerefOff contained start=':[^-=?+]' end='\ze:' end='\ze}' contains=shDeref,shDerefSimple,shDerefEscape nextgroup=shDerefLen,shDeref,shDerefSimple
|
||||||
syn region shDerefOff contained start=':\s-' end='\ze:' end='\ze}' contains=shDeref,shDerefSimple,shDerefEscape nextgroup=shDerefLen,shDeref,shDerefSimple
|
syn region shDerefOff contained start=':\s-' end='\ze:' end='\ze}' contains=shDeref,shDerefSimple,shDerefEscape nextgroup=shDerefLen,shDeref,shDerefSimple
|
||||||
syn match shDerefLen contained ":[^}]\+" contains=shDeref,shDerefSimple
|
syn match shDerefLen contained ":[^}]\+" contains=shDeref,shDerefSimple,shArithmetic
|
||||||
|
|
||||||
" bash : ${parameter//pattern/string}
|
" bash : ${parameter//pattern/string}
|
||||||
" bash : ${parameter//pattern}
|
" bash : ${parameter//pattern}
|
||||||
@ -588,6 +594,8 @@ if !exists("skip_sh_syntax_inits")
|
|||||||
hi def link shArithRegion shShellVariables
|
hi def link shArithRegion shShellVariables
|
||||||
hi def link shAstQuote shDoubleQuote
|
hi def link shAstQuote shDoubleQuote
|
||||||
hi def link shAtExpr shSetList
|
hi def link shAtExpr shSetList
|
||||||
|
hi def link shBkslshSnglQuote shSingleQuote
|
||||||
|
hi def link shBkslshDblQuote shDOubleQuote
|
||||||
hi def link shBeginHere shRedir
|
hi def link shBeginHere shRedir
|
||||||
hi def link shCaseBar shConditional
|
hi def link shCaseBar shConditional
|
||||||
hi def link shCaseCommandSub shCommandSub
|
hi def link shCaseCommandSub shCommandSub
|
||||||
@ -680,6 +688,7 @@ if !exists("skip_sh_syntax_inits")
|
|||||||
hi def link shCharClass Identifier
|
hi def link shCharClass Identifier
|
||||||
hi def link shSnglCase Statement
|
hi def link shSnglCase Statement
|
||||||
hi def link shCommandSub Special
|
hi def link shCommandSub Special
|
||||||
|
hi def link shCommandSubBQ shCommandSub
|
||||||
hi def link shComment Comment
|
hi def link shComment Comment
|
||||||
hi def link shConditional Conditional
|
hi def link shConditional Conditional
|
||||||
hi def link shCtrlSeq Special
|
hi def link shCtrlSeq Special
|
||||||
@ -693,6 +702,8 @@ if !exists("skip_sh_syntax_inits")
|
|||||||
hi def link shSetList Identifier
|
hi def link shSetList Identifier
|
||||||
hi def link shShellVariables PreProc
|
hi def link shShellVariables PreProc
|
||||||
hi def link shSpecial Special
|
hi def link shSpecial Special
|
||||||
|
hi def link shSpecialDQ Special
|
||||||
|
hi def link shSpecialSQ Special
|
||||||
hi def link shSpecialNoZS shSpecial
|
hi def link shSpecialNoZS shSpecial
|
||||||
hi def link shStatement Statement
|
hi def link shStatement Statement
|
||||||
hi def link shString String
|
hi def link shString String
|
||||||
|
@ -137,24 +137,26 @@ endif
|
|||||||
|
|
||||||
" Numbers {{{2
|
" Numbers {{{2
|
||||||
" =======
|
" =======
|
||||||
syn match vimNumber "\<\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand
|
syn match vimNumber "\<\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand,vimComment
|
||||||
syn match vimNumber "-\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand
|
syn match vimNumber "-\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand,vimComment
|
||||||
syn match vimNumber "\<0[xX]\x\+"
|
syn match vimNumber "\<0[xX]\x\+" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand,vimComment
|
||||||
syn match vimNumber "\%(^\|\A\)\zs#\x\{6}"
|
syn match vimNumber "\%(^\|\A\)\zs#\x\{6}" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand,vimComment
|
||||||
|
|
||||||
" All vimCommands are contained by vimIsCommands. {{{2
|
" All vimCommands are contained by vimIsCommands. {{{2
|
||||||
syn match vimCmdSep "[:|]\+" skipwhite nextgroup=vimAddress,vimAutoCmd,vimIsCommand,vimExtCmd,vimFilter,vimLet,vimMap,vimMark,vimSet,vimSyntax,vimUserCmd
|
syn match vimCmdSep "[:|]\+" skipwhite nextgroup=vimAddress,vimAutoCmd,vimEcho,vimIsCommand,vimExtCmd,vimFilter,vimLet,vimMap,vimMark,vimSet,vimSyntax,vimUserCmd
|
||||||
syn match vimIsCommand "\<\h\w*\>" contains=vimCommand
|
syn match vimIsCommand "\<\h\w*\>" contains=vimCommand
|
||||||
syn match vimVar contained "\<\h[a-zA-Z0-9#_]*\>"
|
syn match vimVar contained "\<\h[a-zA-Z0-9#_]*\>"
|
||||||
syn match vimVar "\<[bwglstav]:\h[a-zA-Z0-9#_]*\>"
|
syn match vimVar "\<[bwglstav]:\h[a-zA-Z0-9#_]*\>"
|
||||||
|
syn match vimVar "\s\zs&\a\+\>"
|
||||||
syn match vimFBVar contained "\<[bwglstav]:\h[a-zA-Z0-9#_]*\>"
|
syn match vimFBVar contained "\<[bwglstav]:\h[a-zA-Z0-9#_]*\>"
|
||||||
syn keyword vimCommand contained in
|
syn keyword vimCommand contained in
|
||||||
|
|
||||||
" Insertions And Appends: insert append {{{2
|
" Insertions And Appends: insert append {{{2
|
||||||
" =======================
|
" =======================
|
||||||
syn region vimInsert matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=a\%[ppend]$" matchgroup=vimCommand end="^\.$""
|
syn region vimInsert matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=a\%[ppend]$" matchgroup=vimCommand end="^\.$""
|
||||||
syn region vimInsert matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=c\%[hange]$" matchgroup=vimCommand end="^\.$""
|
syn region vimInsert matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=c\%[hange]$" matchgroup=vimCommand end="^\.$""
|
||||||
syn region vimInsert matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=i\%[nsert]$" matchgroup=vimCommand end="^\.$""
|
syn region vimInsert matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=i\%[nsert]$" matchgroup=vimCommand end="^\.$""
|
||||||
|
syn region vimInsert matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=starti\%[nsert]$" matchgroup=vimCommand end="^\.$""
|
||||||
|
|
||||||
" Behave! {{{2
|
" Behave! {{{2
|
||||||
" =======
|
" =======
|
||||||
@ -202,7 +204,7 @@ endif
|
|||||||
" Functions : Tag is provided for those who wish to highlight tagged functions {{{2
|
" Functions : Tag is provided for those who wish to highlight tagged functions {{{2
|
||||||
" =========
|
" =========
|
||||||
syn cluster vimFuncList contains=vimCommand,vimFunctionError,vimFuncKey,Tag,vimFuncSID
|
syn cluster vimFuncList contains=vimCommand,vimFunctionError,vimFuncKey,Tag,vimFuncSID
|
||||||
syn cluster vimFuncBodyList contains=vimAbb,vimAddress,vimAugroupKey,vimAutoCmd,vimCmplxRepeat,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIf,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimGlobal,vimHighlight,vimIsCommand,vimLet,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUnmap,vimUserCommand
|
syn cluster vimFuncBodyList contains=vimAbb,vimAddress,vimAugroupKey,vimAutoCmd,vimCmplxRepeat,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimGlobal,vimHighlight,vimIsCommand,vimLet,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSearch,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUnmap,vimUserCommand
|
||||||
syn match vimFunction "\<fu\%[nction]!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\ze\s*(" contains=@vimFuncList nextgroup=vimFuncBody
|
syn match vimFunction "\<fu\%[nction]!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\ze\s*(" contains=@vimFuncList nextgroup=vimFuncBody
|
||||||
|
|
||||||
if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f'
|
if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f'
|
||||||
@ -275,7 +277,7 @@ syn region vimPatSepZone oneline contained matchgroup=vimPatSepZ start="\\%\
|
|||||||
syn region vimPatRegion contained transparent matchgroup=vimPatSepR start="\\[z%]\=(" end="\\)" contains=@vimSubstList oneline
|
syn region vimPatRegion contained transparent matchgroup=vimPatSepR start="\\[z%]\=(" end="\\)" contains=@vimSubstList oneline
|
||||||
syn match vimNotPatSep contained "\\\\"
|
syn match vimNotPatSep contained "\\\\"
|
||||||
syn cluster vimStringGroup contains=vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell
|
syn cluster vimStringGroup contains=vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell
|
||||||
syn region vimString oneline keepend start=+[^a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"+ end=+"+ contains=@vimStringGroup
|
syn region vimString oneline keepend start=+[^a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"+ matchgroup=vimStringEnd end=+"+ contains=@vimStringGroup
|
||||||
syn region vimString oneline keepend start=+[^a-zA-Z>!\\@]'+lc=1 end=+'+
|
syn region vimString oneline keepend start=+[^a-zA-Z>!\\@]'+lc=1 end=+'+
|
||||||
syn region vimString oneline start=+=!+lc=1 skip=+\\\\\|\\!+ end=+!+ contains=@vimStringGroup
|
syn region vimString oneline start=+=!+lc=1 skip=+\\\\\|\\!+ end=+!+ contains=@vimStringGroup
|
||||||
syn region vimString oneline start="=+"lc=1 skip="\\\\\|\\+" end="+" contains=@vimStringGroup
|
syn region vimString oneline start="=+"lc=1 skip="\\\\\|\\+" end="+" contains=@vimStringGroup
|
||||||
@ -293,6 +295,7 @@ syn match vimSubst "\%(^\|[^\\]\)\<s\%[ubstitute]\>[:#[:alpha:]]\@!" nextgroup=v
|
|||||||
syn match vimSubst "/\zs\<s\%[ubstitute]\>\ze/" nextgroup=vimSubstPat
|
syn match vimSubst "/\zs\<s\%[ubstitute]\>\ze/" nextgroup=vimSubstPat
|
||||||
syn match vimSubst "\(:\+\s*\|^\s*\)s\ze#.\{-}#.\{-}#" nextgroup=vimSubstPat
|
syn match vimSubst "\(:\+\s*\|^\s*\)s\ze#.\{-}#.\{-}#" nextgroup=vimSubstPat
|
||||||
syn match vimSubst1 contained "\<s\%[ubstitute]\>" nextgroup=vimSubstPat
|
syn match vimSubst1 contained "\<s\%[ubstitute]\>" nextgroup=vimSubstPat
|
||||||
|
syn match vimSubst2 contained "s\%[ubstitute]\>" nextgroup=vimSubstPat
|
||||||
syn region vimSubstPat contained matchgroup=vimSubstDelim start="\z([^a-zA-Z( \t[\]&]\)"rs=s+1 skip="\\\\\|\\\z1" end="\z1"re=e-1,me=e-1 contains=@vimSubstList nextgroup=vimSubstRep4 oneline
|
syn region vimSubstPat contained matchgroup=vimSubstDelim start="\z([^a-zA-Z( \t[\]&]\)"rs=s+1 skip="\\\\\|\\\z1" end="\z1"re=e-1,me=e-1 contains=@vimSubstList nextgroup=vimSubstRep4 oneline
|
||||||
syn region vimSubstRep4 contained matchgroup=vimSubstDelim start="\z(.\)" skip="\\\\\|\\\z1" end="\z1" matchgroup=vimNotation end="<[cC][rR]>" contains=@vimSubstRepList nextgroup=vimSubstFlagErr oneline
|
syn region vimSubstRep4 contained matchgroup=vimSubstDelim start="\z(.\)" skip="\\\\\|\\\z1" end="\z1" matchgroup=vimNotation end="<[cC][rR]>" contains=@vimSubstRepList nextgroup=vimSubstFlagErr oneline
|
||||||
syn region vimCollection contained transparent start="\\\@<!\[" skip="\\\[" end="\]" contains=vimCollClass
|
syn region vimCollection contained transparent start="\\\@<!\[" skip="\\\[" end="\]" contains=vimCollClass
|
||||||
@ -312,7 +315,7 @@ syn match vimMark "'[<>]\ze[-+,!]" nextgroup=vimOper,vimMarkNumber,vimSubst
|
|||||||
syn match vimMark ",\zs'[<>]\ze" nextgroup=vimOper,vimMarkNumber,vimSubst
|
syn match vimMark ",\zs'[<>]\ze" nextgroup=vimOper,vimMarkNumber,vimSubst
|
||||||
syn match vimMark "[!,:]\zs'[a-zA-Z0-9]" nextgroup=vimOper,vimMarkNumber,vimSubst
|
syn match vimMark "[!,:]\zs'[a-zA-Z0-9]" nextgroup=vimOper,vimMarkNumber,vimSubst
|
||||||
syn match vimMark "\<norm\%[al]\s\zs'[a-zA-Z0-9]" nextgroup=vimOper,vimMarkNumber,vimSubst
|
syn match vimMark "\<norm\%[al]\s\zs'[a-zA-Z0-9]" nextgroup=vimOper,vimMarkNumber,vimSubst
|
||||||
syn match vimMarkNumber "[-+]\d\+" nextgroup=vimSubst contained contains=vimOper
|
syn match vimMarkNumber "[-+]\d\+" contained contains=vimOper nextgroup=vimSubst2
|
||||||
syn match vimPlainMark contained "'[a-zA-Z0-9]"
|
syn match vimPlainMark contained "'[a-zA-Z0-9]"
|
||||||
|
|
||||||
syn match vimRegister '[^,;[{: \t]\zs"[a-zA-Z0-9.%#:_\-/]\ze[^a-zA-Z_":0-9]'
|
syn match vimRegister '[^,;[{: \t]\zs"[a-zA-Z0-9.%#:_\-/]\ze[^a-zA-Z_":0-9]'
|
||||||
@ -332,9 +335,9 @@ syn match vimCmplxRepeat '[^a-zA-Z_/\\()]q[0-9a-zA-Z"]\>'lc=1
|
|||||||
syn match vimCmplxRepeat '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)'
|
syn match vimCmplxRepeat '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)'
|
||||||
|
|
||||||
" Set command and associated set-options (vimOptions) with comment {{{2
|
" Set command and associated set-options (vimOptions) with comment {{{2
|
||||||
syn region vimSet matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skip="\%(\\\\\)*\\." end="$" matchgroup=vimNotation end="<[cC][rR]>" keepend oneline contains=vimSetEqual,vimOption,vimErrSetting,vimComment,vimSetString,vimSetMod
|
syn region vimSet matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skip="\%(\\\\\)*\\." end="$" end="|" matchgroup=vimNotation end="<[cC][rR]>" keepend oneline contains=vimSetEqual,vimOption,vimErrSetting,vimComment,vimSetString,vimSetMod
|
||||||
syn region vimSetEqual contained start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]\|$"me=e-1 contains=vimCtrlChar,vimSetSep,vimNotation,vimEnvvar oneline
|
syn region vimSetEqual contained start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]\|$"me=e-1 contains=vimCtrlChar,vimSetSep,vimNotation,vimEnvvar oneline
|
||||||
syn region vimSetString contained start=+="+hs=s+1 skip=+\\\\\|\\"+ end=+"+ contains=vimCtrlChar
|
syn region vimSetString contained start=+="+hs=s+1 skip=+\\\\\|\\"+ end=+"+ contains=vimCtrlChar
|
||||||
syn match vimSetSep contained "[,:]" skipwhite nextgroup=vimCommand
|
syn match vimSetSep contained "[,:]" skipwhite nextgroup=vimCommand
|
||||||
syn match vimSetMod contained "&vim\=\|[!&?<]\|all&"
|
syn match vimSetMod contained "&vim\=\|[!&?<]\|all&"
|
||||||
|
|
||||||
@ -394,7 +397,7 @@ syn match vimMenuBang "!" contained skipwhite nextgroup=@vimMenuList
|
|||||||
" Angle-Bracket Notation (tnx to Michael Geddes) {{{2
|
" Angle-Bracket Notation (tnx to Michael Geddes) {{{2
|
||||||
" ======================
|
" ======================
|
||||||
syn case ignore
|
syn case ignore
|
||||||
syn match vimNotation "\%#=1\(\\\|<lt>\)\=<\([scamd]-\)\{0,4}x\=\(f\d\{1,2}\|[^ \t:]\|cr\|lf\|linefeed\|return\|k\=del\%[ete]\|bs\|backspace\|tab\|esc\|right\|left\|help\|undo\|insert\|ins\|k\=home\|k\=end\|kplus\|kminus\|kdivide\|kmultiply\|kenter\|kpoint\|space\|k\=\(page\)\=\(\|down\|up\|k\d\>\)\)>" contains=vimBracket
|
syn match vimNotation "\%#=1\(\\\|<lt>\)\=<\([scamd]-\)\{0,4}x\=\(f\d\{1,2}\|[^ \t:]\|cr\|lf\|linefeed\|return\|k\=del\%[ete]\|bs\|backspace\|tab\|esc\|right\|left\|help\|undo\|insert\|ins\|mouse\|k\=home\|k\=end\|kplus\|kminus\|kdivide\|kmultiply\|kenter\|kpoint\|space\|k\=\(page\)\=\(\|down\|up\|k\d\>\)\)>" contains=vimBracket
|
||||||
syn match vimNotation "\%#=1\(\\\|<lt>\)\=<\([scam2-4]-\)\{0,4}\(right\|left\|middle\)\(mouse\)\=\(drag\|release\)\=>" contains=vimBracket
|
syn match vimNotation "\%#=1\(\\\|<lt>\)\=<\([scam2-4]-\)\{0,4}\(right\|left\|middle\)\(mouse\)\=\(drag\|release\)\=>" contains=vimBracket
|
||||||
syn match vimNotation "\%#=1\(\\\|<lt>\)\=<\(bslash\|plug\|sid\|space\|bar\|nop\|nul\|lt\)>" contains=vimBracket
|
syn match vimNotation "\%#=1\(\\\|<lt>\)\=<\(bslash\|plug\|sid\|space\|bar\|nop\|nul\|lt\)>" contains=vimBracket
|
||||||
syn match vimNotation '\(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1 contains=vimBracket
|
syn match vimNotation '\(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1 contains=vimBracket
|
||||||
@ -572,7 +575,9 @@ syn match vimHiNmbr contained '\d\+'
|
|||||||
syn keyword vimHiClear contained clear nextgroup=vimHiGroup
|
syn keyword vimHiClear contained clear nextgroup=vimHiGroup
|
||||||
|
|
||||||
" Highlight: link {{{2
|
" Highlight: link {{{2
|
||||||
syn region vimHiLink contained oneline matchgroup=vimCommand start="\(\<hi\%[ghlight]\s\+\)\@<=\(\(def\%[ault]\s\+\)\=link\>\|\<def\>\)" end="$" contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation,vimOnlyHLGroup,nvimHLGroup
|
" see tst24 (hi def vs hi) (Jul 06, 2018)
|
||||||
|
"syn region vimHiLink contained oneline matchgroup=vimCommand start="\(\<hi\%[ghlight]\s\+\)\@<=\(\(def\%[ault]\s\+\)\=link\>\|\<def\>\)" end="$" contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation
|
||||||
|
syn region vimHiLink contained oneline matchgroup=vimCommand start="\(\<hi\%[ghlight]\s\+\)\@<=\(\(def\%[ault]\s\+\)\=link\>\|\<def\>\)" end="$" contains=@vimHiCluster
|
||||||
syn cluster vimFuncBodyList add=vimHiLink
|
syn cluster vimFuncBodyList add=vimHiLink
|
||||||
|
|
||||||
" Control Characters {{{2
|
" Control Characters {{{2
|
||||||
@ -882,7 +887,7 @@ if !exists("skip_vim_syntax_inits")
|
|||||||
hi def link vimOper Operator
|
hi def link vimOper Operator
|
||||||
hi def link vimOption PreProc
|
hi def link vimOption PreProc
|
||||||
hi def link vimParenSep Delimiter
|
hi def link vimParenSep Delimiter
|
||||||
hi def link vimPatSepErr vimPatSep
|
hi def link vimPatSepErr vimError
|
||||||
hi def link vimPatSepR vimPatSep
|
hi def link vimPatSepR vimPatSep
|
||||||
hi def link vimPatSep SpecialChar
|
hi def link vimPatSep SpecialChar
|
||||||
hi def link vimPatSepZone vimString
|
hi def link vimPatSepZone vimString
|
||||||
@ -904,6 +909,7 @@ if !exists("skip_vim_syntax_inits")
|
|||||||
hi def link vimStatement Statement
|
hi def link vimStatement Statement
|
||||||
hi def link vimStringCont vimString
|
hi def link vimStringCont vimString
|
||||||
hi def link vimString String
|
hi def link vimString String
|
||||||
|
hi def link vimStringEnd vimString
|
||||||
hi def link vimSubst1 vimSubst
|
hi def link vimSubst1 vimSubst
|
||||||
hi def link vimSubstDelim Delimiter
|
hi def link vimSubstDelim Delimiter
|
||||||
hi def link vimSubstFlags Special
|
hi def link vimSubstFlags Special
|
||||||
|
84
runtime/syntax/wast.vim
Normal file
84
runtime/syntax/wast.vim
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
" Vim syntax file
|
||||||
|
" Language: WebAssembly
|
||||||
|
" Maintainer: rhysd <lin90162@yahoo.co.jp>
|
||||||
|
" Last Change: Jul 29, 2018
|
||||||
|
" For bugs, patches and license go to https://github.com/rhysd/vim-wasm
|
||||||
|
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:cpo_save = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
syn cluster wastCluster contains=wastModule,wastInstWithType,wastInstGeneral,wastParamInst,wastControlInst,wastString,wastNamedVar,wastUnnamedVar,wastFloat,wastNumber,wastComment,wastList,wastType
|
||||||
|
|
||||||
|
" Instructions
|
||||||
|
" https://webassembly.github.io/spec/core/text/instructions.html
|
||||||
|
" Note: memarg (align=,offset=) can be added to memory instructions
|
||||||
|
syn match wastInstWithType "\%((\s*\)\@<=\<\%(i32\|i64\|f32\|f64\|memory\)\.[[:alnum:]_]\+\%(/\%(i32\|i64\|f32\|f64\)\)\=\>\%(\s\+\%(align\|offset\)=\)\=" contained display
|
||||||
|
syn match wastInstGeneral "\%((\s*\)\@<=\<[[:alnum:]_]\+\>" contained display
|
||||||
|
" https://webassembly.github.io/spec/core/text/instructions.html#control-instructions
|
||||||
|
syn match wastControlInst "\%((\s*\)\@<=\<\%(block\|end\|loop\|if\|else\|unreachable\|nop\|br\|br_if\|br_table\|return\|call\|call_indirect\)\>" contained display
|
||||||
|
" https://webassembly.github.io/spec/core/text/instructions.html#parametric-instructions
|
||||||
|
syn match wastParamInst "\%((\s*\)\@<=\<\%(drop\|select\)\>" contained display
|
||||||
|
|
||||||
|
" Identifiers
|
||||||
|
" https://webassembly.github.io/spec/core/text/values.html#text-id
|
||||||
|
syn match wastNamedVar "$\+[[:alnum:]!#$%&'∗./:=><?@\\^_`~+-]*" contained display
|
||||||
|
syn match wastUnnamedVar "$\+\d\+[[:alnum:]!#$%&'∗./:=><?@\\^_`~+-]\@!" contained display
|
||||||
|
|
||||||
|
" String literals
|
||||||
|
" https://webassembly.github.io/spec/core/text/values.html#strings
|
||||||
|
syn region wastString start=+"+ skip=+\\\\\|\\"+ end=+"+ contained contains=wastStringSpecial
|
||||||
|
syn match wastStringSpecial "\\\x\x\|\\[tnr'\\\"]\|\\u\x\+" contained containedin=wastString
|
||||||
|
|
||||||
|
" Float literals
|
||||||
|
" https://webassembly.github.io/spec/core/text/values.html#floating-point
|
||||||
|
syn match wastFloat "\<-\=\d\%(_\=\d\)*\%(\.\d\%(_\=\d\)*\)\=\%([eE][-+]\=\d\%(_\=\d\)*\)\=" display contained
|
||||||
|
syn match wastFloat "\<-\=0x\x\%(_\=\d\)*\%(\.\x\%(_\=\x\)*\)\=\%([pP][-+]\=\d\%(_\=\d\)*\)\=" display contained
|
||||||
|
syn keyword wastFloat inf nan contained
|
||||||
|
|
||||||
|
" Integer literals
|
||||||
|
" https://webassembly.github.io/spec/core/text/values.html#integers
|
||||||
|
syn match wastNumber "\<-\=\d\%(_\=\d\)*\>" display contained
|
||||||
|
syn match wastNumber "\<-\=0x\x\%(_\=\x\)*\>" display contained
|
||||||
|
|
||||||
|
" Comments
|
||||||
|
" https://webassembly.github.io/spec/core/text/lexical.html#comments
|
||||||
|
syn region wastComment start=";;" end="$" display
|
||||||
|
syn region wastComment start="(;;\@!" end=";)"
|
||||||
|
|
||||||
|
syn region wastList matchgroup=wastListDelimiter start="(;\@!" matchgroup=wastListDelimiter end=";\@<!)" contains=@wastCluster
|
||||||
|
|
||||||
|
" Types
|
||||||
|
" https://webassembly.github.io/spec/core/text/types.html
|
||||||
|
syn keyword wastType i64 i32 f64 f32 param result anyfunc mut contained
|
||||||
|
syn match wastType "\%((\_s*\)\@<=func\%(\_s*[()]\)\@=" display contained
|
||||||
|
|
||||||
|
" Modules
|
||||||
|
" https://webassembly.github.io/spec/core/text/modules.html
|
||||||
|
syn keyword wastModule module type export import table memory global data elem contained
|
||||||
|
syn match wastModule "\%((\_s*\)\@<=func\%(\_s\+\$\)\@=" display contained
|
||||||
|
|
||||||
|
syn sync lines=100
|
||||||
|
|
||||||
|
hi def link wastModule PreProc
|
||||||
|
hi def link wastListDelimiter Delimiter
|
||||||
|
hi def link wastInstWithType Operator
|
||||||
|
hi def link wastInstGeneral Operator
|
||||||
|
hi def link wastControlInst Statement
|
||||||
|
hi def link wastParamInst Conditional
|
||||||
|
hi def link wastString String
|
||||||
|
hi def link wastStringSpecial Special
|
||||||
|
hi def link wastNamedVar Identifier
|
||||||
|
hi def link wastUnnamedVar PreProc
|
||||||
|
hi def link wastFloat Float
|
||||||
|
hi def link wastNumber Number
|
||||||
|
hi def link wastComment Comment
|
||||||
|
hi def link wastType Type
|
||||||
|
|
||||||
|
let b:current_syntax = "wast"
|
||||||
|
|
||||||
|
let &cpo = s:cpo_save
|
||||||
|
unlet s:cpo_save
|
Loading…
Reference in New Issue
Block a user