From e610d86194a4c15e8eafac3aee1789f9a63bb90f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asbj=C3=B8rn=20Rysgaard=20Eriksen?= Date: Mon, 28 Apr 2025 22:48:09 +0200 Subject: [PATCH] languages/emmet: add module --- configuration.nix | 1 + docs/release-notes/rl-0.8.md | 6 +++++ modules/plugins/languages/default.nix | 1 + modules/plugins/languages/emmet.nix | 39 +++++++++++++++++++++++++++ 4 files changed, 47 insertions(+) create mode 100644 modules/plugins/languages/emmet.nix diff --git a/configuration.nix b/configuration.nix index 011d6fae..3e909b48 100644 --- a/configuration.nix +++ b/configuration.nix @@ -69,6 +69,7 @@ isMaximal: { # Language modules that are not as common. assembly.enable = false; astro.enable = false; + emmet.enable = false; nu.enable = false; csharp.enable = false; julia.enable = false; diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index edf90e62..cc5bba22 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -97,6 +97,12 @@ - Add Haskell support under `vim.languages.haskell` using [haskell-tools.nvim]. +[Bliztle](https://github.com/Bliztle): + +[emmet-language-server]: https://github.com/olrtg/emmet-language-server + +- Add Emmet support under `vim.languages.emmet` using [emmet-language-server]. + [horriblename](https://github.com/horriblename): [blink.cmp]: https://github.com/saghen/blink.cmp diff --git a/modules/plugins/languages/default.nix b/modules/plugins/languages/default.nix index b889e60a..bcdf6c8c 100644 --- a/modules/plugins/languages/default.nix +++ b/modules/plugins/languages/default.nix @@ -14,6 +14,7 @@ in { ./clang.nix ./css.nix ./elixir.nix + ./emmet.nix ./fsharp.nix ./gleam.nix ./go.nix diff --git a/modules/plugins/languages/emmet.nix b/modules/plugins/languages/emmet.nix new file mode 100644 index 00000000..a6a2ebdb --- /dev/null +++ b/modules/plugins/languages/emmet.nix @@ -0,0 +1,39 @@ +{ + config, + pkgs, + lib, + ... +}: let + inherit (lib.options) mkEnableOption mkOption; + inherit (lib.modules) mkIf mkMerge; + inherit (lib.types) package; + + cfg = config.vim.languages.emmet; +in { + options.vim.languages.emmet = { + enable = mkEnableOption "Emmet support"; + # No treesitter options, as this lsp only adds completions + + lsp = { + enable = mkEnableOption "Emmet LSP support (emmet-language-server)" // {default = config.vim.languages.enableLSP;}; + + package = mkOption { + type = package; + default = pkgs.emmet-language-server; + description = "emmet-language-server package"; + }; + }; + }; + config = mkIf cfg.enable (mkMerge [ + (mkIf cfg.lsp.enable { + vim.lsp.lspconfig.enable = true; + vim.lsp.lspconfig.sources.emmet_language_server = '' + lspconfig.emmet_language_server.setup { + capabilities = capabilities, + on_attach = default_on_attach, + cmd = { "${cfg.lsp.package}/bin/emmet-language-server", "--stdio" } + } + ''; + }) + ]); +}