diff --git a/.config/hakari.toml b/.config/hakari.toml index 8ce0b77490482ab5ff2d781fb78fd86b56959a6a..e8f094e618b39138df95bbdb58e5800cd396fad5 100644 --- a/.config/hakari.toml +++ b/.config/hakari.toml @@ -41,5 +41,4 @@ workspace-members = [ "slash_commands_example", "zed_snippets", "zed_test_extension", - "zed_toml", ] diff --git a/Cargo.lock b/Cargo.lock index 50632ef0a4b8f23b9301c8525fe83235e49ff5f8..1a15d11e664f808d4ba68d61a3ad7a6c557c2420 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -20653,13 +20653,6 @@ dependencies = [ "zed_extension_api 0.6.0", ] -[[package]] -name = "zed_toml" -version = "0.1.4" -dependencies = [ - "zed_extension_api 0.1.0", -] - [[package]] name = "zeno" version = "0.3.2" diff --git a/Cargo.toml b/Cargo.toml index 6c9ca3b4a6e636adc32a6e1f48386bd240055c12..f389153efe9d0719187d14bb554042fcf2888376 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -211,7 +211,6 @@ members = [ "extensions/slash-commands-example", "extensions/snippets", "extensions/test-extension", - "extensions/toml", # # Tooling diff --git a/docs/src/languages/toml.md b/docs/src/languages/toml.md index eb51dbb93bf3031449744ccd4617992f46d31351..40a6b880fccce87c20a61029418490021719fb98 100644 --- a/docs/src/languages/toml.md +++ b/docs/src/languages/toml.md @@ -1,6 +1,6 @@ # TOML -TOML support is available through the [TOML extension](https://github.com/zed-industries/zed/tree/main/extensions/toml). +TOML support is available through the [TOML extension](https://github.com/zed-extensions/toml). - Tree-sitter: [tree-sitter/tree-sitter-toml](https://github.com/tree-sitter/tree-sitter-toml) - Language Server: [tamasfe/taplo](https://github.com/tamasfe/taplo) diff --git a/extensions/toml/Cargo.toml b/extensions/toml/Cargo.toml deleted file mode 100644 index 25c2c418084dc89fe4c402c1abe13d5535bf6447..0000000000000000000000000000000000000000 --- a/extensions/toml/Cargo.toml +++ /dev/null @@ -1,16 +0,0 @@ -[package] -name = "zed_toml" -version = "0.1.4" -edition.workspace = true -publish.workspace = true -license = "Apache-2.0" - -[lints] -workspace = true - -[lib] -path = "src/toml.rs" -crate-type = ["cdylib"] - -[dependencies] -zed_extension_api = "0.1.0" diff --git a/extensions/toml/LICENSE-APACHE b/extensions/toml/LICENSE-APACHE deleted file mode 120000 index 1cd601d0a3affae83854be02a0afdec3b7a9ec4d..0000000000000000000000000000000000000000 --- a/extensions/toml/LICENSE-APACHE +++ /dev/null @@ -1 +0,0 @@ -../../LICENSE-APACHE \ No newline at end of file diff --git a/extensions/toml/extension.toml b/extensions/toml/extension.toml deleted file mode 100644 index 5be7213c40362ec4bbeba8cb0846a507d9ec9e7e..0000000000000000000000000000000000000000 --- a/extensions/toml/extension.toml +++ /dev/null @@ -1,18 +0,0 @@ -id = "toml" -name = "TOML" -description = "TOML support." -version = "0.1.4" -schema_version = 1 -authors = [ - "Max Brunsfeld ", - "Ammar Arif " -] -repository = "https://github.com/zed-industries/zed" - -[language_servers.taplo] -name = "Taplo" -language = "TOML" - -[grammars.toml] -repository = "https://github.com/tree-sitter/tree-sitter-toml" -commit = "342d9be207c2dba869b9967124c679b5e6fd0ebe" diff --git a/extensions/toml/languages/toml/brackets.scm b/extensions/toml/languages/toml/brackets.scm deleted file mode 100644 index 9e8c9cd93c30f7697ead2161295b4583ffdfb93b..0000000000000000000000000000000000000000 --- a/extensions/toml/languages/toml/brackets.scm +++ /dev/null @@ -1,3 +0,0 @@ -("[" @open "]" @close) -("{" @open "}" @close) -("\"" @open "\"" @close) diff --git a/extensions/toml/languages/toml/config.toml b/extensions/toml/languages/toml/config.toml deleted file mode 100644 index f62290d9e9244603eaa22dc98297f84f694635e4..0000000000000000000000000000000000000000 --- a/extensions/toml/languages/toml/config.toml +++ /dev/null @@ -1,11 +0,0 @@ -name = "TOML" -grammar = "toml" -path_suffixes = ["Cargo.lock", "toml", "Pipfile", "uv.lock"] -line_comments = ["# "] -autoclose_before = ",]}" -brackets = [ - { start = "{", end = "}", close = true, newline = true }, - { start = "[", end = "]", close = true, newline = true }, - { start = "\"", end = "\"", close = true, newline = false, not_in = ["comment", "string"] }, - { start = "'", end = "'", close = true, newline = false, not_in = ["comment", "string"] }, -] diff --git a/extensions/toml/languages/toml/highlights.scm b/extensions/toml/languages/toml/highlights.scm deleted file mode 100644 index 4be265cce74b3d8916e96f428550ea405db915e0..0000000000000000000000000000000000000000 --- a/extensions/toml/languages/toml/highlights.scm +++ /dev/null @@ -1,38 +0,0 @@ -; Properties -;----------- - -(bare_key) @property -(quoted_key) @property - -; Literals -;--------- - -(boolean) @constant -(comment) @comment -(integer) @number -(float) @number -(string) @string -(escape_sequence) @string.escape -(offset_date_time) @string.special -(local_date_time) @string.special -(local_date) @string.special -(local_time) @string.special - -; Punctuation -;------------ - -[ - "." - "," -] @punctuation.delimiter - -"=" @operator - -[ - "[" - "]" - "[[" - "]]" - "{" - "}" -] @punctuation.bracket diff --git a/extensions/toml/languages/toml/indents.scm b/extensions/toml/languages/toml/indents.scm deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/extensions/toml/languages/toml/outline.scm b/extensions/toml/languages/toml/outline.scm deleted file mode 100644 index 0b3794962835a6c993e212aef5607bc859196fe9..0000000000000000000000000000000000000000 --- a/extensions/toml/languages/toml/outline.scm +++ /dev/null @@ -1,15 +0,0 @@ -(table - . - "[" - . - (_) @name) @item - -(table_array_element - . - "[[" - . - (_) @name) @item - -(pair - . - (_) @name) @item diff --git a/extensions/toml/languages/toml/overrides.scm b/extensions/toml/languages/toml/overrides.scm deleted file mode 100644 index 81fec9a5f57b28fc67b4781ec37df43559e21dc9..0000000000000000000000000000000000000000 --- a/extensions/toml/languages/toml/overrides.scm +++ /dev/null @@ -1,2 +0,0 @@ -(comment) @comment.inclusive -(string) @string diff --git a/extensions/toml/languages/toml/redactions.scm b/extensions/toml/languages/toml/redactions.scm deleted file mode 100644 index a906e9ac7b3e6561937ec7642e851a71fa2e3fec..0000000000000000000000000000000000000000 --- a/extensions/toml/languages/toml/redactions.scm +++ /dev/null @@ -1 +0,0 @@ -(pair (bare_key) "=" (_) @redact) diff --git a/extensions/toml/languages/toml/textobjects.scm b/extensions/toml/languages/toml/textobjects.scm deleted file mode 100644 index f5b4856e27a76a90d577f54fdd6104ec6bce795f..0000000000000000000000000000000000000000 --- a/extensions/toml/languages/toml/textobjects.scm +++ /dev/null @@ -1,6 +0,0 @@ -(comment)+ @comment -(table "[" (_) "]" - (_)* @class.inside) @class.around - -(table_array_element "[[" (_) "]]" - (_)* @class.inside) @class.around diff --git a/extensions/toml/src/toml.rs b/extensions/toml/src/toml.rs deleted file mode 100644 index c9b96aecacd17d192fad9b6801973c2f2389cf98..0000000000000000000000000000000000000000 --- a/extensions/toml/src/toml.rs +++ /dev/null @@ -1,152 +0,0 @@ -use std::fs; -use zed::LanguageServerId; -use zed_extension_api::settings::LspSettings; -use zed_extension_api::{self as zed, Result}; - -struct TaploBinary { - path: String, - args: Option>, -} - -struct TomlExtension { - cached_binary_path: Option, -} - -impl TomlExtension { - fn language_server_binary( - &mut self, - language_server_id: &LanguageServerId, - worktree: &zed::Worktree, - ) -> Result { - let binary_settings = LspSettings::for_worktree("taplo", worktree) - .ok() - .and_then(|lsp_settings| lsp_settings.binary); - let binary_args = binary_settings - .as_ref() - .and_then(|binary_settings| binary_settings.arguments.clone()); - - if let Some(path) = binary_settings.and_then(|binary_settings| binary_settings.path) { - return Ok(TaploBinary { - path, - args: binary_args, - }); - } - - if let Some(path) = worktree.which("taplo") { - return Ok(TaploBinary { - path, - args: binary_args, - }); - } - - if let Some(path) = &self.cached_binary_path - && fs::metadata(path).is_ok_and(|stat| stat.is_file()) - { - return Ok(TaploBinary { - path: path.clone(), - args: binary_args, - }); - } - - zed::set_language_server_installation_status( - language_server_id, - &zed::LanguageServerInstallationStatus::CheckingForUpdate, - ); - let release = zed::latest_github_release( - "tamasfe/taplo", - zed::GithubReleaseOptions { - require_assets: true, - pre_release: false, - }, - )?; - - let (platform, arch) = zed::current_platform(); - let asset_name = format!( - "taplo-{os}-{arch}.gz", - arch = match arch { - zed::Architecture::Aarch64 => "aarch64", - zed::Architecture::X86 => "x86", - zed::Architecture::X8664 => "x86_64", - }, - os = match platform { - zed::Os::Mac => "darwin", - zed::Os::Linux => "linux", - zed::Os::Windows => "windows", - }, - ); - - let asset = release - .assets - .iter() - .find(|asset| asset.name == asset_name) - .ok_or_else(|| format!("no asset found matching {:?}", asset_name))?; - - let version_dir = format!("taplo-{}", release.version); - fs::create_dir_all(&version_dir) - .map_err(|err| format!("failed to create directory '{version_dir}': {err}"))?; - - let binary_path = format!( - "{version_dir}/{bin_name}", - bin_name = match platform { - zed::Os::Windows => "taplo.exe", - zed::Os::Mac | zed::Os::Linux => "taplo", - } - ); - - if !fs::metadata(&binary_path).is_ok_and(|stat| stat.is_file()) { - zed::set_language_server_installation_status( - language_server_id, - &zed::LanguageServerInstallationStatus::Downloading, - ); - - zed::download_file( - &asset.download_url, - &binary_path, - zed::DownloadedFileType::Gzip, - ) - .map_err(|err| format!("failed to download file: {err}"))?; - - zed::make_file_executable(&binary_path)?; - - let entries = fs::read_dir(".") - .map_err(|err| format!("failed to list working directory {err}"))?; - for entry in entries { - let entry = entry.map_err(|err| format!("failed to load directory entry {err}"))?; - if entry.file_name().to_str() != Some(&version_dir) { - fs::remove_dir_all(entry.path()).ok(); - } - } - } - - self.cached_binary_path = Some(binary_path.clone()); - Ok(TaploBinary { - path: binary_path, - args: binary_args, - }) - } -} - -impl zed::Extension for TomlExtension { - fn new() -> Self { - Self { - cached_binary_path: None, - } - } - - fn language_server_command( - &mut self, - language_server_id: &LanguageServerId, - worktree: &zed::Worktree, - ) -> Result { - let taplo_binary = self.language_server_binary(language_server_id, worktree)?; - Ok(zed::Command { - command: taplo_binary.path, - args: taplo_binary - .args - .unwrap_or_else(|| vec!["lsp".to_string(), "stdio".to_string()]), - env: Default::default(), - }) - } -} - -zed::register_extension!(TomlExtension);