1
0
mirror of https://github.com/helix-editor/helix synced 2026-03-07 20:46:21 +01:00
helix/runtime/queries/haxe/highlights.scm
2025-11-11 08:35:35 -06:00

147 lines
2.5 KiB
Scheme

(identifier) @variable
(comment) @comment
; Preprocessor Statement
; --------
(preprocessor_statement) @tag
; (metadata name: (identifier) @type) @tag
; MetaData
; --------
(metadata) @tag
(metadata name: (identifier) @type) @tag
; Generic/Type Params
; --------------
(type_params
"<" @punctuation.bracket
">" @punctuation.bracket
)
; Declarations
; ------------
(class_declaration name: (identifier) @type.definition)
(interface_declaration name: (identifier) @type.definition)
(typedef_declaration name: (identifier) @type.definition)
(function_declaration name: (identifier) @function)
(function_arg name: (identifier) @variable.parameter)
; Expressions
; -----------
; (call_expression name: (identifier) @variable.parameter)
; TODO: Figure out how to determined when "nested member call" is last ident.
; apparently this is a known issue https://github.com/tree-sitter/tree-sitter/issues/880
(call_expression object: [
(_) @function
(_ (identifier) @function .)
; (_(_ (identifier) @function .))
; (_(_(_ (identifier) @function .)))
; (_(_(_(_ (identifier) @function .))))
; (_(_(_(_(_ (identifier) @function .)))))
])
; Literals
; --------
; [(keyword) (null)] @keyword
; (type) @type
(type_name) @type
(package_name) @namespace
(type (identifier) !built_in) @type
(type built_in: (identifier)) @type.builtin
(integer) @constant.numeric.integer
(float) @constant.numeric.float
(string) @string
(bool) @constant.builtin.boolean
(operator) @operator
(escape_sequence) @punctuation
(null) @constant.builtin
(access_identifiers "null" @keyword)
; Keywords
; --------
[
"abstract"
"as"
"break"
"case"
"cast"
"catch"
"class"
"continue"
"default"
"do"
"dynamic"
"else"
"enum"
"extends"
"extern"
"final"
"for"
"function"
"if"
"implements"
"import"
"in"
"inline"
"interface"
"macro"
"operator"
"overload"
"override"
"package"
"private"
"public"
"return"
"static"
"switch"
"this"
"throw"
"try"
"typedef"
"untyped"
"using"
"var"
"while"
] @keyword
(function_declaration name: "new" @constructor)
(call_expression
"new" @keyword
constructor: (type_name) @constructor
)
; Tokens
; ------
(":") @punctuation.special
(pair [":" "=>"] @punctuation.special)
[
"("
")"
"["
"]"
"{"
"}"
] @punctuation.bracket
;
[
; ";"
; "?."
; "."
","
] @punctuation.delimiter
; Interpolation
; -------------
(interpolation "$" @punctuation.special)
(interpolation
"${" @punctuation.special
"}" @punctuation.special
) @embedded