Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/queries/erlang/highlights.scm')
| -rw-r--r-- | runtime/queries/erlang/highlights.scm | 137 |
1 files changed, 65 insertions, 72 deletions
diff --git a/runtime/queries/erlang/highlights.scm b/runtime/queries/erlang/highlights.scm index 13b57e95..3f4ef4cb 100644 --- a/runtime/queries/erlang/highlights.scm +++ b/runtime/queries/erlang/highlights.scm @@ -1,58 +1,9 @@ -; Comments -(tripledot) @comment.unused - -[(comment) (line_comment) (shebang)] @comment - -; Basic types -(variable) @variable -(atom) @string.special.symbol -((atom) @constant.builtin.boolean - (#match? @constant.builtin.boolean "^(true|false)$")) -[(string) (sigil)] @string -(character) @constant.character -(escape_sequence) @constant.character.escape - -(integer) @constant.numeric.integer -(float) @constant.numeric.float - -; Punctuation -["," "." "-" ";"] @punctuation.delimiter -["(" ")" "#" "{" "}" "[" "]" "<<" ">>"] @punctuation.bracket - -; Operators -(binary_operator operator: _ @operator) -(unary_operator operator: _ @operator) -["/" ":" "->"] @operator - -(binary_operator - left: (atom) @function - operator: "/" - right: (integer) @constant.numeric.integer) - -((binary_operator operator: _ @keyword.operator) - (#match? @keyword.operator "^\\w+$")) -((unary_operator operator: _ @keyword.operator) - (#match? @keyword.operator "^\\w+$")) - -; Functions -(function_clause name: (atom) @function) -(call module: (atom) @namespace) -(call function: (atom) @function) -(stab_clause name: (atom) @function) -(function_capture module: (atom) @namespace) -(function_capture function: (atom) @function) - -; Keywords -(attribute name: (atom) @keyword) - -["case" "fun" "if" "of" "when" "end" "receive" "try" "catch" "after" "begin" "maybe"] @keyword - ; Attributes ; module declaration (attribute name: (atom) @keyword (arguments (atom) @namespace) - (#any-of? @keyword "module" "behaviour" "behavior")) + (#match? @keyword "(module|behaviou?r)")) (attribute name: (atom) @keyword @@ -99,37 +50,31 @@ name: (atom) @keyword (arguments (_) @keyword.directive) - (#any-of? @keyword "ifndef" "ifdef")) + (#match? @keyword "ifn?def")) (attribute name: (atom) @keyword module: (atom) @namespace - (#any-of? @keyword "spec" "callback")) - -(attribute - name: (atom) @keyword - (arguments [ - (string) - (sigil) - ] @comment.block.documentation) - (#any-of? @keyword "doc" "moduledoc")) + (#match? @keyword "(spec|callback)")) -; Macros -(macro - "?"+ @keyword.directive - name: (_) @keyword.directive) +; Functions +(function_clause name: (atom) @function) +(call module: (atom) @namespace) +(call function: (atom) @function) +(stab_clause name: (atom) @function) +(function_capture module: (atom) @namespace) +(function_capture function: (atom) @function) -(macro - "?"+ @constant - name: (_) @constant - !arguments) +; Ignored variables +((variable) @comment.discard + (#match? @comment.discard "^_")) ; Parameters ; specs ((attribute name: (atom) @keyword (stab_clause - pattern: (arguments (variable)? @variable.parameter) + pattern: (arguments (variable) @variable.parameter) body: (variable)? @variable.parameter)) (#match? @keyword "(spec|callback)")) ; functions @@ -160,6 +105,54 @@ (record field: (atom) @variable.other.member) (record name: (atom) @type) -; Ignored variables -((variable) @comment.unused - (#match? @comment.unused "^_")) +; Keywords +(attribute name: (atom) @keyword) + +["case" "fun" "if" "of" "when" "end" "receive" "try" "catch" "after" "begin" "maybe"] @keyword + +; Operators +(binary_operator + left: (atom) @function + operator: "/" + right: (integer) @constant.numeric.integer) + +((binary_operator operator: _ @keyword.operator) + (#match? @keyword.operator "^\\w+$")) +((unary_operator operator: _ @keyword.operator) + (#match? @keyword.operator "^\\w+$")) + +(binary_operator operator: _ @operator) +(unary_operator operator: _ @operator) +["/" ":" "->"] @operator + +; Macros +(macro + "?"+ @constant + name: (_) @constant + !arguments) + +(macro + "?"+ @keyword.directive + name: (_) @keyword.directive) + +; Comments +(tripledot) @comment.discard + +[(comment) (line_comment) (shebang)] @comment + +; Basic types +(variable) @variable +((atom) @constant.builtin.boolean + (#match? @constant.builtin.boolean "^(true|false)$")) +(atom) @string.special.symbol +(string) @string +(character) @constant.character + +(integer) @constant.numeric.integer +(float) @constant.numeric.float + +; Punctuation +["," "." "-" ";"] @punctuation.delimiter +["(" ")" "#" "{" "}" "[" "]" "<<" ">>"] @punctuation.bracket + +; (ERROR) @error |