local inlay_hints_settings = { parameterNames = { enabled = "all" }, parameterTypes = { enabled = true }, variableTypes = { enabled = true }, propertyDeclarationTypes = { enabled = true }, functionLikeReturnTypes = { enabled = true }, enumMemberValues = { enabled = true }, } return { { "nvim-treesitter/nvim-treesitter", opts = function(_, opts) if type(opts.ensure_installed) == "table" then vim.list_extend(opts.ensure_installed, { "svelte" }) end end, }, { "neovim/nvim-lspconfig", opts = { servers = { svelte = { settings = { typescript = { updateImportsOnFileMove = { enabled = "always" }, inlayHints = inlay_hints_settings, }, javascript = { updateImportsOnFileMove = { enabled = "always" }, inlayHints = inlay_hints_settings, }, }, handlers = { ["textDocument/publishDiagnostics"] = function(err, result, ctx, config) require("ts-error-translator").translate_diagnostics(err, result, ctx, config) vim.lsp.diagnostic.on_publish_diagnostics(err, result, ctx, config) end, }, }, }, }, }, { "williamboman/mason.nvim", opts = function(_, opts) opts.ensure_installed = opts.ensure_installed or {} vim.list_extend(opts.ensure_installed, { "svelte-language-server" }) end, }, { "dmmulroy/ts-error-translator.nvim", opts = {}, }, { "luckasRanarison/nvim-devdocs", optional = true, opts = { ensure_installed = { "svelte", }, }, }, }