mirror of
https://github.com/chenasraf/nvim-treesitter.git
synced 2026-05-18 01:39:00 +00:00
178 lines
2.5 KiB
Scheme
178 lines
2.5 KiB
Scheme
; Identifiers
|
|
(identifier) @variable
|
|
|
|
; Function declaration
|
|
(function_statement
|
|
name: (identifier) @function)
|
|
|
|
; Sub declaration
|
|
(sub_statement
|
|
name: (identifier) @function)
|
|
|
|
[
|
|
(sub_start)
|
|
(function_start)
|
|
(end_sub)
|
|
(end_function)
|
|
] @keyword.function
|
|
|
|
; Parameters
|
|
(parameter
|
|
name: (identifier) @variable.parameter)
|
|
|
|
; Types
|
|
(type_specifier) @type
|
|
|
|
; Variables
|
|
; Base variable in variable declarator (immediate child of prefix_exp)
|
|
(variable_declarator
|
|
(prefix_exp
|
|
(identifier) @variable
|
|
(#not-has-ancestor? @variable prefix_exp)))
|
|
|
|
; Properties in variable declarator
|
|
(variable_declarator
|
|
(prefix_exp)
|
|
(identifier) @property)
|
|
|
|
(multiplicative_expression
|
|
operator: (_) @keyword.operator)
|
|
|
|
(logical_not_expression
|
|
operator: (_) @keyword.operator)
|
|
|
|
(logical_expression
|
|
operator: (_) @keyword.operator)
|
|
|
|
; Property access
|
|
; First identifier in a chain (base variable)
|
|
(prefix_exp
|
|
.
|
|
(identifier) @variable
|
|
(#not-has-ancestor? @variable prefix_exp))
|
|
|
|
; All other identifiers in a chain (properties)
|
|
(prefix_exp
|
|
(prefix_exp)
|
|
(identifier) @property)
|
|
|
|
; Function calls
|
|
(function_call
|
|
function: (prefix_exp
|
|
(identifier) @function.call))
|
|
|
|
; Statements
|
|
[
|
|
(if_start)
|
|
(else)
|
|
(else_if)
|
|
(end_if)
|
|
(then)
|
|
(conditional_compl_end_if)
|
|
] @keyword.conditional
|
|
|
|
[
|
|
(for_start)
|
|
(while_start)
|
|
(for_each)
|
|
(for_in)
|
|
(for_to)
|
|
(for_step)
|
|
(end_for)
|
|
(end_while)
|
|
(exit_while_statement)
|
|
(exit_for_statement)
|
|
] @keyword.repeat
|
|
|
|
; Statements
|
|
[
|
|
(try_start)
|
|
(try_catch)
|
|
(throw)
|
|
(end_try)
|
|
] @keyword.exception
|
|
|
|
(return) @keyword.return
|
|
|
|
(print) @function.builtin
|
|
|
|
(constant) @constant
|
|
|
|
; Operators
|
|
[
|
|
"="
|
|
"<>"
|
|
"<"
|
|
"<="
|
|
">"
|
|
">="
|
|
"+"
|
|
"-"
|
|
"*"
|
|
"/"
|
|
] @operator
|
|
|
|
; Literals
|
|
(boolean) @boolean
|
|
|
|
(number) @number
|
|
|
|
(string) @string
|
|
|
|
(invalid) @constant.builtin
|
|
|
|
; Comments
|
|
(comment) @comment @spell
|
|
|
|
; Punctuation
|
|
[
|
|
"("
|
|
")"
|
|
"["
|
|
"]"
|
|
"{"
|
|
"}"
|
|
"?["
|
|
] @punctuation.bracket
|
|
|
|
[
|
|
"."
|
|
","
|
|
"?."
|
|
] @punctuation.delimiter
|
|
|
|
; Special highlights for library statements
|
|
(library_statement) @keyword.import
|
|
|
|
(library_statement
|
|
path: (string) @module)
|
|
|
|
; Array and associative array literals
|
|
(array) @constructor
|
|
|
|
(assoc_array) @constructor
|
|
|
|
(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)
|
|
|
|
(as) @keyword.operator
|