diff options
Diffstat (limited to 'queries/vim/highlights.scm')
| -rw-r--r-- | queries/vim/highlights.scm | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/queries/vim/highlights.scm b/queries/vim/highlights.scm new file mode 100644 index 000000000..e10983d4f --- /dev/null +++ b/queries/vim/highlights.scm @@ -0,0 +1,105 @@ +;; 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) + +[ (bang) (spread) ] @punctuation.special + +[ (no_option) (inv_option) (default_option) (option_name) ] @variable.builtin +[ (scope) "a:" ] @namespace + +(ternary_expression ["?" ":"] @conditional) + +;; Commands and user defined commands + +[ + "let" + "unlet" + "call" + "execute" + "normal" + "set" + "silent" + "echo" + "autocmd" + "return" + "lua" + "ruby" + "perl" + "python" +] @keyword +(command_name) @function.macro + +(au_event) @constant +(normal_statement (commands) @constant) + +;; Literals + +(string_literal) @string +(integer_literal) @number +(float_literal) @float +(comment) @comment +(pattern) @string.special + +;; Operators + +[ + "||" + "&&" + "+" + "-" + "*" + "/" + "%" + ".." + "is" + "isnot" + "==" + "!=" + ">" + ">=" + "<" + "<=" + "=~" + "!~" + "=" + "+=" + "-=" + "*=" + "/=" + "%=" + ".=" +] @operator + +; Some characters have different meanings based on the context +(unary_operation "!" @operator) +(binary_operation "." @operator) |
