diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md index 35afc9f9..9c85f052 100644 --- a/docs/manual/release-notes/rl-0.9.md +++ b/docs/manual/release-notes/rl-0.9.md @@ -275,6 +275,9 @@ more flexibility in nvf and reuse of LSPs across languages. Dropped `deprecatedSingleOrListOf` in favor of `listOf` for the affected LSP options. +- Added {option}`vim.lsp.presets.angular-language-server.enable` for Angular + Template support. + - Fix `vim.lsp.presets.vala-language-server` to be wrapped correctly with `uncrustify`. diff --git a/modules/plugins/languages/html.nix b/modules/plugins/languages/html.nix index 7531bdfe..9596d74e 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"]; + servers = ["superhtml" "emmet-ls" "angular-language-server"]; defaultFormat = ["superhtml"]; formats = { diff --git a/modules/plugins/languages/typescript.nix b/modules/plugins/languages/typescript.nix index 3af413a2..90749358 100644 --- a/modules/plugins/languages/typescript.nix +++ b/modules/plugins/languages/typescript.nix @@ -18,7 +18,7 @@ cfg = config.vim.languages.typescript; defaultServers = ["typescript-language-server"]; - servers = ["typescript-language-server" "deno" "typescript-go"]; + servers = ["typescript-language-server" "deno" "typescript-go" "angular-language-server"]; # TODO: specify packages defaultFormat = ["prettier"]; diff --git a/modules/plugins/lsp/presets/angular-language-server.nix b/modules/plugins/lsp/presets/angular-language-server.nix new file mode 100644 index 00000000..49fdc1f4 --- /dev/null +++ b/modules/plugins/lsp/presets/angular-language-server.nix @@ -0,0 +1,24 @@ +{ + config, + lib, + pkgs, + ... +}: let + inherit (lib.meta) getExe; + inherit (lib.modules) mkIf; + inherit (lib.nvim.types) mkLspPresetEnableOption; + + cfg = config.vim.lsp.presets.angular-language-server; +in { + options.vim.lsp.presets.angular-language-server = { + enable = mkLspPresetEnableOption "angular-language-server" "Angular Template" []; + }; + + config = mkIf cfg.enable { + vim.lsp.servers.angular-language-server = { + enable = true; + cmd = [(getExe pkgs.angular-language-server) "--stdio"]; + root_markers = ["angular.json" "nx.json"]; + }; + }; +} diff --git a/modules/plugins/lsp/presets/default.nix b/modules/plugins/lsp/presets/default.nix index caf26d7c..07cbf509 100644 --- a/modules/plugins/lsp/presets/default.nix +++ b/modules/plugins/lsp/presets/default.nix @@ -1,5 +1,6 @@ { imports = [ + ./angular-language-server.nix ./arduino-language-server.nix ./asm-lsp.nix ./astro-language-server.nix