summaryrefslogtreecommitdiffstats
path: root/after/syntax
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2022-02-17 04:31:35 +0100
committerAdam Stankiewicz <sheerun@sher.pl>2022-02-17 04:31:45 +0100
commitb77c5f11070ecb2ff343aa18b4ea859e6168f16c (patch)
treec93d347b096ce19556f369428913b697e6aafa00 /after/syntax
parent2c5af8f89d3e61e04e761c07a1f043b0f35203c6 (diff)
downloadvim-polyglot-b77c5f11070ecb2ff343aa18b4ea859e6168f16c.tar.gz
vim-polyglot-b77c5f11070ecb2ff343aa18b4ea859e6168f16c.zip
Update
Diffstat (limited to 'after/syntax')
-rw-r--r--after/syntax/javascript/graphql.vim4
-rw-r--r--after/syntax/typescript/graphql.vim9
-rw-r--r--after/syntax/zsh.vim275
3 files changed, 172 insertions, 116 deletions
diff --git a/after/syntax/javascript/graphql.vim b/after/syntax/javascript/graphql.vim
index f76f0fab..459f79f7 100644
--- a/after/syntax/javascript/graphql.vim
+++ b/after/syntax/javascript/graphql.vim
@@ -46,7 +46,7 @@ if graphql#has_syntax_group('jsTemplateExpression')
exec 'syntax match graphqlTaggedTemplate +' . s:tags . '\ze`+ nextgroup=graphqlTemplateString'
syntax region graphqlTemplateExpression start=+${+ end=+}+ contained contains=jsTemplateExpression containedin=graphqlFold keepend
- syntax region graphqlTemplateString matchgroup=jsTemplateString start=+`#\s\{,4\}gql\>\s*$+ skip=+\\\\\|\\`+ end=+`+ contains=@GraphQLSyntax,jsTemplateExpression,jsSpecial extend
+ syntax region graphqlTemplateString matchgroup=jsTemplateString start=+`#\s\{,4\}\(gql\|graphql\)\>\s*$+ skip=+\\\\\|\\`+ end=+`+ contains=@GraphQLSyntax,jsTemplateExpression,jsSpecial extend
hi def link graphqlTemplateString jsTemplateString
hi def link graphqlTaggedTemplate jsTaggedTemplate
@@ -60,7 +60,7 @@ elseif graphql#has_syntax_group('javaScriptStringT')
exec 'syntax match graphqlTaggedTemplate +' . s:tags . '\ze`+ nextgroup=graphqlTemplateString'
syntax region graphqlTemplateExpression start=+${+ end=+}+ contained contains=@javaScriptEmbededExpr containedin=graphqlFold keepend
- syntax region graphqlTemplateString matchgroup=javaScriptStringT start=+`#\s\{,4\}gql\>\s*$+ skip=+\\\\\|\\`+ end=+`+ contains=@GraphQLSyntax,javaScriptSpecial,javaScriptEmbed,@htmlPreproc extend
+ syntax region graphqlTemplateString matchgroup=javaScriptStringT start=+`#\s\{,4\}\(gql\|graphql\)\>\s*$+ skip=+\\\\\|\\`+ end=+`+ contains=@GraphQLSyntax,javaScriptSpecial,javaScriptEmbed,@htmlPreproc extend
hi def link graphqlTemplateString javaScriptStringT
hi def link graphqlTaggedTemplate javaScriptEmbed
diff --git a/after/syntax/typescript/graphql.vim b/after/syntax/typescript/graphql.vim
index 95055006..1363f7a5 100644
--- a/after/syntax/typescript/graphql.vim
+++ b/after/syntax/typescript/graphql.vim
@@ -46,6 +46,15 @@ exec 'syntax match graphqlTaggedTemplate +' . s:tags . '\ze`+ nextgroup=graphqlT
" Support expression interpolation ((${...})) inside template strings.
syntax region graphqlTemplateExpression start=+${+ end=+}+ contained contains=typescriptTemplateSubstitution containedin=graphqlFold keepend
+" support #graphql , #gql comment strings
+syntax region graphqlTemplateString
+ \ start=+`\(#\s\{,4\}\(gql\|graphql\)\)\@=+
+ \ skip=+\\\\\|\\`+
+ \ end=+`+me=s-1
+ \ containedin=typescriptTemplate
+ \ contained
+ \ contains=@GraphQLSyntax,typescriptTemplateSubstitution extend
+
hi def link graphqlTemplateString typescriptTemplate
hi def link graphqlTemplateExpression typescriptTemplateSubstitution
diff --git a/after/syntax/zsh.vim b/after/syntax/zsh.vim
index cf4f9246..118345c4 100644
--- a/after/syntax/zsh.vim
+++ b/after/syntax/zsh.vim
@@ -3,6 +3,7 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'zinit', 'after/syntax/zsh.vim
endif
" Copyright (c) 2019 Sebastian Gniazdowski
+" Copyright (c) 2021 Joakim Gottzén
"
" Syntax highlighting for Zinit commands in any file of type `zsh'.
" It adds definitions for the Zinit syntax to the ones from the
@@ -10,117 +11,163 @@ endif
" Main Zinit command.
" Should be the only TOP rule for the whole syntax.
-syntax match ZinitCommand /\<zinit\>\s/me=e-1
- \ skipwhite
- \ nextgroup=ZinitSubCommands,ZinitPluginSubCommands,ZinitSnippetSubCommands
- \ contains=ZinitSubCommands,ZinitPluginSubCommands,ZinitSnippetSubCommands
-
-" TODO: add options for e.g. light
-syntax match ZinitSubCommands /\s\<\%(ice\|compinit\|env-whitelist\|cdreplay\|cdclear\|update\)\>\s/ms=s+1,me=e-1
- \ contained
-
-syntax match ZinitPluginSubCommands /\s\<\%(light\|load\)\>\s/ms=s+1,me=e-1
- \ skipwhite nextgroup=ZinitPlugin1,ZinitPlugin2,ZinitPlugin3
- \ contains=ZinitPlugin1,ZinitPlugin2,ZinitPlugin3
-
-syntax match ZinitSnippetSubCommands /\s\<\%(snippet\)\>\s/ms=s+1,me=e-1
- \ skipwhite
- \ nextgroup=ZinitSnippetShorthands1,ZinitSnippetShorthands2
- \ contains=ZinitSnippetShorthands1,ZinitSnippetShorthands2
-
-" "user/plugin"
-syntax match ZinitPlugin1 /\s["]\%([!-_]*\%(\/[!-_]\+\)\+\|[!-_]\+\)["]/ms=s+1,hs=s+2,he=e-1
- \ contained
- \ nextgroup=ZinitTrailingWhiteSpace
- \ contains=ZinitTrailingWhiteSpace
-
-" 'user/plugin'
-syntax match ZinitPlugin2 /\s[']\%([!-_]*\%(\/[!-_]\+\)\+\|[!-_]\+\)[']/ms=s+1,hs=s+2,he=e-1
- \ contained
- \ nextgroup=ZinitTrailingWhiteSpace
- \ contains=ZinitTrailingWhiteSpace
-
-" user/plugin
-syntax match ZinitPlugin3 /\s\%([!-_]*\%(\/[!-_]\+\)\+\|[!-_]\+\)/ms=s+1,me=e+2
- \ contained
- \ nextgroup=ZinitTrailingWhiteSpace
- \ contains=ZinitTrailingWhiteSpace
-
-" OMZ:: or PZT::
-" TODO: 'OMZ:: or 'PZT::
-syntax match ZinitSnippetShorthands1 /\s\<\%(\%(OMZ\|PZT\)\>::\|\)/hs=s+1,he=e-2
- \ contained
- \ skipwhite
- \ nextgroup=ZinitSnippetUrl1,ZinitSnippetUrl2
- \ contains=ZinitSnippetUrl1,ZinitSnippetUrl2
-
-" "OMZ:: or "PZT::
-syntax match ZinitSnippetShorthands2 /\s["]\%(\%(OMZ\|PZT\)\>::\|\)/hs=s+2,he=e-2
- \ contained
- \ skipwhite
- \ nextgroup=ZinitSnippetUrl3,ZinitSnippetUrl4
- \ contains=ZinitSnippetUrl3,ZinitSnippetUrl4
-
-syntax match ZinitSnippetUrl3 /\<\%(http:\/\/\|https:\/\/\|ftp:\/\/\|\$HOME\|\/\)[!-_]\+\%(\/[!-_]\+\)*\/\?["]/he=e-1
- \ contained
- \ nextgroup=ZinitTrailingWhiteSpace
- \ contains=ZinitTrailingWhiteSpace
-
-" TODO: Fix ZinitTrailingWhiteSpace not matching
-syntax match ZinitSnippetUrl4 /\%(\%(OMZ\|PZT\)::\)[!-_]\+\%(\/[!-_]\+\)*\/\?["]/hs=s+5,he=e-1
- \ contained
- \ nextgroup=ZinitTrailingWhiteSpace
- \ contains=ZinitTrailingWhiteSpace
-
-" http://… or https://… or ftp://… or $HOME/… or /…
-" TODO: Fix $HOME/… and /… not matching
-syntax match ZinitSnippetUrl1 /\<\%(http:\/\/\|https:\/\/\|ftp:\/\/\|\$HOME\|\/\)[!-_]\+\%(\/[!-_]\+\)*\/\?/
- \ contained
- \ nextgroup=ZinitTrailingWhiteSpace
- \ contains=ZinitTrailingWhiteSpace
-
-" TODO: Fix ZinitTrailingWhiteSpace not matching
-syntax match ZinitSnippetUrl2 /\<\%(\%(OMZ\|PZT\)::\)[!-_]\+\%(\/[!-_]\+\)*\/\?/hs=s+5
- \ contained
- \ nextgroup=ZinitTrailingWhiteSpace
- \ contains=ZinitTrailingWhiteSpace
-
-syntax match ZinitTrailingWhiteSpace /[[:space:]]\+$/ contained
-
-" TODO: differentiate the no-value ices
-" TODO: use contained
-syntax match ZinitIceSubCommand /\sice\s/ms=s+1,me=e-1 nextgroup=ZinitIceModifiers
-syntax match ZinitIceModifiers /\s\<\%(svn\|proto\|from\|teleid\|bindmap\|cloneopts\|id-as\|depth\|if\|wait\|load\)\>/ms=s+1
-syntax match ZinitIceModifiers /\s\<\%(unload\|blockf\|on-update-of\|subscribe\|pick\|bpick\|src\|as\|ver\|silent\)\>/ms=s+1
-syntax match ZinitIceModifiers /\s\<\%(lucid\|notify\|mv\|cp\|atinit\|atclone\|atload\|atpull\|nocd\|run-atpull\|has\)\>/ms=s+1
-syntax match ZinitIceModifiers /\s\<\%(cloneonly\|make\|service\|trackbinds\|multisrc\|compile\|nocompile\)\>/ms=s+1
-syntax match ZinitIceModifiers /\s\<\%(nocompletions\|reset-prompt\|wrap-track\|reset\|aliases\|sh\|bash\|ksh\|csh\)\>/ms=s+1
-syntax match ZinitIceModifiers /\s\<\%(\\!sh\|!sh\|\\!bash\|!bash\|\\!ksh\|!ksh\|\\!csh\|!csh\)\>/ms=s+1
-syntax match ZinitIceModifiers /\s\<\%(blockf\|silent\|lucid\|trackbinds\|cloneonly\|nocd\|run-atpull\)\>/ms=s+1
-syntax match ZinitIceModifiers /\s\<\%(\|sh\|\!sh\|bash\|\!bash\|ksh\|\!ksh\|csh\|\!csh\)\>/ms=s+1
-syntax match ZinitIceModifiers /\s\<\%(nocompletions\|svn\|aliases\|trigger-load\)\>/ms=s+1
-syntax match ZinitIceModifiers /\s\<\%(light-mode\|is-snippet\|countdown\|ps-on-unload\|ps-on-update\)\>/ms=s+1
-
-" Include also ices added by the existing annexes
-syntax match ZinitIceModifiers /\s\<\%(test\|zman\|submod\|dl\|patch\|fbin\|sbin\|fsrc\|ferc\|fmod\|gem\|node\|rustup\|cargo\)\>/ms=s+1
-
-" Additional Zsh and Zinit functions
-syntax match ZshAndZinitFunctions /\<\%(compdef\|compinit\|zpcdreplay\|zpcdclear\|zpcompinit\|zpcompdef\)\>/
-
-" Link
-highlight def link ZshAndZinitFunctions Keyword
-highlight def link ZinitCommand Statement
-highlight def link ZinitSubCommands Title
-highlight def link ZinitPluginSubCommands Title
-highlight def link ZinitSnippetSubCommands Title
-highlight def link ZinitIceModifiers Type
-highlight def link ZinitSnippetShorthands1 Keyword
-highlight def link ZinitSnippetShorthands2 Keyword
-highlight def link ZinitPlugin1 Macro
-highlight def link ZinitPlugin2 Macro
-highlight def link ZinitPlugin3 Macro
-highlight def link ZinitSnippetUrl1 Macro
-highlight def link ZinitSnippetUrl2 Macro
-highlight def link ZinitSnippetUrl3 Macro
-highlight def link ZinitSnippetUrl4 Macro
-highlight def link ZinitTrailingWhiteSpace Error
+syn match ZinitCommand '\(^\|\s\)zinit\s'ms=e-5,me=e-1 skipwhite
+ \ nextgroup=ZinitCommand,ZinitIceCommand,ZinitPluginCommand,ZinitSnippetCommand,ZinitForCommand,ZinitContinue,ZinitIceWithParam,ZinitIce
+
+syn match ZinitCommand '\s\%(help\|man\)\>'ms=s+1 skipwhite contained
+syn match ZinitCommand '\s\%(unload\)\>'ms=s+1 skipwhite contained " load,light and snippet are handled elsewhere
+syn match ZinitCommand '\s\%(clist\|completions\|cdisable\|cenable\|creinstall\|cuninstall\)\>'ms=s+1 skipwhite contained
+syn match ZinitCommand '\s\%(csearch\|compinit\|cclear\|cdlist\|cdreplay\|cdclear\)\>'ms=s+1 skipwhite contained
+syn match ZinitCommand '\s\%(dtrace\|dstart\|dstop\|dunload\|dreport\|dclear\)\>'ms=s+1 skipwhite contained
+syn match ZinitCommand '\s\%(times\|zstatus\|report\|loaded\|list\|ls\|status\|recently\|bindkeys\)\>'ms=s+1 skipwhite contained
+syn match ZinitCommand '\s\%(compile\|uncompile\|compiled\)\>'ms=s+1 skipwhite contained
+syn match ZinitCommand '\s\%(self-update\|update\|delete\|cd\|edit\|glance\|stress\|changes\|create\)\>'ms=s+1 skipwhite contained
+syn match ZinitCommand '\s\%(srv\|recall\|env-whitelist\|module\|add-fpath\|fpath\|run\)\>'ms=s+1 skipwhite contained
+
+syn match ZinitIceCommand '\sice\s'ms=s+1,me=e-1 skipwhite contained nextgroup=ZinitIce,ZinitIceWithParam
+
+syn match ZinitPluginCommand '\s\%(light\|load\)\s'ms=s+1,me=e-1 skipwhite contained nextgroup=ZinitPlugin,ZinitContinue
+
+syn match ZinitSnippetCommand '\s\%(snippet\)\s'ms=s+1,me=e-1 skipwhite contained nextgroup=ZinitSnippet,ZinitContinue
+
+syn match ZinitForCommand '\sfor\s'ms=s+1,me=e-1 skipwhite contained
+ \ nextgroup=ZinitPlugin,ZinitSnippet,ZinitContinue
+
+syn cluster ZinitLine contains=ZinitIce,ZinitIceWithParam,ZinitPlugin,ZinitSnippet,ZinitForCommand
+
+syn match ZinitContinue '\s\\\s*$'ms=s+1,me=s+2 skipwhite contained skipnl
+ \ nextgroup=@ZinitLine
+
+" user/plugin or @user/plugin
+syn match ZinitPlugin '\s@\?\<[a-zA-Z0-9][a-zA-Z0-9_\-]*\/[a-zA-Z0-9_\-\.]\+\>'ms=s+1 skipwhite contained
+ \ nextgroup=ZinitPlugin,ZinitSnippet,ZinitContinue
+
+" shorthands
+syn match ZinitSnippet '\s\%(OMZ[LPT]\?\|PZT[M]\?\)::[a-zA-Z0-9_\-\.\/]\+\>'ms=s+1 skipwhite contained
+ \ nextgroup=ZinitPlugin,ZinitSnippet,ZinitContinue
+" url
+syn match ZinitSnippet '\s\%(http[s]\?\|ftp\):\/\/[[:alnum:]%\/_#.-]*\>'ms=s+1 skipwhite contained
+ \ nextgroup=ZinitPlugin,ZinitSnippet,ZinitContinue
+" "$VAR" local path
+syn match ZinitSnippet +\s"\$\<[a-zA-Z0-9_]\+[^"]*"+ms=s+1 skipwhite contained
+ \ nextgroup=ZinitPlugin,ZinitSnippet,ZinitContinue
+" "${VAR}" local path
+syn match ZinitSnippet +\s"\${\<[a-zA-Z0-9_]\+}[^"]*"+ms=s+1 skipwhite contained
+ \ nextgroup=ZinitPlugin,ZinitSnippet,ZinitContinue
+
+" ices which takes a param enclosed in "
+syn region ZinitIceWithParam matchgroup=ZinitIce start=+\s\%(proto\|from\|ver\|bpick\|depth\|cloneopts\|pullopts\)"+ skip=+\\"+ end=+"+ skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+ \ contains=ZinitIceDoubleQuoteParam
+syn region ZinitIceWithParam matchgroup=ZinitIce start=+\s\%(pick\|src\|multisrc\)"+ skip=+\\"+ end=+"+ skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+ \ contains=ZinitIceDoubleQuoteParam
+syn region ZinitIceWithParam matchgroup=ZinitIce start=+\s\%(wait\|load\|unload\|if\|has\|subscribe\|on-update-of\|trigger-load\)"+ skip=+\\"+ end=+"+ skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+ \ contains=ZinitIceDoubleQuoteParam
+syn region ZinitIceWithParam matchgroup=ZinitIce start=+\s\%(mv\|cp\|atclone\|atpull\|atinit\|atload\|atdelete\|make\)"+ skip=+\\"+ end=+"+ skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+ \ contains=ZinitIceDoubleQuoteParam
+syn region ZinitIceWithParam matchgroup=ZinitIce start=+\s\%(as\|id-as\|compile\|nocompile\|service\|bindmap\|wrap-track\)"+ skip=+\\"+ end=+"+ skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+ \ contains=ZinitIceDoubleQuoteParam
+syn region ZinitIceWithParam matchgroup=ZinitIce start=+\s\%(extract\|subst\|autoload\)"+ skip=+\\"+ end=+"+ skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+ \ contains=ZinitIceDoubleQuoteParam
+syn region ZinitIceWithParam matchgroup=ZinitIce start=+\s\%(wrap\|ps-on-unload\|ps-on-update\)"+ skip=+\\"+ end=+"+ skipwhite contained
+
+" zinit packages
+syn region ZinitIceWithParam matchgroup=ZinitIce start=+\s\%(param\)"+ skip=+\\"+ end=+"+ skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+ \ contains=ZinitIceDoubleQuoteParam
+
+" added by the existing annexes
+syn region ZinitIceWithParam matchgroup=ZinitIce start=+\s\%(fbin\|sbin\|gem\|node\|pip\|fmod\|fsrc\|ferc\)"+ skip=+\\"+ end=+"+ skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+ \ contains=ZinitIceDoubleQuoteParam
+syn region ZinitIceWithParam matchgroup=ZinitIce start=+\s\%(dl\|patch\|submods\|cargo\|dlink\|dlink0\)"+ skip=+\\"+ end=+"+ skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+ \ contains=ZinitIceDoubleQuoteParam
+
+syn match ZinitIceDoubleQuoteParam +[^"]*+ contained
+
+" ices that takes a param enclosed in '
+syn region ZinitIceWithParam matchgroup=ZinitIce start=+\s\%(proto\|from\|ver\|bpick\|depth\|cloneopts\|pullopts\)'+ skip=+\\'+ end=+'+ skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+ \ contains=ZinitIceSingleQuoteParam
+syn region ZinitIceWithParam matchgroup=ZinitIce start=+\s\%(pick\|src\|multisrc\)'+ skip=+\\'+ end=+'+ skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+ \ contains=ZinitIceSingleQuoteParam
+syn region ZinitIceWithParam matchgroup=ZinitIce start=+\s\%(wait\|load\|unload\|if\|has\|subscribe\|on-update-of\|trigger-load\)'+ skip=+\\'+ end=+'+ skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+ \ contains=ZinitIceSingleQuoteParam
+syn region ZinitIceWithParam matchgroup=ZinitIce start=+\s\%(mv\|cp\|atclone\|atpull\|atinit\|atload\|atdelete\|make\)'+ skip=+\\'+ end=+'+ skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+ \ contains=ZinitIceSingleQuoteParam
+syn region ZinitIceWithParam matchgroup=ZinitIce start=+\s\%(as\|id-as\|compile\|nocompile\|service\|bindmap\|wrap-track\)'+ skip=+\\'+ end=+'+ skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+ \ contains=ZinitIceSingleQuoteParam
+syn region ZinitIceWithParam matchgroup=ZinitIce start=+\s\%(extract\|subst\|autoload\)'+ skip=+\\'+ end=+'+ skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+ \ contains=ZinitIceSingleQuoteParam
+syn region ZinitIceWithParam matchgroup=ZinitIce start=+\s\%(wrap\|ps-on-unload\|ps-on-update\)'+ skip=+\\'+ end=+'+ skipwhite contained
+
+" zinit packages
+syn region ZinitIceWithParam matchgroup=ZinitIce start=+\s\%(param\)'+ skip=+\\'+ end=+'+ skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+ \ contains=ZinitIceSingleQuoteParam
+
+" added by the existing annexes
+syn region ZinitIceWithParam matchgroup=ZinitIce start=+\s\%(fbin\|sbin\|gem\|node\|pip\|fmod\|fsrc\|ferc\)'+ skip=+\\'+ end=+'+ skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+ \ contains=ZinitIceSingleQuoteParam
+syn region ZinitIceWithParam matchgroup=ZinitIce start=+\s\%(dl\|patch\|submods\|cargo\|dlink\|dlink0\)'+ skip=+\\'+ end=+'+ skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+ \ contains=ZinitIceSingleQuoteParam
+
+syn match ZinitIceSingleQuoteParam +[^']*+ contained
+
+" ices that doens't take a param
+syn match ZinitIce '\s\%(teleid\|svn\)\>'ms=s+1 skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+syn match ZinitIce '\s\%(wait\|cloneonly\)\>'ms=s+1 skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+syn match ZinitIce '\s\%(silent\|lucid\|notify\)\>'ms=s+1 skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+syn match ZinitIce '\s\%(blockf\|nocompletions\)\>'ms=s+1 skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+syn match ZinitIce '\s\%(run-atpull\|nocd\|make\|countdown\|reset\)\>'ms=s+1 skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+syn match ZinitIce '\s!\?\%(sh\|bash\|ksh\|csh\)\>'ms=s+1 skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+syn match ZinitIce '\s\%(id-as\|nocompile\|reset-prompt\|trackbinds\|aliases\|light-mode\)\>'ms=s+1 skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+syn match ZinitIce '\s\%(is-snippet\)\>'ms=s+1 skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+
+" ices that doens't take a param, from zinit packages
+syn match ZinitIce '\s\%(pack\|git\|null\)\>'ms=s+1 skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+
+" ices that doens't take a param, added by the existing annexes
+syn match ZinitIce '\s\%(notest\|rustup\|default-ice\|skip\|debug\)\>'ms=s+1 skipwhite contained
+ \ nextgroup=@ZinitLine,ZinitContinue
+
+" additional Zsh and zinit functions
+syn match ZshAndZinitFunctions '\<\%(compdef\|compinit\|zpcdreplay\|zpcdclear\|zpcompinit\|zpcompdef\)\>'
+
+" highlights
+hi def link ZinitCommand Statement
+hi def link ZinitCommand Title
+hi def link ZinitIceCommand Title
+hi def link ZinitPluginCommand Title
+hi def link ZinitSnippetCommand Title
+hi def link ZinitForCommand zshRepeat
+hi def link ZinitContinue Normal
+hi def link ZinitPlugin Macro
+hi def link ZinitSnippet Macro
+hi def link ZinitIce Type
+hi def link ZinitIceDoubleQuoteParam Special
+hi def link ZinitIceSingleQuoteParam Special
+hi def link ZshAndZinitFunctions Keyword
+