aboutsummaryrefslogtreecommitdiffstats
path: root/queries
diff options
context:
space:
mode:
authorAnanda Umamil <zweimach@zweimach.org>2023-01-01 03:22:36 +0700
committerStephan Seitz <stephan.seitz@fau.de>2023-01-01 15:30:10 +0100
commit4f3aa2af446ed31c9e8cd4ab7757883f825d448b (patch)
tree2043dc0b39b45621c1e0f99545e251395b715a71 /queries
parentindents(c): treat `"#ifndef"`, `"#elif"` like `"#ifdef"` (diff)
downloadnvim-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
Diffstat (limited to 'queries')
-rw-r--r--queries/elm/highlights.scm184
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)