highlights(elm): improve highlights

This commit is contained in:
Ananda Umamil 2023-01-01 03:22:36 +07:00 committed by Stephan Seitz
parent b019eb3032
commit 4f3aa2af44

View file

@ -1,12 +1,18 @@
[(line_comment) (block_comment)] @comment [
(line_comment)
(block_comment)
] @comment
; Keywords ; Keywords
;---------
[ [
"if" "if"
"then" "then"
"else" "else"
(case) (case)
(of) (of)
] @conditional ] @conditional
[ [
@ -14,18 +20,28 @@
"in" "in"
(as) (as)
(port) (port)
(exposing)
(alias) (alias)
(infix) (infix)
(module) (module)
(type)
] @keyword ] @keyword
[
(import)
(exposing)
] @include
; Punctuation
;------------
[ [
(double_dot) (double_dot)
"|"
] @punctuation.special ] @punctuation.special
[ [
"," ","
"|"
(dot) (dot)
] @punctuation.delimiter ] @punctuation.delimiter
@ -34,65 +50,151 @@
")" ")"
"{" "{"
"}" "}"
"["
"]"
] @punctuation.bracket ] @punctuation.bracket
; Variables
;----------
(value_qid
(lower_case_identifier) @variable)
(value_declaration
(function_declaration_left (lower_case_identifier) @variable))
(type_annotation (type_annotation
(lower_case_identifier) @function) (lower_case_identifier) @variable)
(port_annotation (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 (function_declaration_left
(lower_case_identifier) @function) (anything_pattern (underscore) @parameter))
(function_declaration_left
(lower_pattern (lower_case_identifier) @parameter))
; Functions
;----------
(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 (function_call_expr
target: (value_expr) @function) target: (value_expr
(value_qid (lower_case_identifier) @function.call)))
(value_qid (upper_case_identifier) @constructor)
(value_qid ((dot) (lower_case_identifier) @field))
(field_access_expr ((dot) (lower_case_identifier) @field))
(lower_pattern) @parameter ; Operators
(record_base_identifier) @method ;----------
[
(backslash)
(underscore)
] @function
[ [
(operator_identifier) (operator_identifier)
(eq) (eq)
(colon) (colon)
(arrow) (arrow)
(backslash)
"::"
] @operator ] @operator
(import) @include
(number_constant_expr) @number ; Modules
;--------
(type) @keyword
(module_declaration (module_declaration
(upper_case_qid (upper_case_identifier)) @constructor) (upper_case_qid (upper_case_identifier) @namespace))
(type_declaration (import_clause
(upper_case_identifier) @constructor) (upper_case_qid (upper_case_identifier) @namespace))
(type_ref) @type (as_clause
(type_alias_declaration (upper_case_identifier) @namespace)
name: (upper_case_identifier) @type.definition)
(field_type name:
(lower_case_identifier) @property)
(union_variant
(upper_case_identifier) @symbol)
(union_pattern) @symbol
(value_expr (value_expr
(upper_case_qid (upper_case_identifier)) @symbol) (value_qid (upper_case_identifier) @namespace))
; strings
(string_escape) @string ; Types
(open_quote) @string ;------
(close_quote) @string
(regular_string_part) @string (type_declaration
(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
(upper_case_identifier) @type.definition)
(field_type
name: (lower_case_identifier) @property)
(field
name: (lower_case_identifier) @property)
(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)) @constructor)
; 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) (open_char)
(close_char) (close_char)
] @character ] @character
(char_constant_expr
(string_escape) @character)
(char_constant_expr
(regular_string_part) @character)