helix-mods/runtime/queries/t32/highlights.scm
Christoph Sax 5a51036bc1
Update t32 language queries to version 2.2.1 (#7811)
Version 2.2.1 of the grammar adds extended support for HLL (C, C++,..)
expressions. Quite a few node types were added, renamed or removed in
the process.

This change brings the highlight queries in sync with the ones found in
the repository of the grammar. The highlighting tests "look" okay after
updating the queries.

Recently, Codeberg had some reliability issues. That is why the language
is now using the mirror repository on GitLab as source instead.

Co-authored-by: Christoph Sax <christoph.sax@mailbox.org>
2023-08-04 16:20:12 +02:00

227 lines
3.3 KiB
Scheme

; Operators in command and conditional HLL expressions
(hll_comma_expression
"," @operator)
(hll_conditional_expression
[
"?"
":"
] @operator)
; Keywords, punctuation and operators
[
"enum"
"struct"
"union"
] @keyword.storage.type
"sizeof" @keyword.operator
[
"const"
"volatile"
] @keyword.storage.modifier
[
"="
"^^"
"||"
"&&"
"+"
"-"
"*"
"/"
"%"
"|"
"^"
"=="
"!="
">"
">="
"<="
"<"
"<<"
">>"
".."
"--"
"++"
"+"
"-"
"~"
"!"
"&"
"->"
"*"
"-="
"+="
"*="
"/="
"%="
"|="
"&="
"^="
">>="
"<<="
"--"
"++"
] @operator
[
"("
")"
"{"
"}"
"["
"]"
] @punctuation.bracket
[
","
"."
] @punctuation.delimiter
; Strings and others literal types
(access_class) @constant.builtin
[
(address)
(bitmask)
(file_handle)
(integer)
(hll_number_literal)
] @constant.numeric.integer
[
(float)
(frequency)
(percentage)
(time)
] @constant.numeric.float
[
(string)
(hll_string_literal)
] @string
(hll_escape_sequence) @constant.character.escape
(path) @string.special.path
(symbol) @string.special.symbol
[
(character)
(hll_char_literal)
] @constant.character
; Types in HLL expressions
[
(hll_type_identifier)
(hll_type_descriptor)
] @type
(hll_type_qualifier) @keyword.storage.modifier
(hll_primitive_type) @type.builtin
; HLL call expressions
(hll_call_expression
function: (hll_field_expression
field: (hll_field_identifier) @function))
(hll_call_expression
function: (identifier) @function)
; Returns
(
(command_expression
command: (identifier) @keyword.return)
(#match? @keyword.return "^[eE][nN][dD]([dD][oO])?$")
)
(
(command_expression
command: (identifier) @keyword.return)
(#match? @keyword.return "^[rR][eE][tT][uU][rR][nN]$")
)
; Subroutine calls
(subroutine_call_expression
command: (identifier) @keyword
subroutine: (identifier) @function)
; Subroutine blocks
(subroutine_block
command: (identifier) @keyword
subroutine: (identifier) @function)
(labeled_expression
label: (identifier) @function
(block))
; Parameter declarations
(parameter_declaration
command: (identifier) @keyword
(identifier)? @constant.builtin
macro: (macro) @variable.parameter)
; Variables, constants and labels
(macro) @variable.builtin
(trace32_hll_variable) @variable.builtin
(
(command_expression
command: (identifier) @keyword
arguments: (argument_list . (identifier) @label))
(#match? @keyword "^[gG][oO][tT][oO]$")
)
(labeled_expression
label: (identifier) @label)
(option_expression
(identifier) @constant.builtin)
(format_expression
(identifier) @constant.builtin)
(
(argument_list (identifier) @constant.builtin)
(#match? @constant.builtin "^[%/][a-zA-Z][a-zA-Z0-9.]*$")
)
(argument_list
(identifier) @constant.builtin)
; Commands
(command_expression command: (identifier) @keyword)
(macro_definition command: (identifier) @keyword)
(call_expression
function: (identifier) @function.builtin)
; Control flow
(if_block
command: (identifier) @keyword.control.conditional.if)
(else_block
command: (identifier) @keyword.control.control.else)
(while_block
command: (identifier) @keyword.control.repeat.while)
(repeat_block
command: (identifier) @keyword.control.loop)
; HLL variables
(identifier) @variable
(hll_field_identifier) @variable.other.member
(comment) @comment