diff options
author | Michael Davis | 2022-11-02 14:38:36 +0000 |
---|---|---|
committer | Blaž Hrastnik | 2022-11-24 02:07:05 +0000 |
commit | 5a1bed2b708f6874daa9f04b26b14b3106d2e447 (patch) | |
tree | a3cb88f566be4093407b97ef5892f6f9434de290 /runtime/queries/erlang/highlights.scm | |
parent | 452f7d071ceb57aad9da36473e6d2a0f0bedb462 (diff) |
Add parameter highlights to Erlang
This doesn't work robustly (within pattern matches). Only regular
bindings are highlighted as parameters. In order to highlight all
parameters even in matches, we would need an arbitrary nesting operator
in queries which doesn't exist yet in tree-sitter.
Diffstat (limited to 'runtime/queries/erlang/highlights.scm')
-rw-r--r-- | runtime/queries/erlang/highlights.scm | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/runtime/queries/erlang/highlights.scm b/runtime/queries/erlang/highlights.scm index 050fb613..3f4ef4cb 100644 --- a/runtime/queries/erlang/highlights.scm +++ b/runtime/queries/erlang/highlights.scm @@ -65,6 +65,37 @@ (function_capture module: (atom) @namespace) (function_capture function: (atom) @function) +; Ignored variables +((variable) @comment.discard + (#match? @comment.discard "^_")) + +; Parameters +; specs +((attribute + name: (atom) @keyword + (stab_clause + pattern: (arguments (variable) @variable.parameter) + body: (variable)? @variable.parameter)) + (#match? @keyword "(spec|callback)")) +; functions +(function_clause pattern: (arguments (variable) @variable.parameter)) +; anonymous functions +(stab_clause pattern: (arguments (variable) @variable.parameter)) +; parametric types +((attribute + name: (atom) @keyword + (arguments + (binary_operator + left: (call (arguments (variable) @variable.parameter)) + operator: "::"))) + (#match? @keyword "(type|opaque)")) +; macros +((attribute + name: (atom) @keyword + (arguments + (call (arguments (variable) @variable.parameter)))) + (#eq? @keyword "define")) + ; Records (record_content (binary_operator @@ -105,9 +136,6 @@ name: (_) @keyword.directive) ; Comments -((variable) @comment.discard - (#match? @comment.discard "^_")) - (tripledot) @comment.discard [(comment) (line_comment) (shebang)] @comment |