
* feat(svelte): add key binding for organize imports * fix(svelte): solves sveltejs/language-tools#2008 * feat(svelte): add formatter for svelte
80 lines
1.8 KiB
Lua
80 lines
1.8 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 = 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 = {
|
|
keys = {
|
|
{
|
|
"<leader>co",
|
|
function()
|
|
vim.lsp.buf.code_action({
|
|
apply = true,
|
|
context = {
|
|
only = { "source.organizeImports" },
|
|
diagnostics = {},
|
|
},
|
|
})
|
|
end,
|
|
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,
|
|
},
|
|
|
|
{
|
|
"stevearc/conform.nvim",
|
|
optional = true,
|
|
opts = {
|
|
formatters_by_ft = {
|
|
["svelte"] = { "prettier" },
|
|
},
|
|
},
|
|
},
|
|
}
|