From 6e2be283dd30d417e3a0796a7bab4d2923bfedf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Ol=C3=B3rtegui?= <20072509+olrtg@users.noreply.github.com> Date: Mon, 6 May 2024 06:09:19 -0400 Subject: [PATCH] emmet: Support more languages (#10779) Hey guys! `emmet-language-server` author here. Thank you so much for the amazing editor! This PR adds more languages to the list for the `emmet-language-server` to attach to. I have a question though, I saw that you guys don't differentiate yet between `JavaScript` and `JSX` files. I know that the tree-sitter parser for `js` comes with the ability to parse both but we still need to make that difference. Is that part of the plan? or do you have a reason for doing that? Aside from that, I've still added support for `JavaScript` files since is important to have emmet completions in `JSX` files, but I would like to know what are your thoughts on that since doing this may pollute the completions in `.js` files. And one last thing, the emmet language server accepts more filetypes such as `pug`, `sass`, `scss` and `less` files, which are not currently supported by zed. Should I create some extensions to add grammar support to those files later? Should those extensions be part of the zed repo? I'm just thinking that those are sort of core languages. Aside from that, let me know if there's anything left to do on my side. Greetings! Fixes #10654. Release Notes: - N/A --- crates/languages/src/javascript/config.toml | 3 ++- crates/languages/src/tsx/config.toml | 3 ++- extensions/emmet/extension.toml | 10 +++++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/crates/languages/src/javascript/config.toml b/crates/languages/src/javascript/config.toml index bbfec1213bae420391423c916affe1dcd233be1d..460ee0e0fdae377b9bfc0192bd4713f96fcbe0bb 100644 --- a/crates/languages/src/javascript/config.toml +++ b/crates/languages/src/javascript/config.toml @@ -16,12 +16,13 @@ brackets = [ ] word_characters = ["$", "#"] tab_size = 2 -scope_opt_in_language_servers = ["tailwindcss-language-server"] +scope_opt_in_language_servers = ["tailwindcss-language-server", "emmet-language-server"] prettier_parser_name = "babel" [overrides.element] line_comments = { remove = true } block_comment = ["{/* ", " */}"] +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 044fc15d8159333e66a4494a21f1d3fd63a5ed73..3cd377ce0b299fcbdd51015287fe2df32f40f6ef 100644 --- a/crates/languages/src/tsx/config.toml +++ b/crates/languages/src/tsx/config.toml @@ -14,13 +14,14 @@ brackets = [ { start = "/*", end = " */", close = true, newline = false, not_in = ["string", "comment"] }, ] word_characters = ["#", "$"] -scope_opt_in_language_servers = ["tailwindcss-language-server"] +scope_opt_in_language_servers = ["tailwindcss-language-server", "emmet-language-server"] prettier_parser_name = "typescript" tab_size = 2 [overrides.element] line_comments = { remove = true } block_comment = ["{/* ", " */}"] +opt_into_language_servers = ["emmet-language-server"] [overrides.string] word_characters = ["-"] diff --git a/extensions/emmet/extension.toml b/extensions/emmet/extension.toml index 7c0a63ef3189cfb78341e3dc14888d7da58ed6c2..d42579607a6a1e39009562da19fddacc1118a2a5 100644 --- a/extensions/emmet/extension.toml +++ b/extensions/emmet/extension.toml @@ -9,4 +9,12 @@ repository = "https://github.com/zed-industries/zed" [language_servers.emmet-language-server] name = "Emmet Language Server" language = "HTML" -languages = ["HTML", "PHP", "ERB"] +languages = ["HTML", "PHP", "ERB", "JavaScript", "TSX", "CSS"] + +[language_servers.emmet-language-server.language_ids] +"HTML" = "html" +"PHP" = "php" +"ERB" = "eruby" +"JavaScript" = "javascriptreact" +"TSX" = "typescriptreact" +"CSS" = "css"