diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md
index ba68e206..d068f91c 100644
--- a/book/src/generated/lang-support.md
+++ b/book/src/generated/lang-support.md
@@ -145,7 +145,7 @@
 | ruby | ✓ | ✓ | ✓ | `solargraph` |
 | rust | ✓ | ✓ | ✓ | `rust-analyzer` |
 | sage | ✓ | ✓ |  |  |
-| scala | ✓ |  | ✓ | `metals` |
+| scala | ✓ | ✓ | ✓ | `metals` |
 | scheme | ✓ |  | ✓ |  |
 | scss | ✓ |  |  | `vscode-css-language-server` |
 | slint | ✓ |  | ✓ | `slint-lsp` |
diff --git a/runtime/queries/scala/textobjects.scm b/runtime/queries/scala/textobjects.scm
new file mode 100644
index 00000000..fe0b8c25
--- /dev/null
+++ b/runtime/queries/scala/textobjects.scm
@@ -0,0 +1,59 @@
+; Function queries
+
+(function_definition
+  body: (_) @function.inside) @function.around
+
+; Does not match block lambdas or Scala 3 braceless lambdas
+(lambda_expression
+  (_) @function.inside) @function.around
+
+
+; Class queries
+
+(object_definition
+  body: (_)? @class.inside) @class.around
+
+(class_definition
+  body: (_)? @class.inside) @class.around
+
+(trait_definition
+  body: (_)? @class.inside) @class.around
+
+(type_definition) @class.around
+
+(enum_case_definitions) @class.around
+
+(enum_definition
+  body: (_)? @class.inside) @class.around
+
+
+; Parameter queries
+
+(parameters
+  ((_) @parameter.inside . ","? @parameter.around) @parameter.around)
+
+(parameter_types
+  ((_) @parameter.inside . ","? @parameter.around) @parameter.around)
+
+(bindings
+  ((_) @parameter.inside . ","? @parameter.around) @parameter.around)
+
+; Does not match context bounds or higher-kinded types
+(type_parameters
+  ((_) @parameter.inside . ","? @parameter.around) @parameter.around)
+
+(arguments
+  ((_) @parameter.inside . ","? @parameter.around) @parameter.around)
+
+(type_arguments
+  ((_) @parameter.inside . ","? @parameter.around) @parameter.around)
+
+
+; Comment queries
+
+(comment) @comment.inside
+(comment) @comment.around ; Does not match consecutive block comments
+
+
+; Test queries
+; Not supported