1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-24 09:30:04 +08:00
SpaceVim/bundle/nvim-treesitter/queries/elm/highlights.scm

206 lines
3.6 KiB
Scheme

[
(line_comment)
(block_comment)
] @comment @spell
((block_comment) @comment.documentation
(#lua-match? @comment.documentation "^{[-]|[^|]"))
; Keywords
;---------
[
"if"
"then"
"else"
(case)
(of)
] @conditional
[
"let"
"in"
(as)
(port)
(alias)
(infix)
(module)
(type)
] @keyword
[
(import)
(exposing)
] @include
; Punctuation
;------------
[
(double_dot)
] @punctuation.special
[
","
"|"
(dot)
] @punctuation.delimiter
[
"("
")"
"{"
"}"
"["
"]"
] @punctuation.bracket
; Variables
;----------
(value_qid
(lower_case_identifier) @variable)
(value_declaration
(function_declaration_left (lower_case_identifier) @variable))
(type_annotation
(lower_case_identifier) @variable)
(port_annotation
(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
(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
target: (value_expr
(value_qid (lower_case_identifier) @function.call)))
; Operators
;----------
[
(operator_identifier)
(eq)
(colon)
(arrow)
(backslash)
"::"
] @operator
; Modules
;--------
(module_declaration
(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) @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))
(nullary_constructor_argument_pattern
(upper_case_qid (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) @boolean (#any-of? @boolean "True" "False")))
[
(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)