LazyVim.LazyVim/lua/lazyvim/plugins/extras/lang/angular.lua
Mykhailo Sabatura 24af74eed6
fix(angular): treesitter not enabled for angular templates (#3469)
## Problem
Treesitter was not working in angular html templates after enabling
`lang.angular` extra.

## Solution
Added a change recommeded by angular treesitter developer to enable
treesitter for components and containers.

### Reference to recommendation in treesitter docs
[Reference to the recommendation for this
hack](https://github.com/dlvandenberg/tree-sitter-angular?tab=readme-ov-file#filetype).
2024-06-06 00:01:42 +02:00

63 lines
1.6 KiB
Lua

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
vim.filetype.add({
pattern = {
[".*%.component%.html"] = "angular.html",
[".*%.container%.html"] = "angular.html",
},
})
vim.treesitter.language.register("angular", "angular.html")
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,
},
}