aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--languages.toml2
-rw-r--r--runtime/queries/t32/highlights.scm134
2 files changed, 109 insertions, 27 deletions
diff --git a/languages.toml b/languages.toml
index c51d6506..a58e5b5f 100644
--- a/languages.toml
+++ b/languages.toml
@@ -2691,7 +2691,7 @@ indent = { tab-width = 2, unit = " " }
[[grammar]]
name = "t32"
-source = { git = "https://codeberg.org/xasc/tree-sitter-t32", rev = "1dd98248b01e4a3933c1b85b58bab0875e2ba437" }
+source = { git = "https://gitlab.com/xasc/tree-sitter-t32", rev = "6da5e3cbabd376b566d04282005e52ffe67ef74a" }
[[language]]
name = "webc"
diff --git a/runtime/queries/t32/highlights.scm b/runtime/queries/t32/highlights.scm
index c3bba814..8a29cee2 100644
--- a/runtime/queries/t32/highlights.scm
+++ b/runtime/queries/t32/highlights.scm
@@ -1,3 +1,28 @@
+; 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
+
[
"="
"^^"
@@ -28,49 +53,89 @@
"&"
"->"
"*"
+ "-="
+ "+="
+ "*="
+ "/="
+ "%="
+ "|="
+ "&="
+ "^="
+ ">>="
+ "<<="
+ "--"
+ "++"
] @operator
[
- "("
- ")"
- "{"
- "}"
- "["
- "]"
+ "("
+ ")"
+ "{"
+ "}"
+ "["
+ "]"
] @punctuation.bracket
[
","
"."
- ";"
] @punctuation.delimiter
-; Constants
+
+; Strings and others literal types
+(access_class) @constant.builtin
+
[
- (access_class)
(address)
(bitmask)
(file_handle)
- (frequency)
- (time)
-] @constant.builtin
+ (integer)
+ (hll_number_literal)
+] @constant.numeric.integer
[
(float)
+ (frequency)
(percentage)
+ (time)
] @constant.numeric.float
-(integer) @constant.numeric.integer
-
-(character) @constant.character
+[
+ (string)
+ (hll_string_literal)
+] @string
-; Strings
-(string) @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
@@ -83,11 +148,13 @@
(#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
@@ -97,15 +164,17 @@
label: (identifier) @function
(block))
+
; Parameter declarations
(parameter_declaration
command: (identifier) @keyword
(identifier)? @constant.builtin
macro: (macro) @variable.parameter)
+
; Variables, constants and labels
-(macro) @variable
-(internal_c_variable) @variable
+(macro) @variable.builtin
+(trace32_hll_variable) @variable.builtin
(
(command_expression
@@ -116,17 +185,28 @@
(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)
+ (#match? @constant.builtin "^[%/][a-zA-Z][a-zA-Z0-9.]*$")
)
(argument_list
- (identifier) @constant)
+ (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)
@@ -138,8 +218,10 @@
(repeat_block
command: (identifier) @keyword.control.loop)
-(call_expression
- function: (identifier) @function)
-(type_identifier) @type
+; HLL variables
+(identifier) @variable
+(hll_field_identifier) @variable.other.member
+
+
(comment) @comment