1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-03 10:10:04 +08:00
SpaceVim/bundle/nvim-treesitter/queries/gleam/highlights.scm

173 lines
2.5 KiB
Scheme

; Keywords
[
"as"
"let"
"panic"
"todo"
"type"
"use"
] @keyword
; Function Keywords
[
"fn"
] @keyword.function
; Imports
[
"import"
] @include
; Conditionals
[
"case"
"if"
] @conditional
; Exceptions
[
"assert"
] @exception
; Punctuation
[
"("
")"
"<<"
">>"
"["
"]"
"{"
"}"
] @punctuation.bracket
[
","
"."
":"
"->"
] @punctuation.delimiter
[
"#"
] @punctuation.special
; Operators
[
"%"
"&&"
"*"
"*."
"+"
"+."
"-"
"-."
".."
"/"
"/."
"<"
"<."
"<="
"<=."
"="
"=="
">"
">."
">="
">=."
"|>"
"||"
] @operator
; Identifiers
(identifier) @variable
; Comments
[
(comment)
] @comment @spell
[
(module_comment)
(statement_comment)
] @comment.documentation @spell
; Unused Identifiers
[
(discard)
(hole)
] @comment
; Modules & Imports
(module) @namespace
(import alias: ((identifier) @namespace)?)
(remote_type_identifier module: (identifier) @namespace)
(unqualified_import name: (identifier) @function)
; Strings
(string) @string
; Bit Strings
(bit_string_segment) @string.special
; Numbers
(integer) @number
(float) @float
; Function Parameter Labels
(function_call arguments: (arguments (argument label: (label) @label)))
(function_parameter label: (label)? @label name: (identifier) @parameter)
; Records
(record arguments: (arguments (argument label: (label) @property)?))
(record_pattern_argument label: (label) @property)
(record_update_argument label: (label) @property)
(field_access record: (identifier) @variable field: (label) @property)
(data_constructor_argument (label) @property)
; Types
[
(type_identifier)
(type_parameter)
(type_var)
] @type
((type_identifier) @type.builtin
(#any-of? @type.builtin "Int" "Float" "String" "List"))
; Type Qualifiers
[
"const"
"external"
(opacity_modifier)
(visibility_modifier)
] @type.qualifier
; Tuples
(tuple_access index: (integer) @operator)
; Functions
(function name: (identifier) @function)
(function_call function: (identifier) @function.call)
(function_call function: (field_access field: (label) @function.call))
; External Functions
(external_function name: (identifier) @function)
(external_function_body (string) @namespace . (string) @function)
; Constructors
(constructor_name) @type @constructor
([(type_identifier) (constructor_name)] @constant.builtin
(#any-of? @constant.builtin "Ok" "Error"))
; Booleans
((constructor_name) @boolean (#any-of? @boolean "True" "False"))
; Pipe Operator
(binary_expression operator: "|>" right: (identifier) @function)
; Parser Errors
(ERROR) @error