--- @type LazyPluginSpec return { "pmizio/typescript-tools.nvim", dependencies = { "nvim-lua/plenary.nvim", "neovim/nvim-lspconfig", "hrsh7th/cmp-nvim-lsp", }, ft = { "javascript", "javascriptreact", "typescript", "typescriptreact", }, config = function() local typescript_tools = require("typescript-tools") local cmp_nvim_lsp = require("cmp_nvim_lsp") local on_attach = require("taken.utils.on_attach") local capabilities = cmp_nvim_lsp.default_capabilities() local augroup = vim.api.nvim_create_augroup("Typescript_tools", {}) typescript_tools.setup({ capabilities = capabilities, on_attach = function(client, bufnr) on_attach(client, bufnr) vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) vim.api.nvim_create_autocmd("BufWritePre", { group = augroup, buffer = bufnr, callback = function() vim.lsp.buf.format({ async = false }) end, }) end, settings = { tsserver_file_preferences = { includeCompletionsForModuleExports = true, quotePreference = "auto", }, }, }) end, }