mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-01 19:17:02 -04:00
Add supercollider support
This commit is contained in:
parent
b8a2d45fa8
commit
1f7db48523
5 changed files with 169 additions and 0 deletions
|
|
@ -267,6 +267,7 @@ list.supercollider = {
|
|||
install_info = {
|
||||
url = "https://github.com/madskjeldgaard/tree-sitter-supercollider",
|
||||
files = {"src/parser.c", "src/scanner.c"},
|
||||
branch = "main",
|
||||
},
|
||||
maintainers = {"@madskjeldgaard"},
|
||||
filetype = "supercollider",
|
||||
|
|
|
|||
7
queries/supercollider/folds.scm
Normal file
7
queries/supercollider/folds.scm
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
[
|
||||
(function_call)
|
||||
(code_block)
|
||||
(function_block)
|
||||
(control_structure)
|
||||
] @fold
|
||||
|
||||
109
queries/supercollider/highlights.scm
Normal file
109
queries/supercollider/highlights.scm
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
; highlights.scm
|
||||
; See this for full list: https://github.com/nvim-treesitter/nvim-treesitter/blob/master/CONTRIBUTING.md
|
||||
|
||||
; comments
|
||||
(line_comment) @comment
|
||||
(block_comment) @comment
|
||||
|
||||
; Argument definition
|
||||
|
||||
; Fixme: Should be attribute but nvim-treesitter doesn't supprt it at the moment
|
||||
(argument name: (identifier) @parameter)
|
||||
;(argument name: (identifier) @parameter)
|
||||
|
||||
; Variables
|
||||
(local_var name: (identifier) @variable)
|
||||
(environment_var name:(identifier) @variable.builtin)
|
||||
(builtin_var) @constant.builtin
|
||||
|
||||
; (variable) @variable
|
||||
|
||||
; Functions
|
||||
(function_definition
|
||||
name: (variable) @function)
|
||||
|
||||
; For function calls
|
||||
(named_argument
|
||||
name: (identifier) @property)
|
||||
|
||||
; Methods
|
||||
(instance_method_call
|
||||
name: (method_name) @function)
|
||||
(class_method_call
|
||||
name: (class_method_name) @method)
|
||||
|
||||
; Classes
|
||||
(class) @type
|
||||
|
||||
; Literals
|
||||
(number) @number
|
||||
(pi_statement) @constant.builtin
|
||||
(float) @float
|
||||
|
||||
(string) @string
|
||||
(symbol) @string.special
|
||||
|
||||
; Operators
|
||||
[
|
||||
"&&"
|
||||
"||"
|
||||
"&"
|
||||
"|"
|
||||
"^"
|
||||
"=="
|
||||
"!="
|
||||
"<"
|
||||
"<="
|
||||
">"
|
||||
">="
|
||||
"<<"
|
||||
">>"
|
||||
"+"
|
||||
"-"
|
||||
"*"
|
||||
"/"
|
||||
"%"
|
||||
"="
|
||||
] @operator
|
||||
|
||||
|
||||
; Keywords
|
||||
[
|
||||
"arg"
|
||||
"classvar"
|
||||
; "const"
|
||||
; "super"
|
||||
; "this"
|
||||
"var"
|
||||
] @type.builtin
|
||||
|
||||
; Brackets
|
||||
[
|
||||
"("
|
||||
")"
|
||||
"["
|
||||
"]"
|
||||
"{"
|
||||
"}"
|
||||
"|"
|
||||
] @punctuation.bracket
|
||||
|
||||
; Delimeters
|
||||
[
|
||||
";"
|
||||
"."
|
||||
","
|
||||
] @punctuation.delimiter
|
||||
|
||||
; control structure
|
||||
(control_structure) @conditional
|
||||
|
||||
(escape_sequence) @escape
|
||||
|
||||
; SinOsc.ar()!2
|
||||
(duplicated_statement) @repeat
|
||||
|
||||
; Builtins
|
||||
; ((identifier) @variable.builtin
|
||||
; (#match? @variable.builtin "^(inf|nil|thisFunction|thisFunctionDef|thisMethod|thisProcess|thisThread|currentEnvironment|topEnvironment)$")
|
||||
; (#is-not? local))
|
||||
16
queries/supercollider/indents.scm
Normal file
16
queries/supercollider/indents.scm
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
[
|
||||
(collection)
|
||||
(parameter_call_list)
|
||||
(function_block)
|
||||
(code_block)
|
||||
] @indent
|
||||
|
||||
[
|
||||
(parameter_call_list (argument_calls))
|
||||
"("
|
||||
")"
|
||||
"{"
|
||||
"}"
|
||||
"["
|
||||
"]"
|
||||
] @branch
|
||||
36
queries/supercollider/locals.scm
Normal file
36
queries/supercollider/locals.scm
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
; The local variables query is different from the highlights query in that, while the highlights query uses arbitrary capture names which can then be mapped to colors, the locals variable query uses a fixed set of capture names, each of which has a special meaning.
|
||||
; The capture names are as follows:
|
||||
; @local.scope - indicates that a syntax node introduces a new local scope.
|
||||
; @local.definition - indicates that a syntax node contains the name of a definition within the current local scope.
|
||||
; @local.reference - indicates that a syntax node contains the name which may refer to an earlier definition within some enclosing scope.
|
||||
|
||||
|
||||
; Scopes
|
||||
[
|
||||
(function_call)
|
||||
(code_block)
|
||||
(function_block)
|
||||
(control_structure)
|
||||
] @scope
|
||||
|
||||
; Definitions
|
||||
(argument
|
||||
name: (identifier) @definition.parameter
|
||||
(set! "definition.var.scope" "local")
|
||||
)
|
||||
|
||||
(variable_definition
|
||||
name: (variable (local_var (identifier) @definition.var
|
||||
)))
|
||||
|
||||
(variable_definition
|
||||
name: (variable (environment_var (identifier) @definition.var))
|
||||
(set! "definition.var.scope" "global"))
|
||||
|
||||
(function_definition name: (variable) @definition.var
|
||||
(set! "definition.var.scope" "parent")
|
||||
)
|
||||
;(variable_definition name: (variable (local_var(identifier))) @local.definition)
|
||||
;(variable) @local.definition
|
||||
|
||||
(identifier) @reference
|
||||
Loading…
Add table
Add a link
Reference in a new issue