summaryrefslogtreecommitdiff
path: root/runtime/queries
diff options
context:
space:
mode:
authorChristoph Sax2023-06-07 23:01:25 +0000
committerGitHub2023-06-07 23:01:25 +0000
commitd324feb07244e0649229b845a92f0d0b8a0ecaf4 (patch)
treefd897f928af7851a6fbd29f1449ec6912342c01d /runtime/queries
parent352d1574a63b5ecd9ec7fdd8c4ae8e4eedbd4cf3 (diff)
Add support for language t32 (#7140)
Co-authored-by: Christoph Sax <christoph.sax@mailbox.org>
Diffstat (limited to 'runtime/queries')
-rw-r--r--runtime/queries/t32/highlights.scm145
-rw-r--r--runtime/queries/t32/injections.scm2
2 files changed, 147 insertions, 0 deletions
diff --git a/runtime/queries/t32/highlights.scm b/runtime/queries/t32/highlights.scm
new file mode 100644
index 00000000..c3bba814
--- /dev/null
+++ b/runtime/queries/t32/highlights.scm
@@ -0,0 +1,145 @@
+[
+ "="
+ "^^"
+ "||"
+ "&&"
+ "+"
+ "-"
+ "*"
+ "/"
+ "%"
+ "|"
+ "^"
+ "=="
+ "!="
+ ">"
+ ">="
+ "<="
+ "<"
+ "<<"
+ ">>"
+ ".."
+ "--"
+ "++"
+ "+"
+ "-"
+ "~"
+ "!"
+ "&"
+ "->"
+ "*"
+] @operator
+
+[
+ "("
+ ")"
+ "{"
+ "}"
+ "["
+ "]"
+] @punctuation.bracket
+
+[
+ ","
+ "."
+ ";"
+] @punctuation.delimiter
+
+; Constants
+[
+ (access_class)
+ (address)
+ (bitmask)
+ (file_handle)
+ (frequency)
+ (time)
+] @constant.builtin
+
+[
+ (float)
+ (percentage)
+] @constant.numeric.float
+
+(integer) @constant.numeric.integer
+
+(character) @constant.character
+
+; Strings
+(string) @string
+
+(path) @string.special.path
+
+(symbol) @string.special.symbol
+
+; 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
+(internal_c_variable) @variable
+
+(
+ (command_expression
+ command: (identifier) @keyword
+ arguments: (argument_list . (identifier) @label))
+ (#match? @keyword "^[gG][oO][tT][oO]$")
+)
+(labeled_expression
+ label: (identifier) @label)
+
+(
+ (argument_list (identifier) @constant.builtin)
+ (#match? @constant.builtin "^[%/][a-zA-Z][a-zA-Z0-9.]*$")
+)
+(argument_list
+ (identifier) @constant)
+
+; Commands
+(command_expression command: (identifier) @keyword)
+(macro_definition command: (identifier) @keyword)
+
+; 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)
+
+(call_expression
+ function: (identifier) @function)
+
+(type_identifier) @type
+(comment) @comment
diff --git a/runtime/queries/t32/injections.scm b/runtime/queries/t32/injections.scm
new file mode 100644
index 00000000..2f0e58eb
--- /dev/null
+++ b/runtime/queries/t32/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))