diff options
| author | Ananda Umamil <zweimach@zweimach.org> | 2023-01-01 03:22:36 +0700 |
|---|---|---|
| committer | Stephan Seitz <stephan.seitz@fau.de> | 2023-01-01 15:30:10 +0100 |
| commit | 4f3aa2af446ed31c9e8cd4ab7757883f825d448b (patch) | |
| tree | 2043dc0b39b45621c1e0f99545e251395b715a71 | |
| parent | indents(c): treat `"#ifndef"`, `"#elif"` like `"#ifdef"` (diff) | |
| download | nvim-treesitter-4f3aa2af446ed31c9e8cd4ab7757883f825d448b.tar nvim-treesitter-4f3aa2af446ed31c9e8cd4ab7757883f825d448b.tar.gz nvim-treesitter-4f3aa2af446ed31c9e8cd4ab7757883f825d448b.tar.bz2 nvim-treesitter-4f3aa2af446ed31c9e8cd4ab7757883f825d448b.tar.lz nvim-treesitter-4f3aa2af446ed31c9e8cd4ab7757883f825d448b.tar.xz nvim-treesitter-4f3aa2af446ed31c9e8cd4ab7757883f825d448b.tar.zst nvim-treesitter-4f3aa2af446ed31c9e8cd4ab7757883f825d448b.zip | |
highlights(elm): improve highlights
| -rw-r--r-- | queries/elm/highlights.scm | 184 |
1 files changed, 143 insertions, 41 deletions
diff --git a/queries/elm/highlights.scm b/queries/elm/highlights.scm index 63514eb3e..61601c442 100644 --- a/queries/elm/highlights.scm +++ b/queries/elm/highlights.scm @@ -1,12 +1,18 @@ -[(line_comment) (block_comment)] @comment +[ + (line_comment) + (block_comment) +] @comment + ; Keywords +;--------- + [ - "if" - "then" - "else" - (case) - (of) + "if" + "then" + "else" + (case) + (of) ] @conditional [ @@ -14,18 +20,28 @@ "in" (as) (port) - (exposing) (alias) (infix) (module) + (type) ] @keyword [ + (import) + (exposing) +] @include + + +; Punctuation +;------------ + +[ (double_dot) - "|" ] @punctuation.special + [ "," + "|" (dot) ] @punctuation.delimiter @@ -34,65 +50,151 @@ ")" "{" "}" + "[" + "]" ] @punctuation.bracket + +; Variables +;---------- + +(value_qid + (lower_case_identifier) @variable) +(value_declaration + (function_declaration_left (lower_case_identifier) @variable)) (type_annotation - (lower_case_identifier) @function) + (lower_case_identifier) @variable) (port_annotation - (lower_case_identifier) @function) + (lower_case_identifier) @variable) +(anything_pattern + (underscore) @variable) +(record_base_identifier + (lower_case_identifier) @variable) +(lower_pattern + (lower_case_identifier) @variable) +(exposed_value + (lower_case_identifier) @variable) + +(value_qid + ((dot) (lower_case_identifier) @field)) +(field_access_expr + ((dot) (lower_case_identifier) @field)) + (function_declaration_left - (lower_case_identifier) @function) -(function_call_expr - target: (value_expr) @function) + (anything_pattern (underscore) @parameter)) +(function_declaration_left + (lower_pattern (lower_case_identifier) @parameter)) -(value_qid (upper_case_identifier) @constructor) -(value_qid ((dot) (lower_case_identifier) @field)) -(field_access_expr ((dot) (lower_case_identifier) @field)) -(lower_pattern) @parameter -(record_base_identifier) @method +; Functions +;---------- -[ - (backslash) - (underscore) -] @function +(value_declaration + functionDeclarationLeft: + (function_declaration_left + (lower_case_identifier) @function + (pattern))) +(value_declaration + functionDeclarationLeft: + (function_declaration_left + (lower_case_identifier) @function + pattern: (_))) +(value_declaration + functionDeclarationLeft: + (function_declaration_left + (lower_case_identifier) @function) + body: (anonymous_function_expr)) +(type_annotation + name: (lower_case_identifier) @function + typeExpression: (type_expression (arrow))) +(port_annotation + name: (lower_case_identifier) @function + typeExpression: (type_expression (arrow))) + +(function_call_expr + target: (value_expr + (value_qid (lower_case_identifier) @function.call))) + + +; Operators +;---------- [ (operator_identifier) (eq) (colon) (arrow) + (backslash) + "::" ] @operator -(import) @include -(number_constant_expr) @number - -(type) @keyword +; Modules +;-------- (module_declaration - (upper_case_qid (upper_case_identifier)) @constructor) + (upper_case_qid (upper_case_identifier) @namespace)) +(import_clause + (upper_case_qid (upper_case_identifier) @namespace)) +(as_clause + (upper_case_identifier) @namespace) +(value_expr + (value_qid (upper_case_identifier) @namespace)) + + +; Types +;------ + (type_declaration - (upper_case_identifier) @constructor) -(type_ref) @type + (upper_case_identifier) @type) +(type_ref + (upper_case_qid (upper_case_identifier) @type)) +(type_variable + (lower_case_identifier) @type) +(lower_type_name + (lower_case_identifier) @type) +(exposed_type + (upper_case_identifier) @type) + (type_alias_declaration - name: (upper_case_identifier) @type.definition) -(field_type name: - (lower_case_identifier) @property) + (upper_case_identifier) @type.definition) + +(field_type + name: (lower_case_identifier) @property) +(field + name: (lower_case_identifier) @property) -(union_variant - (upper_case_identifier) @symbol) -(union_pattern) @symbol +(type_declaration + (union_variant (upper_case_identifier) @constructor)) +(union_pattern + (upper_case_qid (upper_case_identifier) @constructor)) (value_expr - (upper_case_qid (upper_case_identifier)) @symbol) + (upper_case_qid (upper_case_identifier)) @constructor) -; strings -(string_escape) @string -(open_quote) @string -(close_quote) @string -(regular_string_part) @string + +; Literals +;--------- + +(number_constant_expr + (number_literal) @number) + +(upper_case_qid + ((upper_case_identifier) @_bool (#match? @_bool "(True|False)")) @boolean) + +[ + (open_quote) + (close_quote) +] @string +(string_constant_expr + (string_escape) @string) +(string_constant_expr + (regular_string_part) @string) [ (open_char) (close_char) ] @character +(char_constant_expr + (string_escape) @character) +(char_constant_expr + (regular_string_part) @character) |
