Add text objects to extensions (#21488)

Conrad Irwin created

Release Notes:

- Adds textobject support to erlang, haskell, lua, php, prisma, proto,
toml, and zig

Change summary

Cargo.lock                                           | 16 ++--
extensions/erlang/Cargo.toml                         |  2 
extensions/erlang/extension.toml                     |  2 
extensions/erlang/languages/erlang/textobjects.scm   |  6 +
extensions/haskell/Cargo.toml                        |  2 
extensions/haskell/extension.toml                    |  2 
extensions/haskell/languages/haskell/textobjects.scm | 12 +++
extensions/lua/Cargo.toml                            |  2 
extensions/lua/extension.toml                        |  2 
extensions/lua/languages/lua/textobjects.scm         |  7 ++
extensions/php/Cargo.toml                            |  2 
extensions/php/extension.toml                        |  2 
extensions/php/languages/php/textobjects.scm         | 45 ++++++++++++++
extensions/prisma/Cargo.toml                         |  2 
extensions/prisma/extension.toml                     |  2 
extensions/prisma/languages/prisma/textobjects.scm   | 25 +++++++
extensions/proto/Cargo.toml                          |  2 
extensions/proto/extension.toml                      |  2 
extensions/proto/languages/proto/textobjects.scm     | 18 +++++
extensions/toml/Cargo.toml                           |  2 
extensions/toml/extension.toml                       |  2 
extensions/toml/languages/toml/textobjects.scm       |  6 +
extensions/zig/Cargo.toml                            |  2 
extensions/zig/extension.toml                        |  2 
extensions/zig/languages/zig/textobjects.scm         | 27 ++++++++
script/language-extension-version                    |  1 
26 files changed, 170 insertions(+), 25 deletions(-)

Detailed changes

Cargo.lock πŸ”—

@@ -15768,7 +15768,7 @@ dependencies = [
 
 [[package]]
 name = "zed_erlang"
-version = "0.1.0"
+version = "0.1.1"
 dependencies = [
  "zed_extension_api 0.1.0",
 ]
@@ -15802,7 +15802,7 @@ dependencies = [
 
 [[package]]
 name = "zed_haskell"
-version = "0.1.1"
+version = "0.1.2"
 dependencies = [
  "zed_extension_api 0.1.0",
 ]
@@ -15816,28 +15816,28 @@ dependencies = [
 
 [[package]]
 name = "zed_lua"
-version = "0.1.0"
+version = "0.1.1"
 dependencies = [
  "zed_extension_api 0.1.0",
 ]
 
 [[package]]
 name = "zed_php"
-version = "0.2.2"
+version = "0.2.3"
 dependencies = [
  "zed_extension_api 0.1.0",
 ]
 
 [[package]]
 name = "zed_prisma"
-version = "0.0.3"
+version = "0.0.4"
 dependencies = [
  "zed_extension_api 0.1.0",
 ]
 
 [[package]]
 name = "zed_proto"
-version = "0.2.0"
+version = "0.2.1"
 dependencies = [
  "zed_extension_api 0.1.0",
 ]
@@ -15880,7 +15880,7 @@ dependencies = [
 
 [[package]]
 name = "zed_toml"
-version = "0.1.1"
+version = "0.1.2"
 dependencies = [
  "zed_extension_api 0.1.0",
 ]
@@ -15894,7 +15894,7 @@ dependencies = [
 
 [[package]]
 name = "zed_zig"
-version = "0.3.1"
+version = "0.3.2"
 dependencies = [
  "zed_extension_api 0.1.0",
 ]

extensions/erlang/extension.toml πŸ”—

@@ -1,7 +1,7 @@
 id = "erlang"
 name = "Erlang"
 description = "Erlang support."
-version = "0.1.0"
+version = "0.1.1"
 schema_version = 1
 authors = ["Dairon M <dairon.medina@gmail.com>", "Fabian BergstrΓΆm <fabian@fmbb.se>"]
 repository = "https://github.com/zed-industries/zed"

extensions/haskell/extension.toml πŸ”—

@@ -1,7 +1,7 @@
 id = "haskell"
 name = "Haskell"
 description = "Haskell support."
-version = "0.1.1"
+version = "0.1.2"
 schema_version = 1
 authors = [
     "Pocæus <github@pocaeus.com>",

extensions/lua/Cargo.toml πŸ”—

@@ -1,6 +1,6 @@
 [package]
 name = "zed_lua"
-version = "0.1.0"
+version = "0.1.1"
 edition = "2021"
 publish = false
 license = "Apache-2.0"

extensions/lua/extension.toml πŸ”—

@@ -1,7 +1,7 @@
 id = "lua"
 name = "Lua"
 description = "Lua support."
-version = "0.1.0"
+version = "0.1.1"
 schema_version = 1
 authors = ["Max Brunsfeld <max@zed.dev>"]
 repository = "https://github.com/zed-industries/zed"

extensions/php/Cargo.toml πŸ”—

@@ -1,6 +1,6 @@
 [package]
 name = "zed_php"
-version = "0.2.2"
+version = "0.2.3"
 edition = "2021"
 publish = false
 license = "Apache-2.0"

extensions/php/extension.toml πŸ”—

@@ -1,7 +1,7 @@
 id = "php"
 name = "PHP"
 description = "PHP support."
-version = "0.2.2"
+version = "0.2.3"
 schema_version = 1
 authors = ["Piotr Osiewicz <piotr@zed.dev>"]
 repository = "https://github.com/zed-industries/zed"

extensions/php/languages/php/textobjects.scm πŸ”—

@@ -0,0 +1,45 @@
+(function_definition
+    body: (_
+        "{"
+        (_)* @function.inside
+        "}" )) @function.around
+
+(method_declaration
+    body: (_
+        "{"
+        (_)* @function.inside
+        "}" )) @function.around
+
+(method_declaration) @function.around
+
+(class_declaration
+    body: (_
+        "{"
+        (_)* @class.inside
+        "}")) @class.around
+
+(interface_declaration
+    body: (_
+        "{"
+        (_)* @class.inside
+        "}")) @class.around
+
+(trait_declaration
+    body: (_
+        "{"
+        (_)* @class.inside
+        "}")) @class.around
+
+(enum_declaration
+    body: (_
+        "{"
+        (_)* @class.inside
+        "}")) @class.around
+
+(namespace_definition
+    body: (_
+        "{"
+        (_)* @class.inside
+        "}")) @class.around
+
+(comment)+ @comment.around

extensions/prisma/extension.toml πŸ”—

@@ -1,7 +1,7 @@
 id = "prisma"
 name = "Prisma"
 description = "Prisma support."
-version = "0.0.3"
+version = "0.0.4"
 schema_version = 1
 authors = ["Matthew Gramigna <matthewgramigna@gmail.com>"]
 repository = "https://github.com/zed-industries/zed"

extensions/prisma/languages/prisma/textobjects.scm πŸ”—

@@ -0,0 +1,25 @@
+(model_declaration
+  (statement_block
+      "{"
+      (_)* @class.inside
+      "}")) @class.around
+
+(datasource_declaration
+  (statement_block
+      "{"
+      (_)* @class.inside
+      "}")) @class.around
+
+(generator_declaration
+  (statement_block
+      "{"
+      (_)* @class.inside
+      "}")) @class.around
+
+(enum_declaration
+  (enum_block
+      "{"
+      (_)* @class.inside
+      "}")) @class.around
+
+(developer_comment)+ @comment.around

extensions/proto/Cargo.toml πŸ”—

@@ -1,6 +1,6 @@
 [package]
 name = "zed_proto"
-version = "0.2.0"
+version = "0.2.1"
 edition = "2021"
 publish = false
 license = "Apache-2.0"

extensions/proto/extension.toml πŸ”—

@@ -1,7 +1,7 @@
 id = "proto"
 name = "Proto"
 description = "Protocol Buffers support."
-version = "0.2.0"
+version = "0.2.1"
 schema_version = 1
 authors = ["Zed Industries <support@zed.dev>"]
 repository = "https://github.com/zed-industries/zed"

extensions/proto/languages/proto/textobjects.scm πŸ”—

@@ -0,0 +1,18 @@
+(message (message_body
+    "{"
+    (_)* @class.inside
+    "}")) @class.around
+(enum (enum_body
+    "{"
+    (_)* @class.inside
+    "}")) @class.around
+(service
+    "service"
+    (_)
+    "{"
+    (_)* @class.inside
+    "}") @class.around
+
+(rpc) @function.around
+
+(comment)+ @comment.around

extensions/toml/Cargo.toml πŸ”—

@@ -1,6 +1,6 @@
 [package]
 name = "zed_toml"
-version = "0.1.1"
+version = "0.1.2"
 edition = "2021"
 publish = false
 license = "Apache-2.0"

extensions/toml/extension.toml πŸ”—

@@ -1,7 +1,7 @@
 id = "toml"
 name = "TOML"
 description = "TOML support."
-version = "0.1.1"
+version = "0.1.2"
 schema_version = 1
 authors = [
     "Max Brunsfeld <max@zed.dev>",

extensions/zig/Cargo.toml πŸ”—

@@ -1,6 +1,6 @@
 [package]
 name = "zed_zig"
-version = "0.3.1"
+version = "0.3.2"
 edition = "2021"
 publish = false
 license = "Apache-2.0"

extensions/zig/extension.toml πŸ”—

@@ -1,7 +1,7 @@
 id = "zig"
 name = "Zig"
 description = "Zig support."
-version = "0.3.1"
+version = "0.3.2"
 schema_version = 1
 authors = ["Allan Calix <contact@acx.dev>"]
 repository = "https://github.com/zed-industries/zed"

extensions/zig/languages/zig/textobjects.scm πŸ”—

@@ -0,0 +1,27 @@
+(function_declaration
+    body: (_
+        "{"
+        (_)* @function.inside
+        "}")) @function.around
+
+(test_declaration
+    (block
+        "{"
+        (_)* @function.inside
+        "}")) @function.around
+
+(variable_declaration
+  (struct_declaration
+    "struct"
+    "{"
+    [(_) ","]* @class.inside
+    "}")) @class.around
+
+(variable_declaration
+  (enum_declaration
+    "enum"
+    "{"
+    (_)* @class.inside
+    "}")) @class.around
+
+(comment)+ @comment.around

script/language-extension-version πŸ”—

@@ -26,4 +26,3 @@ fi
 
 sed -i '' -e "s/^version = \".*\"/version = \"$VERSION\"/" "$EXTENSION_TOML"
 sed -i '' -e "s/^version = \".*\"/version = \"$VERSION\"/" "$CARGO_TOML"
-cargo check