PluginProbe
Code Block Pro – Beautiful Syntax Highlighting / 1.27.5
Code Block Pro – Beautiful Syntax Highlighting v1.27.5
1.27.1 1.27.2 1.27.3 1.27.4 1.27.5 1.27.6 1.27.7 1.28.0 1.3.0 1.4.0 1.5.0 1.5.1 1.5.2 1.6.0 1.7.0 1.8.0 1.9.0 1.9.1 1.9.2 1.9.3 trunk 1.1.0 1.10.0 1.11.0 1.11.1 All 63 releases
code-block-pro / build / shiki / languages / viml.tmLanguage.json

viml.tmLanguage.json in Code Block Pro – Beautiful Syntax Highlighting 1.27.5, at build/shiki/languages/viml.tmLanguage.json

442 lines 24.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 {
2 "repository": {
3 "commands": {
4 "patterns": [
5 {
6 "name": "storage.other.command.viml",
7 "match": "\\bcom(\\s|\\!)"
8 },
9 {
10 "name": "storage.other.command.viml",
11 "match": "\\bau(\\s|\\!)"
12 },
13 {
14 "name": "storage.other.command.bang.viml",
15 "match": "-bang"
16 },
17 {
18 "name": "storage.other.command.args.viml",
19 "match": "-nargs=[*+0-9]+"
20 },
21 {
22 "name": "storage.other.command.completion.viml",
23 "match": "-complete=\\S+"
24 },
25 {
26 "begin": "(aug(roup)?)",
27 "end": "(augroup\\sEND|$)",
28 "name": "support.function.augroup.viml"
29 }
30 ]
31 },
32 "comment": {
33 "patterns": [
34 {
35 "begin": "((\\s+)?\"\"\")",
36 "end": "^(?!\")",
37 "name": "comment.block.documentation.viml"
38 },
39 {
40 "match": "^\"\\svim:.*",
41 "name": "comment.block.modeline.viml"
42 },
43 {
44 "name": "comment.line.viml",
45 "begin": "(\\s+\"\\s+)(?!\")",
46 "end": "$",
47 "patterns": [
48 {
49 "match": "\\{\\{\\{\\d?$",
50 "name": "comment.line.foldmarker.viml"
51 },
52 {
53 "match": "\\}\\}\\}\\d?",
54 "name": "comment.line.foldmarker.viml"
55 }
56 ]
57 },
58 {
59 "name": "comment.line.viml",
60 "begin": "^(\\s+)?\"",
61 "end": "$",
62 "patterns": [
63 {
64 "match": "\\{\\{\\{\\d?$",
65 "name": "comment.line.foldmarker.viml"
66 },
67 {
68 "match": "\\}\\}\\}\\d?",
69 "name": "comment.line.foldmarker.viml"
70 }
71 ]
72 }
73 ]
74 },
75 "entity": {
76 "patterns": [
77 {
78 "name": "entity.name.function.viml",
79 "match": "(([absg]\\:)?[a-zA-Z0-9_#.]{2,})\\b(?=\\()"
80 }
81 ]
82 },
83 "map": {
84 "patterns": [
85 {
86 "begin": "(\\<)",
87 "beginCaptures": {
88 "1": {
89 "name": "punctuation.definition.map.viml"
90 }
91 },
92 "end": "(\\>|\\s)",
93 "endCaptures": {
94 "1": {
95 "name": "punctuation.definition.map.viml"
96 }
97 },
98 "patterns": [
99 {
100 "name": "constant.character.map.rhs.viml",
101 "match": "(?<=:\\s)(.+)"
102 },
103 {
104 "name": "constant.character.map.special.viml",
105 "match": "(?i:(bang|buffer|expr|nop|plug|sid|silent))"
106 },
107 {
108 "name": "constant.character.map.key.viml",
109 "match": "(?i:([adcms]-\\w))"
110 },
111 {
112 "name": "constant.character.map.key.fn.viml",
113 "match": "(?i:(F[0-9]+))"
114 },
115 {
116 "name": "constant.character.map.viml",
117 "match": "(?i:(bs|bar|cr|del|down|esc|left|right|space|tab|up|leader))"
118 }
119 ]
120 },
121 {
122 "name": "storage.type.map.viml",
123 "match": "(\\b([cinostvx]?(nore)?map)\\b)"
124 }
125 ]
126 },
127 "operators": {
128 "patterns": [
129 {
130 "name": "keyword.operator.viml",
131 "match": "([#+?!=~\\\\])"
132 },
133 {
134 "name": "keyword.operator.viml",
135 "match": " ([:\\-.]|[&|]{2})( |$)"
136 },
137 {
138 "name": "keyword.operator.viml",
139 "match": "([.]{3})"
140 },
141 {
142 "name": "keyword.operator.viml",
143 "match": "( [<>] )"
144 },
145 {
146 "name": "keyword.operator.viml",
147 "match": "(>=)"
148 }
149 ]
150 },
151 "option": {
152 "patterns": [
153 {
154 "name": "support.type.option.viml",
155 "match": "&?\\b(al|aleph|anti|antialias|arab|arabic|arshape|arabicshape|ari|allowrevins|akm|altkeymap|ambw|ambiwidth|acd|autochdir|ai|autoindent|ar|autoread|aw|autowrite|awa|autowriteall|bg|background|bs|backspace|bk|backup|bkc|backupcopy|bdir|backupdir|bex|backupext|bsk|backupskip|bdlay|balloondelay|beval|ballooneval|bevalterm|balloonevalterm|bexpr|balloonexpr|bo|belloff|bin|binary|bomb|brk|breakat|bri|breakindent|briopt|breakindentopt|bsdir|browsedir|bh|bufhidden|bl|buflisted|bt|buftype|cmp|casemap|cd|cdpath|cedit|ccv|charconvert|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|cb|clipboard|ch|cmdheight|cwh|cmdwinheight|cc|colorcolumn|co|columns|com|comments|cms|commentstring|cp|compatible|cpt|complete|cocu|concealcursor|cole|conceallevel|cfu|completefunc|cot|completeopt|cf|confirm|ci|copyindent|cpo|cpoptions|cm|cryptmethod|cspc|cscopepathcomp|csprg|cscopeprg|csqf|cscopequickfix|csre|cscoperelative|cst|cscopetag|csto|cscopetagorder|csverb|cscopeverbose|crb|cursorbind|cuc|cursorcolumn|cul|cursorline|debug|def|define|deco|delcombine|dict|dictionary|diff|dex|diffexpr|dip|diffopt|dg|digraph|dir|directory|dy|display|ead|eadirection|ed|edcompatible|emo|emoji|enc|encoding|eol|endofline|ea|equalalways|ep|equalprg|eb|errorbells|ef|errorfile|efm|errorformat|ek|esckeys|ei|eventignore|et|expandtab|ex|exrc|fenc|fileencoding|fencs|fileencodings|ff|fileformat|ffs|fileformats|fic|fileignorecase|ft|filetype|fcs|fillchars|fixeol|fixendofline|fk|fkmap|fcl|foldclose|fdc|foldcolumn|fen|foldenable|fde|foldexpr|fdi|foldignore|fdl|foldlevel|fdls|foldlevelstart|fmr|foldmarker|fdm|foldmethod|fml|foldminlines|fdn|foldnestmax|fdo|foldopen|fdt|foldtext|fex|formatexpr|fo|formatoptions|flp|formatlistpat|fp|formatprg|fs|fsync|gd|gdefault|gfm|grepformat|gp|grepprg|gcr|guicursor|gfn|guifont|gfs|guifontset|gfw|guifontwide|ghr|guiheadroom|go|guioptions|guipty|gtl|guitablabel|gtt|guitabtooltip|hf|helpfile|hh|helpheight|hlg|helplang|hid|hidden|hl|highlight|hi|history|hk|hkmap|hkp|hkmapp|hls|hlsearch|icon|iconstring|ic|ignorecase|imaf|imactivatefunc|imak|imactivatekey|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|imsf|imstatusfunc|imst|imstyle|inc|include|inex|includeexpr|is|incsearch|inde|indentexpr|indk|indentkeys|inf|infercase|im|insertmode|isf|isfname|isi|isident|isk|iskeyword|isp|isprint|js|joinspaces|key|kmp|keymap|km|keymodel|kp|keywordprg|lmap|langmap|lm|langmenu|lnr|langnoremap|lrm|langremap|ls|laststatus|lz|lazyredraw|lbr|linebreak|lines|lsp|linespace|lisp|lw|lispwords|list|lcs|listchars|lpl|loadplugins|luadll|macatsui|magic|mef|makeef|menc|makeencoding|mp|makeprg|mps|matchpairs|mat|matchtime|mco|maxcombine|mfd|maxfuncdepth|mmd|maxmapdepth|mm|maxmem|mmp|maxmempattern|mmt|maxmemtot|mis|menuitems|msm|mkspellmem|ml|modeline|mls|modelines|ma|modifiable|mod|modified|more|mouse|mousef|mousefocus|mh|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mzschemedll|mzschemegcdll|mzq|mzquantum|nf|nrformats|nu|number|nuw|numberwidth|ofu|omnifunc|odev|opendevice|opfunc|operatorfunc|pp|packpath|para|paragraphs|paste|pt|pastetoggle|pex|patchexpr|pm|patchmode|pa|path|perldll|pi|preserveindent|pvh|previewheight|pvw|previewwindow|pdev|printdevice|penc|printencoding|pexpr|printexpr|pfn|printfont|pheader|printheader|pmbcs|printmbcharset|pmbfn|printmbfont|popt|printoptions|prompt|ph|pumheight|pythonthreedll|pythondll|pyx|pyxversion|qe|quoteescape|ro|readonly|rdt|redrawtime|re|regexpengine|rnu|relativenumber|remap|rop|renderoptions|report|rs|restorescreen|ri|revins|rl|rightleft|rlc|rightleftcmd|rubydll|ru|ruler|ruf|rulerformat|rtp|runtimepath|scr|scroll|scb|scrollbind|sj|scrolljump|so|scrolloff|sbo|scrollopt|sect|sections|secure|sel|selection|slm|selectmode|ssop|sessionoptions|sh|shell|shcf|shellcmdflag|sp|shellpipe|shq|shellquote|srr|shellredir|ssl|shellslash|stmp|shelltemp|st|shelltype|sxq|shellxquote|sxe|shellxescape|sr|shiftround|sw|shiftwidth|shm|shortmess|sn|shortname|sbr|showbreak|sc|showcmd|sft|showfulltag|sm|showmatch|smd|showmode|stal|showtabline|ss|sidescroll|siso|sidescrolloff|scl|signcolumn|scs|smartcase|si|smartindent|sta|smarttab|sts|softtabstop|spell|spc|spellcapcheck|spf|spellfile|spl|spelllang|sps|spellsuggest|sb|splitbelow|spr|splitright|sol|startofline|stl|statusline|su|suffixes|sua|suffixesadd|swf|swapfile|sws|swapsync|swb|switchbuf|smc|synmaxcol|syn|syntax|tal|tabline|tpm|tabpagemax|ts|tabstop|tbs|tagbsearch|tc|tagcase|tl|taglength|tr|tagrelative|tag|tags|tgst|tagstack|tcldll|term|tbidi|termbidi|tenc|termencoding|tgc|termguicolors|tk|termkey|tms|termsize|terse|ta|textauto|tx|textmode|tw|textwidth|tsr|thesaurus|top|tildeop|to|timeout|tm|timeoutlen|title|titlelen|titleold|titlestring|tb|toolbar|tbis|toolbariconsize|ttimeout|ttm|ttimeoutlen|tbi|ttybuiltin|tf|ttyfast|ttym|ttymouse|tsl|ttyscroll|tty|ttytype|udir|undodir|udf|undofile|ul|undolevels|ur|undoreload|uc|updatecount|ut|updatetime|vbs|verbose|vfile|verbosefile|vdir|viewdir|vop|viewoptions|vi|viminfo|vif|viminfofile|ve|virtualedit|vb|visualbell|warn|wiv|weirdinvert|ww|whichwrap|wc|wildchar|wcm|wildcharm|wig|wildignore|wic|wildignorecase|wmnu|wildmenu|wim|wildmode|wop|wildoptions|wak|winaltkeys|wi|window|wh|winheight|wfh|winfixheight|wfw|winfixwidth|wmh|winminheight|wmw|winminwidth|winptydll|wiw|winwidth|wrap|wm|wrapmargin|ws|wrapscan|write|wa|writeany|wb|writebackup|wd|writedelay)\\b"
156 },
157 {
158 "name": "support.type.option.viml",
159 "match": "&?\\b(aleph|allowrevins|altkeymap|ambiwidth|autochdir|arabic|arabicshape|autoindent|autoread|autowrite|autowriteall|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|belloff|binary|bomb|breakat|breakindent|breakindentopt|browsedir|bufhidden|buflisted|buftype|casemap|cdpath|cedit|charconvert|cindent|cinkeys|cinoptions|cinwords|clipboard|cmdheight|cmdwinheight|colorcolumn|columns|comments|commentstring|complete|completefunc|completeopt|concealcursor|conceallevel|confirm|copyindent|cpoptions|cscopepathcomp|cscopeprg|cscopequickfix|cscoperelative|cscopetag|cscopetagorder|cscopeverbose|cursorbind|cursorcolumn|cursorline|debug|define|delcombine|dictionary|diff|diffexpr|diffopt|digraph|directory|display|eadirection|encoding|endofline|equalalways|equalprg|errorbells|errorfile|errorformat|eventignore|expandtab|exrc|fileencoding|fileencodings|fileformat|fileformats|fileignorecase|filetype|fillchars|fixendofline|fkmap|foldclose|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldopen|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fsync|gdefault|grepformat|grepprg|guicursor|guifont|guifontset|guifontwide|guioptions|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hidden|hlsearch|history|hkmap|hkmapp|icon|iconstring|ignorecase|imcmdline|imdisable|iminsert|imsearch|include|includeexpr|incsearch|indentexpr|indentkeys|infercase|insertmode|isfname|isident|iskeyword|isprint|joinspaces|keymap|keymodel|keywordprg|langmap|langmenu|langremap|laststatus|lazyredraw|linebreak|lines|linespace|lisp|lispwords|list|listchars|loadplugins|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|menuitems|mkspellmem|modeline|modelines|modifiable|modified|more|mouse|mousefocus|mousehide|mousemodel|mouseshape|mousetime|nrformats|number|numberwidth|omnifunc|opendevice|operatorfunc|packpath|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|perldll|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pumheight|pythondll|pythonthreedll|quoteescape|readonly|redrawtime|regexpengine|relativenumber|remap|report|revins|rightleft|rightleftcmd|rubydll|ruler|rulerformat|runtimepath|scroll|scrollbind|scrolljump|scrolloff|scrollopt|sections|secure|selection|selectmode|sessionoptions|shada|shell|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shellxescape|shellxquote|shiftround|shiftwidth|shortmess|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|sidescroll|sidescrolloff|signcolumn|smartcase|smartindent|smarttab|softtabstop|spell|spellcapcheck|spellfile|spelllang|spellsuggest|splitbelow|splitright|startofline|statusline|suffixes|suffixesadd|swapfile|switchbuf|synmaxcol|syntax|tabline|tabpagemax|tabstop|tagbsearch|tagcase|taglength|tagrelative|tags|tagstack|term|termbidi|terse|textwidth|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|ttimeout|ttimeoutlen|ttytype|undodir|undofile|undolevels|undoreload|updatecount|updatetime|verbose|verbosefile|viewdir|viewoptions|virtualedit|visualbell|warn|whichwrap|wildchar|wildcharm|wildignore|wildignorecase|wildmenu|wildmode|wildoptions|winaltkeys|window|winheight|winfixheight|winfixwidth|winminheight|winminwidth|winwidth|wrap|wrapmargin|wrapscan|write|writeany|writebackup|writedelay)\\b"
160 },
161 {
162 "name": "support.type.option.shortname.viml",
163 "match": "&?\\b(al|ari|akm|ambw|acd|arab|arshape|ai|ar|aw|awa|bg|bs|bk|bkc|bdir|bex|bsk|bdlay|beval|bexpr|bo|bin|bomb|brk|bri|briopt|bsdir|bh|bl|bt|cmp|cd|cedit|ccv|cin|cink|cino|cinw|cb|ch|cwh|cc|co|com|cms|cpt|cfu|cot|cocu|cole|cf|ci|cpo|cspc|csprg|csqf|csre|cst|csto|cpo|crb|cuc|cul|debug|def|deco|dict|diff|dex|dip|dg|dir|dy|ead|enc|eol|ea|ep|eb|ef|efm|ei|et|ex|fenc|fencs|ff|ffs|fic|ft|fcs|fixeol|fk|fcl|fdc|fen|fde|fdi|fdl|fdls|fmr|fdm|fml|fdn|fdo|fdt|fex|flp|fo|fp|fs|gd|gfm|gp|gcr|gfn|gfs|gfw|go|gtl|gtt|hf|hh|hlg|hid|hls|hi|hk|hkp|icon|iconstring|ic|imc|imd|imi|ims|inc|inex|is|inde|indk|inf|im|isf|isi|isk|isp|js|kmp|km|kp|lmap|lm|lrm|ls|lz|lbr|lines|lsp|lisp|lw|list|lcs|lpl|magic|mef|mp|mps|mat|mco|mfd|mmd|mm|mmp|mmt|mis|msm|ml|mls|ma|mod|more|mouse|mousef|mh|mousem|mouses|mouset|nf|nu|nuw|ofu|odev|opfunc|pp|para|paste|pt|pex|pm|pa|perldll|pi|pvh|pvw|pdev|penc|pexpr|pfn|pheader|pmbcs|pmbfn|popt|prompt|ph|pythondll|pythonthreedlll|qe|ro|rdt|re|rnu|remap|report|ri|rl|rlc|rubydll|ru|ruf|rtp|scr|scb|sj|so|sbo|sect|secure|sel|slm|ssop|sd|sh|shcf|sp|shq|srr|ssl|stmp|sxe|sxq|sr|sw|shm|sbr|sc|sft|sm|smd|stal|ss|siso|scl|scs|si|sta|sts|spell|spc|spf|spl|sps|sb|spr|sol|stl|su|sua|swf|swb|smc|syn|tal|tpm|ts|tbs|tc|tl|tr|tag|tgst|term|tbidi|terse|tw|tsr|top|to|tm|title|titlelen|titleold|titlestring|ttimeout|ttm|tty|udir|udf|ul|ur|uc|ut|vbs|vfile|vdir|vop|ve|vb|warn|ww|wc|wcm|wig|wic|wmnu|wim|wop|wak|wi|wh|wfh|wfw|wmh|wmw|wiw|wrap|wm|ws|write|wa|wb|wd)\\b"
164 },
165 {
166 "name": "support.type.option.off.viml",
167 "match": "\\b(noanti|noantialias|noarab|noarabic|noarshape|noarabicshape|noari|noallowrevins|noakm|noaltkeymap|noacd|noautochdir|noai|noautoindent|noar|noautoread|noaw|noautowrite|noawa|noautowriteall|nobk|nobackup|nobeval|noballooneval|nobevalterm|noballoonevalterm|nobin|nobinary|nobomb|nobri|nobreakindent|nobl|nobuflisted|nocin|nocindent|nocp|nocompatible|nocf|noconfirm|noci|nocopyindent|nocsre|nocscoperelative|nocst|nocscopetag|nocsverb|nocscopeverbose|nocrb|nocursorbind|nocuc|nocursorcolumn|nocul|nocursorline|nodeco|nodelcombine|nodiff|nodg|nodigraph|noed|noedcompatible|noemo|noemoji|noeol|noendofline|noea|noequalalways|noeb|noerrorbells|noek|noesckeys|noet|noexpandtab|noex|noexrc|nofic|nofileignorecase|nofixeol|nofixendofline|nofk|nofkmap|nofen|nofoldenable|nofs|nofsync|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkp|nohkmapp|nohls|nohlsearch|noicon|noic|noignorecase|noimc|noimcmdline|noimd|noimdisable|nois|noincsearch|noinf|noinfercase|noim|noinsertmode|nojs|nojoinspaces|nolnr|nolangnoremap|nolrm|nolangremap|nolz|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|nolpl|noloadplugins|nomacatsui|nomagic|noml|nomodeline|noma|nomodifiable|nomod|nomodified|nomore|nomousef|nomousefocus|nomh|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopvw|nopreviewwindow|noprompt|noro|noreadonly|nornu|norelativenumber|nors|norestorescreen|nori|norevins|norl|norightleft|noru|noruler|noscb|noscrollbind|nosecure|nossl|noshellslash|nostmp|noshelltemp|nosr|noshiftround|nosn|noshortname|nosc|noshowcmd|nosft|noshowfulltag|nosm|noshowmatch|nosmd|noshowmode|noscs|nosmartcase|nosi|nosmartindent|nosta|nosmarttab|nospell|nosb|nosplitbelow|nospr|nosplitright|nosol|nostartofline|noswf|noswapfile|notbs|notagbsearch|notr|notagrelative|notgst|notagstack|notbidi|notermbidi|notgc|notermguicolors|noterse|nota|notextauto|notx|notextmode|notop|notildeop|noto|notimeout|notitle|nottimeout|notbi|nottybuiltin|notf|nottyfast|noudf|noundofile|novb|novisualbell|nowarn|nowiv|noweirdinvert|nowic|nowildignorecase|nowmnu|nowildmenu|nowfh|nowinfixheight|nowfw|nowinfixwidth|nowrapscan|nowrap|nows|nowrite|nowa|nowriteany|nowb|nowritebackup)\\b"
168 }
169 ]
170 },
171 "punctuation": {
172 "patterns": [
173 {
174 "name": "punctuation.parens.viml",
175 "match": "([()])"
176 },
177 {
178 "name": "punctuation.comma.viml",
179 "match": "([,])"
180 }
181 ]
182 },
183 "strings": {
184 "patterns": [
185 {
186 "name": "string.quoted.double.viml",
187 "begin": "\"",
188 "end": "(\"|$)",
189 "patterns": []
190 },
191 {
192 "name": "string.quoted.single.viml",
193 "begin": "'",
194 "end": "('|$)",
195 "patterns": []
196 },
197 {
198 "match": "/(\\\\\\\\|\\\\/|[^\\n/])*/",
199 "name": "string.regexp.viml"
200 }
201 ]
202 },
203 "support": {
204 "patterns": [
205 {
206 "name": "support.function.viml",
207 "match": "(add|call|delete|empty|extend|get|has|isdirectory|join|printf)(?=\\()"
208 },
209 {
210 "name": "support.function.viml",
211 "match": "\\b(echo(m|hl)?|exe(cute)?|redir|redraw|sleep|so(urce)?|wincmd|setf)\\b"
212 },
213 {
214 "name": "support.type.builtin.vim-variable.viml",
215 "match": "(v\\:(beval_col|beval_bufnr|beval_lnum|beval_text|beval_winnr|char|charconvert_from|charconvert_to|cmdarg|cmdbang|count|count1|ctype|dying|errmsg|exception|fcs_reason|fcs_choice|fname_in|fname_out|fname_new|fname_diff|folddashes|foldlevel|foldend|foldstart|insertmode|key|lang|lc_time|lnum|mouse_win|mouse_lnum|mouse_col|oldfiles|operator|prevcount|profiling|progname|register|scrollstart|servername|searchforward|shell_error|statusmsg|swapname|swapchoice|swapcommand|termresponse|this_session|throwpoint|val|version|warningmsg|windowid))"
216 },
217 {
218 "name": "support.type.builtin.viml",
219 "match": "(&(cpo|isk|omnifunc|paste|previewwindow|rtp|tags|term|wrap))"
220 },
221 {
222 "name": "support.type.builtin.viml",
223 "match": "(&(shell(cmdflag|redir)?))"
224 },
225 {
226 "name": "support.variable.args.viml",
227 "match": "\\<args\\>"
228 },
229 {
230 "name": "support.type.syntax.viml",
231 "match": "\\b(None|ErrorMsg|WarningMsg)\\b"
232 },
233 {
234 "name": "support.type.event.viml",
235 "match": "\\b(BufNewFile|BufReadPre|BufRead|BufReadPost|BufReadCmd|FileReadPre|FileReadPost|FileReadCmd|FilterReadPre|FilterReadPost|StdinReadPre|StdinReadPost|BufWrite|BufWritePre|BufWritePost|BufWriteCmd|FileWritePre|FileWritePost|FileWriteCmd|FileAppendPre|FileAppendPost|FileAppendCmd|FilterWritePre|FilterWritePost|BufAdd|BufCreate|BufDelete|BufWipeout|BufFilePre|BufFilePost|BufEnter|BufLeave|BufWinEnter|BufWinLeave|BufUnload|BufHidden|BufNew|SwapExists|TermOpen|TermClose|FileType|Syntax|OptionSet|VimEnter|GUIEnter|GUIFailed|TermResponse|QuitPre|VimLeavePre|VimLeave|DirChanged|FileChangedShell|FileChangedShellPost|FileChangedRO|ShellCmdPost|ShellFilterPost|CmdUndefined|FuncUndefined|SpellFileMissing|SourcePre|SourceCmd|VimResized|FocusGained|FocusLost|CursorHold|CursorHoldI|CursorMoved|CursorMovedI|WinNew|WinEnter|WinLeave|TabEnter|TabLeave|TabNew|TabNewEntered|TabClosed|CmdlineEnter|CmdlineLeave|CmdwinEnter|CmdwinLeave|InsertEnter|InsertChange|InsertLeave|InsertCharPre|TextYankPost|TextChanged|TextChangedI|ColorScheme|RemoteReply|QuickFixCmdPre|QuickFixCmdPost|SessionLoadPost|MenuPopup|CompleteDone|User)\\b"
236 },
237 {
238 "name": "support.type.syntax-group.viml",
239 "match": "\\b(Comment|Constant|String|Character|Number|Boolean|Float|Identifier|Function|Statement|Conditional|Repeat|Label|Operator|Keyword|Exception|PreProc|Include|Define|Macro|PreCondit|Type|StorageClass|Structure|Typedef|Special|SpecialChar|Tag|Delimiter|SpecialComment|Debug|Underlined|Ignore|Error|Todo)\\b"
240 }
241 ]
242 },
243 "syntax": {
244 "patterns": [
245 {
246 "name": "keyword.control.syntax.viml",
247 "match": "syn(tax)? case (ignore|match)"
248 },
249 {
250 "name": "keyword.control.syntax.viml",
251 "match": "syn(tax)? (clear|enable|include|off|on|manual|sync)"
252 },
253 {
254 "name": "keyword.other.syntax.viml",
255 "match": "\\b(contained|display|excludenl|fold|keepend|oneline|skipnl|skipwhite|transparent)\\b"
256 },
257 {
258 "name": "keyword.other.syntax.viml",
259 "match": "\\b(add|containedin|contains|matchgroup|nextgroup)\\="
260 },
261 {
262 "captures": {
263 "1": {
264 "name": "keyword.other.syntax-range.viml"
265 },
266 "3": {
267 "name": "string.regexp.viml"
268 }
269 },
270 "match": "((start|skip|end)\\=)(\\+\\S+\\+\\s)?"
271 },
272 {
273 "captures": {
274 "0": {
275 "name": "support.type.syntax.viml"
276 },
277 "1": {
278 "name": "storage.syntax.viml"
279 },
280 "3": {
281 "name": "variable.other.syntax-scope.viml"
282 },
283 "4": {
284 "name": "storage.modifier.syntax.viml"
285 }
286 },
287 "match": "(syn|syntax)\\s+(cluster|keyword|match|region)(\\s+\\w+\\s+)(contained)?",
288 "patterns": []
289 },
290 {
291 "captures": {
292 "1": {
293 "name": "storage.highlight.viml"
294 },
295 "2": {
296 "name": "storage.modifier.syntax.viml"
297 },
298 "3": {
299 "name": "support.function.highlight.viml"
300 },
301 "4": {
302 "name": "variable.other.viml"
303 },
304 "5": {
305 "name": "variable.other.viml"
306 }
307 },
308 "match": "(hi|highlight)(?:\\s+)(def|default)(?:\\s+)(link)(?:\\s+)(\\w+)(?:\\s+)(\\w+)",
309 "patterns": []
310 }
311 ]
312 },
313 "keyword": {
314 "patterns": [
315 {
316 "name": "keyword.control.viml",
317 "match": "\\b(if|while|for|return|au(g|group)|else(if|)?|do|in)\\b"
318 },
319 {
320 "name": "keyword.control.viml",
321 "match": "\\b(end|endif|endfor|endwhile)\\s|$"
322 },
323 {
324 "name": "keyword.control.viml",
325 "match": "\\b(break|continue|try|catch|endtry|finally|finish|throw|range)\\b"
326 },
327 {
328 "name": "keyword.function.viml",
329 "match": "\\b(fun|func|function|endfunction|endfunc)\\b"
330 },
331 {
332 "name": "keyword.other.viml",
333 "match": "\\b(normal|silent)\\b"
334 },
335 {
336 "include": "#operators"
337 }
338 ]
339 },
340 "storage": {
341 "patterns": [
342 {
343 "match": "\\b(call|let|unlet)\\b",
344 "name": "storage.viml"
345 },
346 {
347 "match": "\\b(abort|autocmd)\\b",
348 "name": "storage.viml"
349 },
350 {
351 "match": "\\b(set(l|local)?)\\b",
352 "name": "storage.viml"
353 },
354 {
355 "match": "\\b(com(mand)?)\\b",
356 "name": "storage.viml"
357 },
358 {
359 "match": "\\b(color(scheme)?)\\b",
360 "name": "storage.viml"
361 },
362 {
363 "match": "\\b(Plug|Plugin)\\b",
364 "name": "storage.plugin.viml"
365 }
366 ]
367 },
368 "variable": {
369 "patterns": [
370 {
371 "name": "variable.other.link.viml",
372 "match": "https?://\\S+"
373 },
374 {
375 "name": "variable.parameter.viml",
376 "match": "(?<=\\()([a-zA-Z]+)(?=\\))"
377 },
378 {
379 "name": "variable.other.viml",
380 "match": "\\b([absgl]:[a-zA-Z0-9_.#]+)\\b(?!\\()"
381 }
382 ]
383 },
384 "constant": {
385 "patterns": [
386 {
387 "name": "constant.language.boolean.viml",
388 "match": "\\b(true|false)\\b"
389 },
390 {
391 "name": "constant.numeric.viml",
392 "match": "\\b([0-9]+)\\b"
393 }
394 ]
395 }
396 },
397 "$schema": "https://raw.githubusercontent.com/dunstontc/textmate/master/schema/tmLanguage.schema.json",
398 "name": "viml",
399 "scopeName": "source.viml",
400 "patterns": [
401 {
402 "include": "#comment"
403 },
404 {
405 "include": "#constant"
406 },
407 {
408 "include": "#entity"
409 },
410 {
411 "include": "#keyword"
412 },
413 {
414 "include": "#punctuation"
415 },
416 {
417 "include": "#storage"
418 },
419 {
420 "include": "#strings"
421 },
422 {
423 "include": "#support"
424 },
425 {
426 "include": "#variable"
427 },
428 {
429 "include": "#syntax"
430 },
431 {
432 "include": "#commands"
433 },
434 {
435 "include": "#option"
436 },
437 {
438 "include": "#map"
439 }
440 ]
441 }
442