Files
LazyVim/lua/lazyvim/plugins/extras/lang/svelte.lua

68 lines
1.6 KiB
Lua

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 = {
{
"<leader>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,
},
{
"conform.nvim",
opts = function(_, opts)
if LazyVim.has_extra("formatting.prettier") then
opts.formatters_by_ft = opts.formatters_by_ft or {}
opts.formatters_by_ft.svelte = { "prettier" }
end
end,
},
}