diff options
Diffstat (limited to 'runtime/queries/elixir')
-rw-r--r-- | runtime/queries/elixir/highlights.scm | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/runtime/queries/elixir/highlights.scm b/runtime/queries/elixir/highlights.scm new file mode 100644 index 00000000..b9ec0210 --- /dev/null +++ b/runtime/queries/elixir/highlights.scm @@ -0,0 +1,146 @@ +["when" "and" "or" "not in" "not" "in" "fn" "do" "end" "catch" "rescue" "after" "else"] @keyword + +[(true) (false) (nil)] @constant.builtin + +(keyword + [(keyword_literal) + ":"] @tag) + +(keyword + (keyword_string + [(string_start) + (string_content) + (string_end)] @tag)) + +[(atom_literal) + (atom_start) + (atom_content) + (atom_end)] @tag + +(comment) @comment + +(escape_sequence) @escape + +(call function: (function_identifier) @keyword + (#match? @keyword "^(defmodule|defexception|defp|def|with|case|cond|raise|import|require|use|defmacrop|defmacro|defguardp|defguard|defdelegate|defstruct|alias|defimpl|defprotocol|defoverridable|receive|if|for|try|throw|unless|reraise|super|quote|unquote|unquote_splicing)$")) + +(call function: (function_identifier) @keyword + [(call + function: (function_identifier) @function + (arguments + [(identifier) @variable.parameter + (_ (identifier) @variable.parameter) + (_ (_ (identifier) @variable.parameter)) + (_ (_ (_ (identifier) @variable.parameter))) + (_ (_ (_ (_ (identifier) @variable.parameter)))) + (_ (_ (_ (_ (_ (identifier) @variable.parameter)))))])) + (binary_op + left: + (call + function: (function_identifier) @function + (arguments + [(identifier) @variable.parameter + (_ (identifier) @variable.parameter) + (_ (_ (identifier) @variable.parameter)) + (_ (_ (_ (identifier) @variable.parameter))) + (_ (_ (_ (_ (identifier) @variable.parameter)))) + (_ (_ (_ (_ (_ (identifier) @variable.parameter)))))])) + operator: "when") + (binary_op + left: (identifier) @variable.parameter + operator: _ @function + right: (identifier) @variable.parameter)] + (#match? @keyword "^(defp|def|defmacrop|defmacro|defguardp|defguard|defdelegate)$") + (#match? @variable.parameter "^[^_]")) + +(call (function_identifier) @keyword + [(call + function: (function_identifier) @function) + (identifier) @function + (binary_op + left: + [(call + function: (function_identifier) @function) + (identifier) @function] + operator: "when")] + (#match? @keyword "^(defp|def|defmacrop|defmacro|defguardp|defguard|defdelegate)$")) + +(anonymous_function + (stab_expression + left: (bare_arguments + [(identifier) @variable.parameter + (_ (identifier) @variable.parameter) + (_ (_ (identifier) @variable.parameter)) + (_ (_ (_ (identifier) @variable.parameter))) + (_ (_ (_ (_ (identifier) @variable.parameter)))) + (_ (_ (_ (_ (_ (identifier) @variable.parameter)))))])) + (#match? @variable.parameter "^[^_]")) + +(unary_op + operator: "@" + (call (identifier) @attribute + (heredoc + [(heredoc_start) + (heredoc_content) + (heredoc_end)] @doc)) + (#match? @attribute "^(doc|moduledoc)$")) + +(module) @type + +(unary_op + operator: "@" @attribute + [(call + function: (function_identifier) @attribute) + (identifier) @attribute]) + +(unary_op + operator: _ @operator) + +(binary_op + operator: _ @operator) + +(heredoc + [(heredoc_start) + (heredoc_content) + (heredoc_end)] @string) + +(string + [(string_start) + (string_content) + (string_end)] @string) + +(sigil_start) @string.special +(sigil_content) @string +(sigil_end) @string.special + +(interpolation + "#{" @punctuation.special + "}" @punctuation.special) + +[ + "," + "->" + "." +] @punctuation.delimiter + +[ + "(" + ")" + "[" + "]" + "{" + "}" + "<<" + ">>" +] @punctuation.bracket + +[(identifier) @function.special + (#match? @function.special "^__.+__$")] + +[(remote_identifier) @function.special + (#match? @function.special "^__.+__$")] + +[(identifier) @comment + (#match? @comment "^_")] + +(ERROR) @warning |