summaryrefslogtreecommitdiff
path: root/queries/supercollider/locals.scm
diff options
context:
space:
mode:
authorMads Kjeldgaard <mail@madskjeldgaard.dk>2021-02-02 18:58:07 +0100
committerThomas Vigouroux <tomvig38@gmail.com>2021-02-10 22:21:17 +0100
commit1f7db485231b79f5f95b6464b70bdc55c63f84ff (patch)
treea1e3e18cbff740be1f2ba702ee91e1d2732c94a1 /queries/supercollider/locals.scm
parentb8a2d45fa841386bd11da71ec2b2c4ab425ea16f (diff)
Add supercollider support
Diffstat (limited to 'queries/supercollider/locals.scm')
-rw-r--r--queries/supercollider/locals.scm36
1 files changed, 36 insertions, 0 deletions
diff --git a/queries/supercollider/locals.scm b/queries/supercollider/locals.scm
new file mode 100644
index 00000000..c945cfa0
--- /dev/null
+++ b/queries/supercollider/locals.scm
@@ -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