(identifier) @variable ((identifier) @constant (#lua-match? @constant "^[A-Z][A-Z_0-9]*$")) ;; Keywords [ "if" "else" "elseif" "endif" ] @conditional [ "try" "catch" "finally" "endtry" "throw" ] @exception [ "for" "endfor" "in" "while" "endwhile" ] @repeat [ "function" "endfunction" ] @keyword.function ;; Function related (function_declaration name: (_) @function) (call_expression function: (identifier) @function) (parameters (identifier) @parameter) (default_parameter (identifier) @parameter) [ (bang) (spread) (at) ] @punctuation.special [ (no_option) (inv_option) (default_option) (option_name) ] @variable.builtin [ (scope) "a:" "$" ] @namespace ;; Commands and user defined commands [ "let" "unlet" "call" "execute" "normal" "set" "setlocal" "silent" "echo" "echomsg" "autocmd" "augroup" "return" "syntax" "lua" "ruby" "perl" "python" "highlight" "delcommand" "comclear" "colorscheme" "startinsert" "stopinsert" "global" "runtime" "wincmd" ] @keyword (map_statement cmd: _ @keyword) (command_name) @function.macro ;; Syntax command (syntax_statement (keyword) @string) (syntax_statement [ "enable" "on" "off" "reset" "case" "spell" "foldlevel" "iskeyword" "keyword" "match" "cluster" "region" ] @keyword) (syntax_argument name: _ @keyword) [ "" "" "" "