nvim-treesitter/queries/brightscript/highlights.scm

179 lines
2.5 KiB
Scheme
Raw Normal View History

; Identifiers
(identifier) @variable
2025-03-30 18:44:35 -05:00
; Function declaration
(function_statement
name: (identifier) @function)
2025-03-30 18:44:35 -05:00
; Sub declaration
(sub_statement
name: (identifier) @function)
; Function calls
(function_call
function: (prefix_exp
(identifier) @function.call))
; Parameters
(parameter
name: (identifier) @variable.parameter)
; Types
(type_specifier) @type
; Variables
(variable_declarator) @variable
(multiplicative_expression
operator: (_) @keyword.operator)
(logical_not_expression
operator: (_) @keyword.operator)
(logical_expression
operator: (_) @keyword.operator)
; Property access
(prefix_exp
(prefix_exp
(identifier) @variable)
(identifier) @property)
; Statements
2025-03-30 18:24:16 -05:00
(if_statement) @keyword.conditional
2025-03-30 18:44:35 -05:00
2025-03-30 18:24:16 -05:00
(conditional_compl) @keyword.conditional
2025-03-30 18:44:35 -05:00
2025-03-30 18:24:16 -05:00
(for_statement) @keyword.repeat
2025-03-30 18:44:35 -05:00
2025-03-30 18:24:16 -05:00
(while_statement) @keyword.repeat
2025-03-30 18:44:35 -05:00
2025-03-30 18:24:16 -05:00
(try_statement) @keyword.exception
2025-03-30 18:44:35 -05:00
(return_statement) @keyword.return
2025-03-30 18:44:35 -05:00
2025-03-30 18:24:16 -05:00
(throw_statement) @keyword.exception
2025-03-30 18:44:35 -05:00
(assignment_statement) @operator
2025-03-30 18:44:35 -05:00
(print_statement) @function.builtin
2025-03-30 18:44:35 -05:00
(constant) @constant
; Keywords
[
(function_start)
(sub_start)
(if_start)
(if_then)
(if_else)
(for_start)
(for_to)
(for_step)
(for_each)
(for_in)
(while_start)
(try_start)
(try_catch)
(as)
] @keyword
; Operators
[
"="
"<>"
"<"
"<="
">"
">="
"+"
"-"
"*"
"/"
] @operator
; Literals
(boolean) @boolean
2025-03-30 18:44:35 -05:00
(number) @number
2025-03-30 18:44:35 -05:00
(string) @string
2025-03-30 18:44:35 -05:00
(invalid) @constant.builtin
; Comments
(comment) @comment
; Punctuation
2025-03-30 18:44:35 -05:00
[
"("
")"
"["
"]"
"{"
"}"
"."
","
"?."
"?["
] @punctuation.delimiter
; Special highlights for library statements
2025-03-30 18:24:16 -05:00
(library_statement) @keyword.import
2025-03-30 18:44:35 -05:00
(library_statement
2025-03-30 18:24:16 -05:00
path: (string) @module)
; Array and associative array literals
(array) @constructor
2025-03-30 18:44:35 -05:00
(assoc_array) @constructor
2025-03-30 18:44:35 -05:00
(assoc_array_element
key: (identifier) @property)
; Increment/decrement operators
[
(prefix_increment_expression)
(prefix_decrement_expression)
(postfix_increment_expression)
(postfix_decrement_expression)
] @operator
; Comparison operators
(comparison_expression
[
"="
"<>"
"<"
"<="
">"
">="
] @operator)
; End statements
[
(end_sub)
(end_function)
(end_if)
(end_for)
(end_while)
(end_try)
(conditional_compl_end_if)
] @keyword
; Special keywords (these might still need to be strings if not defined as separate nodes)
2025-03-30 18:44:35 -05:00
[
"then"
"else"
"else if"
"#else"
"#else if"
] @keyword
; Exit statements
[
(exit_while_statement)
(exit_for_statement)
] @keyword