{ "fileTypes": [ "vim" ], "foldingStartMarker": "^(if|while|for|fu|function|try|augroup|aug)", "foldingStopMarker": "(endif|endwhile|endfor|endf|endfunction|endtry|augroup\\.END|aug\\.END)$", "name": "VimL", "patterns": [ { "include": "#comment" }, { "include": "#string_quoted_double" }, { "include": "#string_quoted_single" }, { "include": "#string_regex" }, { "include": "#inline_comment" }, { "include": "#number_int" }, { "include": "#number_hex" }, { "include": "#keyword" }, { "include": "#support_function" }, { "include": "#support_variable" }, { "include": "#support_type" }, { "include": "#function_params" }, { "include": "#function_definition" }, { "include": "#function_call" }, { "include": "#function" }, { "include": "#variable" }, { "include": "#expr" } ], "repository": { "comment": { "patterns": [ { "captures": { "1": { "name": "punctuation.definition.comment.vim" } }, "match": "^\\s*\".*$", "name": "comment.line.quotes.viml" } ] }, "expr": { "patterns": [ { "match": "(\\|\\||&&|==(\\?|#)?|(!|>|<)=(#|\\?)?|(=|!)~(#|\\?)?|(>|<)(#|\\?)is|isnot|\\.|\\*|\\\\|%)", "name": "storage.function.viml" } ] }, "function": { "patterns": [ { "match": "\\b(fu(n|nction)?|end(f|fu|fun|function)?)\\b", "name": "storage.function.viml" } ] }, "function_call": { "patterns": [ { "match": "(([sgbwtl]|)?:?[0-9a-zA-Z_#]+)(?=\\()", "name": "support.function.any-method" } ] }, "function_definition": { "begin": "^\\s*(function)\\s*!?\\s+(?=(s:)?[0-9a-zA-Z_#]+\\s*\\()", "beginCaptures": { "1": { "name": "storage.function.viml" } }, "end": "(\\()", "endCaptures": { "1": { "name": "punctuation.definition.parameters.begin.viml" } }, "name": "meta.function.viml", "patterns": [ { "match": "(s:)?[0-9a-zA-Z_#]+", "name": "entity.name.function.viml" } ] }, "function_params": { "patterns": [ { "match": "-\\w+=", "name": "support.type.viml" } ] }, "inline_comment": { "patterns": [ { "captures": { "1": { "name": "punctuation.definition.comment.vim" } }, "match": "(?!\\$)(\")(?!\\{).*$\\n?", "name": "comment.line.quotes.viml" } ] }, "keyword": { "patterns": [ { "match": "\\b(if|while|for|try|return|throw|end(if|for|while|try)?|au(g|group)|else(if|)?|do|in|catch|finally|:)\\b", "name": "keyword.control.viml" } ] }, "number_hex": { "patterns": [ { "match": "#[0-9a-f]{6}", "name": "constant.numeric.hex" } ] }, "number_int": { "patterns": [ { "match": "-?\\d+", "name": "constant.numeric.integer" } ] }, "string_quoted_double": { "patterns": [ { "match": "\"(\\\\\\\\|\\\\\"|\\n[^\\S\\n]*\\\\|[^\\n\"])*\"", "name": "string.quoted.double.viml" } ] }, "string_quoted_single": { "patterns": [ { "match": "'(''|\\n[^\\S\\n]*\\\\|[^\\n'])*'", "name": "string.quoted.single.viml" } ] }, "string_regex": { "patterns": [ { "match": "/(\\\\\\\\|\\\\/|\\n[^\\S\\n]*\\\\|[^\\n/])*/", "name": "string.regexp.viml" } ] }, "support_function": { "patterns": [ { "match": "\\b(set(local|global)?|let|command|filetype|colorscheme|\\w*map|\\w*a(b|brev)?|syn|exe(c|cute)?|ec(ho|)?|au(tocmd|)?)\\b", "name": "support.function.viml" } ] }, "support_type": { "patterns": [ { "match": "<.*?>", "name": "support.type.viml" } ] }, "support_variable": { "patterns": [ { "match": "\\b(am(enu|)?|(hl|inc)?search|[Bb]uf([Nn]ew[Ff]ile|[Rr]ead)?|[Ff]ile[Tt]ype)\\b", "name": "support.variable.viml" } ] }, "variable": { "patterns": [ { "match": "([sSgGbBwWlLaAvV]:|@|$|&(?!&))\\w*", "name": "variable.other.viml" } ] } }, "scopeName": "source.viml", "uuid": "0555180C-1AF8-4D94-9937-4434C2AE07E5" }