From 1fccda7b8d1fc6d82befce6921a35538625f9e7a Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Tue, 3 Dec 2024 12:56:25 -0800 Subject: [PATCH] Add text objects to extensions (#21488) Release Notes: - Adds textobject support to erlang, haskell, lua, php, prisma, proto, toml, and zig --- Cargo.lock | 16 +++---- extensions/erlang/Cargo.toml | 2 +- extensions/erlang/extension.toml | 2 +- .../erlang/languages/erlang/textobjects.scm | 6 +++ extensions/haskell/Cargo.toml | 2 +- extensions/haskell/extension.toml | 2 +- .../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 +- .../prisma/languages/prisma/textobjects.scm | 25 +++++++++++ extensions/proto/Cargo.toml | 2 +- extensions/proto/extension.toml | 2 +- .../proto/languages/proto/textobjects.scm | 18 ++++++++ extensions/toml/Cargo.toml | 2 +- extensions/toml/extension.toml | 2 +- .../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(-) create mode 100644 extensions/erlang/languages/erlang/textobjects.scm create mode 100644 extensions/haskell/languages/haskell/textobjects.scm create mode 100644 extensions/lua/languages/lua/textobjects.scm create mode 100644 extensions/php/languages/php/textobjects.scm create mode 100644 extensions/prisma/languages/prisma/textobjects.scm create mode 100644 extensions/proto/languages/proto/textobjects.scm create mode 100644 extensions/toml/languages/toml/textobjects.scm create mode 100644 extensions/zig/languages/zig/textobjects.scm diff --git a/Cargo.lock b/Cargo.lock index 1bd064ca4c572bfadb0d18fe93ac8d6750ce4ac1..6266df7d8667f8dffcfb41f74bda1974c9bc04ca 100644 --- a/Cargo.lock +++ b/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", ] diff --git a/extensions/erlang/Cargo.toml b/extensions/erlang/Cargo.toml index 50673448963bf9a55eaf4961db953e27b1447e3e..ca354e0cbc9742427ca3e5c4d9e9de514f6d1f34 100644 --- a/extensions/erlang/Cargo.toml +++ b/extensions/erlang/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zed_erlang" -version = "0.1.0" +version = "0.1.1" edition = "2021" publish = false license = "Apache-2.0" diff --git a/extensions/erlang/extension.toml b/extensions/erlang/extension.toml index 8dd2628fd26f8d011ca1bd0a78c039a2861bc4cb..f6e903ccf9f24fc75f1be562308711cdf4a2df33 100644 --- a/extensions/erlang/extension.toml +++ b/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 ", "Fabian Bergström "] repository = "https://github.com/zed-industries/zed" diff --git a/extensions/erlang/languages/erlang/textobjects.scm b/extensions/erlang/languages/erlang/textobjects.scm new file mode 100644 index 0000000000000000000000000000000000000000..e802a2f36273263d304d6ab124f541f9ab329e17 --- /dev/null +++ b/extensions/erlang/languages/erlang/textobjects.scm @@ -0,0 +1,6 @@ +(function_clause + body: (_ "->" (_)* @function.inside)) @function.around + +(type_alias ty: (_) @class.inside) @class.around + +(comment)+ @comment.around diff --git a/extensions/haskell/Cargo.toml b/extensions/haskell/Cargo.toml index 0b69075a20177d3974a4e98ef44a3d5c8bb8691c..c106a0dd1bcba0e64ba47ff1020dc55f624090d4 100644 --- a/extensions/haskell/Cargo.toml +++ b/extensions/haskell/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zed_haskell" -version = "0.1.1" +version = "0.1.2" edition = "2021" publish = false license = "Apache-2.0" diff --git a/extensions/haskell/extension.toml b/extensions/haskell/extension.toml index 2ef30cb3d5eddb55c5909ce2da354b8069dd1c68..003687136ea0c83d269a6aba49316c200fc747d2 100644 --- a/extensions/haskell/extension.toml +++ b/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 ", diff --git a/extensions/haskell/languages/haskell/textobjects.scm b/extensions/haskell/languages/haskell/textobjects.scm new file mode 100644 index 0000000000000000000000000000000000000000..4302397467013ee65514efcf249b034af879383d --- /dev/null +++ b/extensions/haskell/languages/haskell/textobjects.scm @@ -0,0 +1,12 @@ +(comment)+ @comment.around + +[ + (adt) + (type_alias) + (newtype) +] @class.around + +(record_fields "{" (_)* @class.inside "}") + +((signature)? (function)+) @function.around +(function rhs:(_) @function.inside) diff --git a/extensions/lua/Cargo.toml b/extensions/lua/Cargo.toml index f577ce18712c4b1ee1e20255f7f2c628d32a958a..8eec6ed62f020b5e026c06aedb0e29b452bee879 100644 --- a/extensions/lua/Cargo.toml +++ b/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" diff --git a/extensions/lua/extension.toml b/extensions/lua/extension.toml index 82026f48ba90dc1c85a358bbd6890646c8562d13..52120cdfa2222375b381de82f2d617c2c3f908f2 100644 --- a/extensions/lua/extension.toml +++ b/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 "] repository = "https://github.com/zed-industries/zed" diff --git a/extensions/lua/languages/lua/textobjects.scm b/extensions/lua/languages/lua/textobjects.scm new file mode 100644 index 0000000000000000000000000000000000000000..1f8bf66059be31cc8056c27337f02e29ef5362bb --- /dev/null +++ b/extensions/lua/languages/lua/textobjects.scm @@ -0,0 +1,7 @@ +(function_definition + body: (_) @function.inside) @function.around + +(function_declaration + body: (_) @function.inside) @function.around + +(comment)+ @comment.around diff --git a/extensions/php/Cargo.toml b/extensions/php/Cargo.toml index a78c133e8e4fba76fd09e5505ca752f09b98c8e2..8bf6a523f4ebc750c8ba07ff5f67eccd7673f6fa 100644 --- a/extensions/php/Cargo.toml +++ b/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" diff --git a/extensions/php/extension.toml b/extensions/php/extension.toml index eec2fe5d39d03a23a551371c20f3d05d616382e9..a2bc1d921ed8eda2db906fe9b878eddfe4af1274 100644 --- a/extensions/php/extension.toml +++ b/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 "] repository = "https://github.com/zed-industries/zed" diff --git a/extensions/php/languages/php/textobjects.scm b/extensions/php/languages/php/textobjects.scm new file mode 100644 index 0000000000000000000000000000000000000000..d86a0c125212d94c0a5313f637868cda7b285f36 --- /dev/null +++ b/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 diff --git a/extensions/prisma/Cargo.toml b/extensions/prisma/Cargo.toml index e5a261266aff3548f04bcd57056d8dbae6648fbd..68256bd1cc62d1f2131522b0d509682b53cbec67 100644 --- a/extensions/prisma/Cargo.toml +++ b/extensions/prisma/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zed_prisma" -version = "0.0.3" +version = "0.0.4" edition = "2021" publish = false license = "Apache-2.0" diff --git a/extensions/prisma/extension.toml b/extensions/prisma/extension.toml index 449f990d2f855169cd2e2866b62fb51f7127fc85..22b2bd9f2b21836f1a2f1b611770396956b77bbe 100644 --- a/extensions/prisma/extension.toml +++ b/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 "] repository = "https://github.com/zed-industries/zed" diff --git a/extensions/prisma/languages/prisma/textobjects.scm b/extensions/prisma/languages/prisma/textobjects.scm new file mode 100644 index 0000000000000000000000000000000000000000..0158c90786959cc9a5a662d29ef98d41e596045f --- /dev/null +++ b/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 diff --git a/extensions/proto/Cargo.toml b/extensions/proto/Cargo.toml index 215a09f896c1dfc8ea05289d5a19916440907a6b..03c9bc5626c251eb2270124b2334f866a85a2a04 100644 --- a/extensions/proto/Cargo.toml +++ b/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" diff --git a/extensions/proto/extension.toml b/extensions/proto/extension.toml index f26aee7dde5c3c4384f1b78017f1284726f20538..232602faf7fb2a44d37069b6d72179b1d6441e38 100644 --- a/extensions/proto/extension.toml +++ b/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 "] repository = "https://github.com/zed-industries/zed" diff --git a/extensions/proto/languages/proto/textobjects.scm b/extensions/proto/languages/proto/textobjects.scm new file mode 100644 index 0000000000000000000000000000000000000000..90ea84282da39df8a2023108c367c3ef76a0ef9a --- /dev/null +++ b/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 diff --git a/extensions/toml/Cargo.toml b/extensions/toml/Cargo.toml index 3aa7b692246fd3a6fd860d944b1899583749aa6c..85d933e2369efca43b7f4a046a1a40af0703e375 100644 --- a/extensions/toml/Cargo.toml +++ b/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" diff --git a/extensions/toml/extension.toml b/extensions/toml/extension.toml index 15db5c464d049af40b5c4ec2d25108d46198ee57..a8b92502263aa24ba291f9e763d98de11a35c93f 100644 --- a/extensions/toml/extension.toml +++ b/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 ", diff --git a/extensions/toml/languages/toml/textobjects.scm b/extensions/toml/languages/toml/textobjects.scm new file mode 100644 index 0000000000000000000000000000000000000000..f5b4856e27a76a90d577f54fdd6104ec6bce795f --- /dev/null +++ b/extensions/toml/languages/toml/textobjects.scm @@ -0,0 +1,6 @@ +(comment)+ @comment +(table "[" (_) "]" + (_)* @class.inside) @class.around + +(table_array_element "[[" (_) "]]" + (_)* @class.inside) @class.around diff --git a/extensions/zig/Cargo.toml b/extensions/zig/Cargo.toml index 63f3c5c007683304491a8c90bf418fe2da37f72c..e29542d27e5a55c1646a64d2ee59aa4a3a6d7cff 100644 --- a/extensions/zig/Cargo.toml +++ b/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" diff --git a/extensions/zig/extension.toml b/extensions/zig/extension.toml index bcd4f5855530662d1752e64ef4d753e63c7d7c8e..380300683b72576967640aff11c616e108f00b1d 100644 --- a/extensions/zig/extension.toml +++ b/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 "] repository = "https://github.com/zed-industries/zed" diff --git a/extensions/zig/languages/zig/textobjects.scm b/extensions/zig/languages/zig/textobjects.scm new file mode 100644 index 0000000000000000000000000000000000000000..b08df97ea96433ed596c73fe32f0a5a475a53f22 --- /dev/null +++ b/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 diff --git a/script/language-extension-version b/script/language-extension-version index fc5c4487368e62c7dae1f6263b525a66af8c9507..d547886087c71695d673efbd2151eff298b9afe7 100755 --- a/script/language-extension-version +++ b/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