return { recommended = function() return LazyVim.extras.wants({ ft = "svelte", root = { "svelte.config.js", "svelte.config.mjs", "svelte.config.cjs", }, }) end, -- depends on the typescript extra { import = "lazyvim.plugins.extras.lang.typescript" }, { "nvim-treesitter/nvim-treesitter", opts = { ensure_installed = { "svelte" } }, }, -- LSP Servers { "neovim/nvim-lspconfig", opts = { servers = { svelte = { keys = { { "co", LazyVim.lsp.action["source.organizeImports"], desc = "Organize Imports", }, }, capabilities = { workspace = { didChangeWatchedFiles = vim.fn.has("nvim-0.10") == 0 and { dynamicRegistration = true }, }, }, }, }, }, }, -- Configure tsserver plugin { "neovim/nvim-lspconfig", opts = function(_, opts) LazyVim.extend(opts.servers.vtsls, "settings.vtsls.tsserver.globalPlugins", { { name = "typescript-svelte-plugin", location = LazyVim.get_pkg_path("svelte-language-server", "/node_modules/typescript-svelte-plugin"), enableForWorkspaceTypeScriptVersions = true, }, }) end, }, }