From 7598a7503df0fd7912e81fdc9a0eb7635795605b Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Sat, 1 Jun 2024 09:08:09 +0200 Subject: [PATCH] feat(extras): added extra for svelte. Full support will be enabled once my mason PR gets merged --- lua/lazyvim/plugins/extras/lang/svelte.lua | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 lua/lazyvim/plugins/extras/lang/svelte.lua diff --git a/lua/lazyvim/plugins/extras/lang/svelte.lua b/lua/lazyvim/plugins/extras/lang/svelte.lua new file mode 100644 index 00000000..7b0588d2 --- /dev/null +++ b/lua/lazyvim/plugins/extras/lang/svelte.lua @@ -0,0 +1,52 @@ +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 = function(_, opts) + if type(opts.ensure_installed) == "table" then + vim.list_extend(opts.ensure_installed, { "svelte" }) + end + end, + }, + + -- LSP Servers + { + "neovim/nvim-lspconfig", + opts = { + servers = { + svelte = {}, + }, + }, + }, + + -- 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", + { warn = false } + ), + enableForWorkspaceTypeScriptVersions = true, + }, + }) + end, + }, +}