From 7a90b1124ff87a3014059f73716c438539add77f Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Tue, 21 May 2024 14:04:02 +0200 Subject: [PATCH] html: release 0.1.0 (#12083) Add config for tag autoclosing: add following to lsp section of your settings: "vscode-html-language-server": { "settings": { "html": { "tagAutoclosing": true } } } It also accepts `css`, `js/ts` and `javascript` as options. Disable HTML language server in JS/TS/TSX files for now. I decided to disable it for now as it caused excessive edits in these types of files (as reported by @mariansimecek in https://github.com/zed-industries/zed/pull/11761#issuecomment-2122038107); it looks like HTML language server tries to track language ranges (e.g. whether a particular span is TS/HTML fragment etc) just like we do. However in plain JS/TSX files it seems like it treats the whole file as one big chunk of HTML, which is.. not right, to say the least. No release note, as HTML extension goodies are not on Preview yet. Release Notes: - N/A --- Cargo.lock | 2 +- crates/languages/src/javascript/config.toml | 4 ++-- crates/languages/src/tsx/config.toml | 4 ++-- extensions/html/Cargo.toml | 2 +- extensions/html/extension.toml | 7 +------ extensions/html/src/html.rs | 12 ++++++++++++ 6 files changed, 19 insertions(+), 12 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b2d2f17f70..9adfd5ab44 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13208,7 +13208,7 @@ dependencies = [ [[package]] name = "zed_html" -version = "0.0.2" +version = "0.1.0" dependencies = [ "zed_extension_api 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ] diff --git a/crates/languages/src/javascript/config.toml b/crates/languages/src/javascript/config.toml index 66d3bcdaa0..32e08c1cd9 100644 --- a/crates/languages/src/javascript/config.toml +++ b/crates/languages/src/javascript/config.toml @@ -16,12 +16,12 @@ brackets = [ ] word_characters = ["$", "#"] tab_size = 2 -scope_opt_in_language_servers = ["tailwindcss-language-server","vscode-html-language-server", "emmet-language-server"] +scope_opt_in_language_servers = ["tailwindcss-language-server", "emmet-language-server"] [overrides.element] line_comments = { remove = true } block_comment = ["{/* ", " */}"] -opt_into_language_servers = ["emmet-language-server", "vscode-html-language-server"] +opt_into_language_servers = ["emmet-language-server"] [overrides.string] word_characters = ["-"] diff --git a/crates/languages/src/tsx/config.toml b/crates/languages/src/tsx/config.toml index 255b611d25..f7c8b80a90 100644 --- a/crates/languages/src/tsx/config.toml +++ b/crates/languages/src/tsx/config.toml @@ -14,13 +14,13 @@ brackets = [ { start = "/*", end = " */", close = true, newline = false, not_in = ["string", "comment"] }, ] word_characters = ["#", "$"] -scope_opt_in_language_servers = ["vscode-html-language-server", "tailwindcss-language-server", "emmet-language-server"] +scope_opt_in_language_servers = ["tailwindcss-language-server", "emmet-language-server"] tab_size = 2 [overrides.element] line_comments = { remove = true } block_comment = ["{/* ", " */}"] -opt_into_language_servers = ["vscode-html-language-server", "emmet-language-server"] +opt_into_language_servers = ["emmet-language-server"] [overrides.string] word_characters = ["-"] diff --git a/extensions/html/Cargo.toml b/extensions/html/Cargo.toml index f992647d57..5a2cf0b687 100644 --- a/extensions/html/Cargo.toml +++ b/extensions/html/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zed_html" -version = "0.0.2" +version = "0.1.0" edition = "2021" publish = false license = "Apache-2.0" diff --git a/extensions/html/extension.toml b/extensions/html/extension.toml index 0406749240..063716b7ae 100644 --- a/extensions/html/extension.toml +++ b/extensions/html/extension.toml @@ -1,7 +1,7 @@ id = "html" name = "HTML" description = "HTML support." -version = "0.0.2" +version = "0.1.0" schema_version = 1 authors = ["Isaac Clayton "] repository = "https://github.com/zed-industries/zed" @@ -9,14 +9,9 @@ repository = "https://github.com/zed-industries/zed" [language_servers.vscode-html-language-server] name = "vscode-html-language-server" language = "HTML" -languages = ["TypeScript", "HTML", "TSX", "JavaScript", "JSDoc"] [language_servers.vscode-html-language-server.language_ids] "HTML" = "html" -"PHP" = "php" -"ERB" = "eruby" -"JavaScript" = "javascriptreact" -"TSX" = "typescriptreact" "CSS" = "css" [grammars.html] diff --git a/extensions/html/src/html.rs b/extensions/html/src/html.rs index 8d8b1af6ab..b143dfe54d 100644 --- a/extensions/html/src/html.rs +++ b/extensions/html/src/html.rs @@ -1,3 +1,4 @@ +use crate::zed::settings::LspSettings; use std::{env, fs, path::PathBuf}; use zed_extension_api::{self as zed, Result}; @@ -95,6 +96,17 @@ impl zed::Extension for HtmlExtension { env: Default::default(), }) } + fn language_server_workspace_configuration( + &mut self, + server_id: &zed::LanguageServerId, + worktree: &zed::Worktree, + ) -> Result> { + let settings = LspSettings::for_worktree(server_id.as_ref(), worktree) + .ok() + .and_then(|lsp_settings| lsp_settings.settings.clone()) + .unwrap_or_default(); + Ok(Some(settings)) + } } zed::register_extension!(HtmlExtension);