feat(lsp): fix svelte updates not reflecting

This commit is contained in:
2024-10-18 09:49:24 +02:00
parent 9a25573f5d
commit 603f955549

View File

@@ -68,30 +68,6 @@ return {
vim.lsp.buf.signature_help()
end, lsp_opts)
end)
require("mason-lspconfig").setup({
ensure_installed = {
"tsserver",
"eslint",
"lua_ls",
"jsonls",
"html",
"tailwindcss",
"pylsp",
"dockerls",
"bashls",
"marksman",
"rust_analyzer",
},
handlers = {
function(server_name)
require("lspconfig")[server_name].setup({})
end,
lua_ls = function()
require("lspconfig").lua_ls.setup(lsp.nvim_lua_ls())
end,
},
})
end,
},
{
@@ -112,12 +88,46 @@ return {
enabled = false,
},
servers = {
tsserver = {
vtsls = {
filetypes = {
"javascript",
"javascriptreact",
"javascript.jsx",
"typescript",
"typescriptreact",
"typescript.tsx",
},
settings = {
vtsls = {
ts_ls = {
globalPlugins = {
{
name = "typescript-svelte-plugin",
location = vim.fn.getcwd() .. "/node_modules/typescript-svelte-plugin",
enableForWorkspaceTypeScriptVersions = true,
},
},
},
tsserver = {
globalPlugins = {
{
name = "typescript-svelte-plugin",
location = vim.fn.getcwd() .. "/node_modules/typescript-svelte-plugin",
enableForWorkspaceTypeScriptVersions = true,
},
},
},
},
typescript = {
preferences = {
quoteStyle = "single",
},
updateImportsOnFileMove = {
enabled = "always",
},
suggest = {
completeFunctionCalls = true,
},
},
javascript = {
preferences = {
@@ -126,9 +136,18 @@ return {
},
},
},
svelte = {
capabilities = {
workspace = {
didChangeWatchedFiles = { dynamicRegistration = true },
},
},
},
},
},
config = function(_, opts)
local lsp = require("lsp-zero")
vim.api.nvim_create_autocmd("LspAttach", {
callback = function(args)
local buffer = args.buf
@@ -142,6 +161,16 @@ return {
then
vim.lsp.inlay_hint.enable(true)
end
if client ~= nil and client.name == "svelte" then
vim.api.nvim_create_autocmd("BufWritePost", {
pattern = { "*.svelte", "*.js", "*.ts" },
group = vim.api.nvim_create_augroup("svelte_ondidchangetsorjsfile", { clear = true }),
callback = function(ctx)
client.notify("$/onDidChangeTsOrJsFile", { uri = ctx.match })
end,
})
end
end,
})
@@ -150,6 +179,34 @@ return {
require("lspconfig.ui.windows").default_options = {
border = "single",
}
local lspconfig = require("lspconfig")
require("mason-lspconfig").setup({
ensure_installed = {
"vtsls",
"eslint",
"lua_ls",
"jsonls",
"html",
"tailwindcss",
"pylsp",
"dockerls",
"bashls",
"marksman",
"rust_analyzer",
},
handlers = {
function(server_name)
if lspconfig[server_name] ~= nil then
lspconfig[server_name].setup(opts.servers[server_name] or {})
end
end,
lua_ls = function()
require("lspconfig").lua_ls.setup(lsp.nvim_lua_ls())
end,
},
})
end,
},
{