aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaakko Paju2024-02-04 01:09:42 +0000
committerGitHub2024-02-04 01:09:42 +0000
commit75d61d8149d1e55d25f0bc34d95f01d6a3f1f526 (patch)
treedf8b06c2c61e693a225efb469642cff9ad566140
parentd1054de3ced44903c7bdcf5886d8481eb40a948f (diff)
Improve tree-sitter queries for Scala (#9475)
- Simplify function highlighting - Highlight extension methods - Textobject query (mia/maa) for class/trait constructor parameters/arguments - Textobject query (mif/maf) for Scala 3 braceless lambdas
-rw-r--r--runtime/queries/scala/highlights.scm27
-rw-r--r--runtime/queries/scala/textobjects.scm10
2 files changed, 14 insertions, 23 deletions
diff --git a/runtime/queries/scala/highlights.scm b/runtime/queries/scala/highlights.scm
index 4f90bfda..e21a3909 100644
--- a/runtime/queries/scala/highlights.scm
+++ b/runtime/queries/scala/highlights.scm
@@ -53,28 +53,13 @@
(var_declaration
name: (identifier) @variable)
-; method definition
+; function definitions/declarations
-(class_definition
- body: (template_body
- [
- (function_definition
- name: (identifier) @function.method)
- (function_declaration
- name: (identifier) @function.method)
- ]))
-(trait_definition
- body: (template_body
- [
- (function_definition
- name: (identifier) @function.method)
- (function_declaration
- name: (identifier) @function.method)
- ]))
-(object_definition
- body: (template_body
- (function_definition
- name: (identifier) @function.method)))
+(function_declaration
+ name: (identifier) @function.method)
+
+(function_definition
+ name: (identifier) @function.method)
; imports/exports
diff --git a/runtime/queries/scala/textobjects.scm b/runtime/queries/scala/textobjects.scm
index 6e551c41..21286b3e 100644
--- a/runtime/queries/scala/textobjects.scm
+++ b/runtime/queries/scala/textobjects.scm
@@ -1,12 +1,15 @@
; Function queries
(function_definition
- body: (_) @function.inside) @function.around
+ body: (_) @function.inside) @function.around ; Does not include end marker
-; Does not match block lambdas or Scala 3 braceless lambdas
(lambda_expression
(_) @function.inside) @function.around
+; Scala 3 braceless lambda
+(colon_argument
+ (_) @function.inside) @function.around
+
; Class queries
@@ -32,6 +35,9 @@
(parameters
((_) @parameter.inside . ","? @parameter.around) @parameter.around)
+(class_parameters
+ ((_) @parameter.inside . ","? @parameter.around) @parameter.around)
+
(parameter_types
((_) @parameter.inside . ","? @parameter.around) @parameter.around)