diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md index ce0e34a4..99219111 100644 --- a/docs/manual/release-notes/rl-0.9.md +++ b/docs/manual/release-notes/rl-0.9.md @@ -381,6 +381,9 @@ - Added [Selenen](https://github.com/kampfkarren/selene) for more diagnostics in `languages.lua`. +- Added the [Stimulus LSP](https://github.com/marcoroth/stimulus-lsp) as LSP + preset. + - Added `languages.docker` for Docker and Docker-Compose support. Thanks to [poseidon-rises](https://github.com/poseidon-rises) for creating most of it in [!1104](https://github.com/NotAShelf/nvf/pull/1104). diff --git a/modules/plugins/languages/html.nix b/modules/plugins/languages/html.nix index 9596d74e..b398b982 100644 --- a/modules/plugins/languages/html.nix +++ b/modules/plugins/languages/html.nix @@ -18,7 +18,7 @@ cfg = config.vim.languages.html; defaultServers = ["superhtml"]; - servers = ["superhtml" "emmet-ls" "angular-language-server"]; + servers = ["superhtml" "emmet-ls" "angular-language-server" "stimulus-language-server"]; defaultFormat = ["superhtml"]; formats = { diff --git a/modules/plugins/languages/jinja.nix b/modules/plugins/languages/jinja.nix index e8de65f9..97b2761a 100644 --- a/modules/plugins/languages/jinja.nix +++ b/modules/plugins/languages/jinja.nix @@ -13,7 +13,7 @@ cfg = config.vim.languages.jinja; defaultServers = ["jinja-lsp"]; - servers = ["jinja-lsp" "emmet-ls"]; + servers = ["jinja-lsp" "emmet-ls" "stimulus-language-server"]; in { options.vim.languages.jinja = { enable = mkEnableOption "Jinja template language support"; diff --git a/modules/plugins/languages/ruby.nix b/modules/plugins/languages/ruby.nix index dc6ff702..4c8415d8 100644 --- a/modules/plugins/languages/ruby.nix +++ b/modules/plugins/languages/ruby.nix @@ -16,7 +16,7 @@ cfg = config.vim.languages.ruby; defaultServers = ["solargraph"]; - servers = ["ruby-lsp" "solargraph"]; + servers = ["ruby-lsp" "solargraph" "stimulus-language-server"]; # testing diff --git a/modules/plugins/languages/tera.nix b/modules/plugins/languages/tera.nix index e9388f5f..230a7d9a 100644 --- a/modules/plugins/languages/tera.nix +++ b/modules/plugins/languages/tera.nix @@ -13,7 +13,7 @@ cfg = config.vim.languages.tera; defaultServers = []; - servers = ["emmet-ls"]; + servers = ["emmet-ls" "stimulus-language-server"]; in { options.vim.languages.tera = { enable = mkEnableOption "Tera templating language support"; diff --git a/modules/plugins/languages/twig.nix b/modules/plugins/languages/twig.nix index dd5744a1..59b5d56a 100644 --- a/modules/plugins/languages/twig.nix +++ b/modules/plugins/languages/twig.nix @@ -16,7 +16,7 @@ cfg = config.vim.languages.twig; defaultServers = ["twig-language-server"]; - servers = ["twig-language-server" "emmet-ls"]; + servers = ["twig-language-server" "emmet-ls" "stimulus-language-server"]; defaultFormat = ["djlint"]; formats = { diff --git a/modules/plugins/lsp/presets/default.nix b/modules/plugins/lsp/presets/default.nix index 1b4bdedf..e2f5ae5a 100644 --- a/modules/plugins/lsp/presets/default.nix +++ b/modules/plugins/lsp/presets/default.nix @@ -61,6 +61,7 @@ ./solargraph.nix ./some-sass-language-server.nix ./sqls.nix + ./stimulus-language-server.nix ./superhtml.nix ./svelte-language-server.nix ./tailwindcss-language-server.nix diff --git a/modules/plugins/lsp/presets/stimulus-language-server.nix b/modules/plugins/lsp/presets/stimulus-language-server.nix new file mode 100644 index 00000000..d647e8c1 --- /dev/null +++ b/modules/plugins/lsp/presets/stimulus-language-server.nix @@ -0,0 +1,26 @@ +{ + config, + lib, + pkgs, + inputs, + ... +}: let + inherit (lib.meta) getExe; + inherit (lib.modules) mkIf; + inherit (lib.nvim.types) mkLspPresetEnableOption; + + cfg = config.vim.lsp.presets.stimulus-language-server; +in { + options.vim.lsp.presets.stimulus-language-server = { + enable = mkLspPresetEnableOption "stimulus-language-server" "Stimulus" []; + }; + + config = mkIf cfg.enable { + vim.lsp.servers.stimulus-language-server = { + enable = true; + cmd = [(getExe inputs.self.packages.${pkgs.stdenv.hostPlatform.system}.stimulus-language-server) "--stdio"]; + root_markers = [".git"]; + workspace_required = true; + }; + }; +}