mirror of
https://github.com/neovim/neovim.git
synced 2025-11-15 23:01:24 +00:00
Merge pull request #36350 from zeertzjq/vim-da5b600
vim-patch: Vim syntax updates
This commit is contained in:
@@ -232,7 +232,7 @@ syn match vimNumber '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*' skipwhite nextgroup=@vi
|
||||
syn case match
|
||||
|
||||
" All vimCommands are contained by vimIsCommand. {{{2
|
||||
syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutocmd,vimAugroup,vimBehave,vimCall,vimCatch,vimCommandModifier,vimConst,vimDoautocmd,vimDebuggreedy,vimDef,vimDefFold,vimDefer,vimDelcommand,vimDelFunction,@vimEcho,vimElse,vimEnddef,vimEndfunction,vimEndif,vimEval,vimExecute,vimIsCommand,vimExtCmd,vimExFilter,vimExMark,vimFiletype,vimFor,vimFunction,vimFunctionFold,vimGrep,vimGrepAdd,vimGlobal,vimHelpgrep,vimHighlight,vimImport,vimLet,vimLoadkeymap,vimLockvar,vimMake,vimMap,vimMark,vimMatch,vimNotFunc,vimNormal,vimProfdel,vimProfile,vimRedir,vimSet,vimSleep,vimSort,vimSyntax,vimSynColor,vimSynLink,vimThrow,vimUniq,vimUnlet,vimUnlockvar,vimUnmap,vimUserCmd,vimVimgrep,vimVimgrepadd,vimWincmd,vimMenu,vimMenutranslate,@vim9CmdList,@vimExUserCmdList,vimLua,vimMzScheme,vimPerl,vimPython,vimPython3,vimPythonX,vimRuby,vimTcl
|
||||
syn cluster vimCmdList contains=vimAbb,vimAddress,vimAt,vimAutocmd,vimAugroup,vimBehave,vimCall,vimCatch,vimCommandModifier,vimConst,vimDoautocmd,vimDebuggreedy,vimDef,vimDefFold,vimDefer,vimDelcommand,vimDelFunction,@vimEcho,vimElse,vimEnddef,vimEndfunction,vimEndif,vimEval,vimExecute,vimIsCommand,vimExtCmd,vimExFilter,vimExMark,vimFiletype,vimFor,vimFunction,vimFunctionFold,vimGrep,vimGrepAdd,vimGlobal,vimHelpgrep,vimHighlight,vimImport,vimLet,vimLoadkeymap,vimLockvar,vimMake,vimMap,vimMark,vimMatch,vimNotFunc,vimNormal,vimProfdel,vimProfile,vimRedir,vimSet,vimSleep,vimSort,vimSyntax,vimSyntime,vimSynColor,vimSynLink,vimTerminal,vimThrow,vimUniq,vimUnlet,vimUnlockvar,vimUnmap,vimUserCmd,vimVimgrep,vimVimgrepadd,vimWincmd,vimMenu,vimMenutranslate,@vim9CmdList,@vimExUserCmdList,vimLua,vimMzScheme,vimPerl,vimPython,vimPython3,vimPythonX,vimRuby,vimTcl
|
||||
syn cluster vim9CmdList contains=vim9Abstract,vim9Class,vim9Const,vim9Enum,vim9Export,vim9Final,vim9For,vim9Interface,vim9Type,vim9Var
|
||||
syn match vimCmdSep "\\\@1<!|" skipwhite nextgroup=@vimCmdList,vimSubst1,@vimFunc
|
||||
syn match vimCmdSep ":\+" skipwhite nextgroup=@vimCmdList,vimSubst1
|
||||
@@ -1017,7 +1017,13 @@ syn match vimComFilter contained "|!!\=[^"]\{-}\(|\|\ze\"\|$\)" contains=vi
|
||||
" Complex Repeats: (:h complex-repeat) {{{2
|
||||
" ===============
|
||||
syn match vimCmplxRepeat '[^a-zA-Z_/\\()]q[0-9a-zA-Z"]\>'lc=1
|
||||
syn match vimCmplxRepeat '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)'
|
||||
|
||||
" NOTE: :* as an alias for :@ is not supported, this is considered a :range,
|
||||
" see :help cpo-star
|
||||
syn match vimAtArg contained +@\@1<=[0-9a-z".=*+:@]+
|
||||
syn match vimAt +@[0-9a-z".=*+:@]\ze\s*\%($\|[|"#]\)+ skipwhite nextgroup=vimCmdSep,vimComment,vim9Comment contains=vimAtArg
|
||||
" Vim9: avoid LHS assignment mismatching of :@["#]
|
||||
syn match vimAt +@\ze\s*\%($\||\|\s["#]\)+ skipwhite nextgroup=vimCmdSep,vimComment,vim9Comment
|
||||
|
||||
" Set command and associated set-options (vimOptions) with comment {{{2
|
||||
syn match vimSet "\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skipwhite nextgroup=vimSetBang,vimCmdSep,vimComment,vimSetArgs
|
||||
@@ -1594,6 +1600,44 @@ syn region vimSortPattern contained
|
||||
|
||||
syn cluster vimSortOptions contains=vimSortOptions,vimSortOptionsError
|
||||
|
||||
" Terminal: {{{2
|
||||
" ========
|
||||
syn match vimTerminal "\<ter\%[minal]\>" skipwhite nextgroup=vimTerminalOptions,vimTerminalCommand
|
||||
syn match vimTerminal +\<ter\%[minal]\>\ze\s*\n\s*\%(\\\|["#]\\ \)+ skipwhite skipnl nextgroup=vimTerminalOptions,vimTerminalCommand,@vimTerminalContinue
|
||||
|
||||
syn match vimTerminalContinue contained "^\s*\\" skipwhite skipnl nextgroup=@vimTerminalContinue,vimTerminalOptions,vimTerminalCommand contains=vimWhitespace
|
||||
syn match vimTerminalContinueComment contained '^\s*["#]\\ .*' skipwhite skipnl nextgroup=@vimTerminalContinue,vimTerminalOptions,vimTerminalCommand contains=vimWhitespace
|
||||
syn cluster vimTerminalContinue contains=vimTerminalContinue,vimTerminalContinueComment
|
||||
|
||||
syn region vimTerminalCommand contained
|
||||
\ start="\S"
|
||||
\ skip=+\n\s*\%(\\\|["#]\\ \)+
|
||||
\ end="$"
|
||||
\ contains=@vimContinue
|
||||
|
||||
syn region vimTerminalOptions contained
|
||||
\ start="++"
|
||||
\ skip=/\s\+++\|\%(\n\|^\)\s*\%(\\\|["#]\\ \)/
|
||||
\ end="\s"
|
||||
\ end="$"
|
||||
\ skipwhite nextgroup=vimTerminalCommand
|
||||
\ contains=@vimContinue,vimTerminalOption
|
||||
\ transparent
|
||||
|
||||
syn match vimTerminalOption contained "++\%(\%(no\)\=close\|open\|curwin\|hidden\|norestore\|shell\)\>"
|
||||
syn match vimTerminalOption contained "++kill=" nextgroup=vimTerminalKillOptionArg
|
||||
syn match vimTerminalOption contained "++\%(rows\|cols\)=" nextgroup=vimTerminalSizeOptionArg
|
||||
syn match vimTerminalOption contained "++eof=" nextgroup=vimTerminalEofOptionArg
|
||||
syn match vimTerminalOption contained "++type=" nextgroup=vimTerminalTypeOptionArg
|
||||
syn match vimTerminalOption contained "++api=" nextgroup=vimTerminalApiOptionArg
|
||||
|
||||
syn match vimTerminalApiOptionArg contained "\<\S\+\>"
|
||||
syn match vimTerminalEofOptionArg contained "\<\S\+\>"
|
||||
syn match vimTerminalSizeOptionArg contained "\<\d\+\>"
|
||||
syn keyword vimTerminalKillOptionArg contained term hup quit int kill
|
||||
syn match vimTerminalKillOptionArg contained "\<\d\+\>"
|
||||
syn keyword vimTerminalTypeOptionArg contained conpty winpty
|
||||
|
||||
" Uniq: {{{2
|
||||
" ====
|
||||
syn match vimUniq "\<uniq\=\>" skipwhite nextgroup=vimUniqBang,@vimUniqOptions,vimUniqPattern,vimCmdSep
|
||||
@@ -1747,6 +1791,10 @@ syn match vimSyncKey contained "\<groupthere\>" skipwhite nextgroup=vimSyncGroup
|
||||
syn match vimSyncGroup contained "\<\h\w*\>" skipwhite nextgroup=vimSynRegPat,vimSyncNone
|
||||
syn keyword vimSyncNone contained NONE
|
||||
|
||||
" Syntime: {{{2
|
||||
" =======
|
||||
syn keyword vimSyntimeArg contained on off clear report skipwhite nextgroup=vimComment,vim9Comment,vimCmdSep
|
||||
syn keyword vimSyntime synti[me] skipwhite nextgroup=vimSyntimeArg
|
||||
" Additional IsCommand: here by reasons of precedence {{{2
|
||||
" ====================
|
||||
syn match vimIsCommand "<Bar>\s*\a\+" transparent contains=vimCommand,vimNotation
|
||||
@@ -2264,6 +2312,8 @@ if !exists("skip_vim_syntax_inits")
|
||||
|
||||
hi def link vimAbb vimCommand
|
||||
hi def link vimAddress vimMark
|
||||
hi def link vimAt vimCommand
|
||||
hi def link vimAtArg Special
|
||||
hi def link vimAugroupBang vimBang
|
||||
hi def link vimAugroupError vimError
|
||||
hi def link vimAugroupKey vimCommand
|
||||
@@ -2520,7 +2570,16 @@ if !exists("skip_vim_syntax_inits")
|
||||
hi def link vimSynSpell Type
|
||||
hi def link vimSyntax vimCommand
|
||||
hi def link vimSynType vimSpecial
|
||||
hi def link vimSyntime vimCommand
|
||||
hi def link vimSyntimeArg vimSpecial
|
||||
hi def link vimTcl vimCommand
|
||||
hi def link vimTerminal vimCommand
|
||||
hi def link vimTerminalContinue vimContinue
|
||||
hi def link vimTerminalContinueComment vimContinueComment
|
||||
hi def link vimTerminalOption vimSpecial
|
||||
hi def link vimTerminalKillOptionArg Constant
|
||||
hi def link vimTerminalSizeOptionArg Constant
|
||||
hi def link vimTerminalTypeOptionArg Constant
|
||||
hi def link vimThrow vimCommand
|
||||
hi def link vimTodo Todo
|
||||
hi def link vimType Type
|
||||
|
||||
Reference in New Issue
Block a user