feat(extras): Add extra for angular lspconfig (#2806)

* feat(extras): Add extra for angular lspconfig

Since treesitter has better support for angular parser recently that works for the legacy and the latest version of it,
I am happy to suggest this extra configuration that works for well for me without any issue.
And since lack of references about how to config the angular lsp inside of neovim out there, this will work fine as a starting point.

* feat(extras): Added `angularls` lsp configuration

* feat(extras.lang): update `angularls` configuration

---------

Co-authored-by: Radvil <radvil.linux@gmail.com>
This commit is contained in:
Radvil
2024-06-05 01:03:16 +08:00
committed by GitHub
parent 9a635ef8d6
commit 987bd2207f

View File

@ -0,0 +1,56 @@
return {
recommended = function()
return LazyVim.extras.wants({
root = {
"angular.json",
"nx.json", --support for nx workspace
},
})
end,
{
"nvim-treesitter",
opts = function(_, opts)
if type(opts.ensure_installed) == "table" then
vim.list_extend(opts.ensure_installed, { "angular", "scss" })
end
end,
},
-- angularls depends on typescript
{ import = "lazyvim.plugins.extras.lang.typescript" },
-- LSP Servers
{
"neovim/nvim-lspconfig",
opts = {
servers = {
angularls = {},
},
setup = {
angularls = function()
LazyVim.lsp.on_attach(function(client)
if client.name == "angularls" then
--HACK: disable angular renaming capability due to duplicate rename popping up
client.server_capabilities.renameProvider = false
end
end)
end,
},
},
},
-- Configure tsserver plugin
{
"neovim/nvim-lspconfig",
opts = function(_, opts)
LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", {
{
name = "@angular/language-server",
location = LazyVim.get_pkg_path("angular-language-server", "/node_modules/@angular/language-server"),
enableForWorkspaceTypeScriptVersions = false,
},
})
end,
},
}