.config/hakari.toml 🔗
@@ -41,5 +41,4 @@ workspace-members = [
"slash_commands_example",
"zed_snippets",
"zed_test_extension",
- "zed_toml",
]
Marshall Bowers created
This PR extracts the TOML extension to the
[zed-extensions/toml](https://github.com/zed-extensions/toml)
repository.
Release Notes:
- N/A
.config/hakari.toml | 1
Cargo.lock | 7
Cargo.toml | 1
docs/src/languages/toml.md | 2
extensions/toml/Cargo.toml | 16 --
extensions/toml/LICENSE-APACHE | 1
extensions/toml/extension.toml | 18 --
extensions/toml/languages/toml/brackets.scm | 3
extensions/toml/languages/toml/config.toml | 11 -
extensions/toml/languages/toml/highlights.scm | 38 -----
extensions/toml/languages/toml/indents.scm | 0
extensions/toml/languages/toml/outline.scm | 15 -
extensions/toml/languages/toml/overrides.scm | 2
extensions/toml/languages/toml/redactions.scm | 1
extensions/toml/languages/toml/textobjects.scm | 6
extensions/toml/src/toml.rs | 152 --------------------
16 files changed, 1 insertion(+), 273 deletions(-)
@@ -41,5 +41,4 @@ workspace-members = [
"slash_commands_example",
"zed_snippets",
"zed_test_extension",
- "zed_toml",
]
@@ -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"
@@ -211,7 +211,6 @@ members = [
"extensions/slash-commands-example",
"extensions/snippets",
"extensions/test-extension",
- "extensions/toml",
#
# Tooling
@@ -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)
@@ -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"
@@ -1 +0,0 @@
-../../LICENSE-APACHE
@@ -1,18 +0,0 @@
-id = "toml"
-name = "TOML"
-description = "TOML support."
-version = "0.1.4"
-schema_version = 1
-authors = [
- "Max Brunsfeld <max@zed.dev>",
- "Ammar Arif <evergreenkary@gmail.com>"
-]
-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"
@@ -1,3 +0,0 @@
-("[" @open "]" @close)
-("{" @open "}" @close)
-("\"" @open "\"" @close)
@@ -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"] },
-]
@@ -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
@@ -1,15 +0,0 @@
-(table
- .
- "["
- .
- (_) @name) @item
-
-(table_array_element
- .
- "[["
- .
- (_) @name) @item
-
-(pair
- .
- (_) @name) @item
@@ -1,2 +0,0 @@
-(comment) @comment.inclusive
-(string) @string
@@ -1 +0,0 @@
-(pair (bare_key) "=" (_) @redact)
@@ -1,6 +0,0 @@
-(comment)+ @comment
-(table "[" (_) "]"
- (_)* @class.inside) @class.around
-
-(table_array_element "[[" (_) "]]"
- (_)* @class.inside) @class.around
@@ -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<Vec<String>>,
-}
-
-struct TomlExtension {
- cached_binary_path: Option<String>,
-}
-
-impl TomlExtension {
- fn language_server_binary(
- &mut self,
- language_server_id: &LanguageServerId,
- worktree: &zed::Worktree,
- ) -> Result<TaploBinary> {
- 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<zed::Command> {
- 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);