From 51c8e42d754fc42142ece8453ee39082e3ec59a3 Mon Sep 17 00:00:00 2001 From: Kemboi Elvis Date: Wed, 4 Jun 2025 12:26:08 +0300 Subject: [PATCH] feat: updated ts and vtls --- .../plugins/extras/lang/typescript.lua | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/lua/lazyvim/plugins/extras/lang/typescript.lua b/lua/lazyvim/plugins/extras/lang/typescript.lua index f7cc3231..f0e7f81a 100644 --- a/lua/lazyvim/plugins/extras/lang/typescript.lua +++ b/lua/lazyvim/plugins/extras/lang/typescript.lua @@ -55,6 +55,11 @@ return { suggest = { completeFunctionCalls = true, }, + preferences = { + removeUnusedImports = true, + organizeImportsOnSave = true, + includePackageJsonAutoImports = "auto", + }, inlayHints = { enumMemberValues = { enabled = true }, functionLikeReturnTypes = { enabled = true }, @@ -64,6 +69,17 @@ return { variableTypes = { enabled = false }, }, }, + javascript = { + updateImportsOnFileMove = { enabled = "always" }, + suggest = { + completeFunctionCalls = true, + }, + preferences = { + removeUnusedImports = true, + organizeImportsOnSave = true, + includePackageJsonAutoImports = "auto", + }, + }, }, keys = { { @@ -132,6 +148,33 @@ return { end, vtsls = function(_, opts) LazyVim.lsp.on_attach(function(client, buffer) + -- Auto-organize imports and remove unused on save + if client.name == "vtsls" then + local ts_group = vim.api.nvim_create_augroup("TypeScriptAutoFix", { clear = true }) + + vim.api.nvim_create_autocmd("BufWritePre", { + group = ts_group, + buffer = buffer, + callback = function() + -- Remove unused imports + vim.lsp.buf.code_action({ + apply = true, + filter = function(action) + return action.kind == "source.removeUnused.ts" + end, + }) + + -- Organize imports + vim.lsp.buf.code_action({ + apply = true, + filter = function(action) + return action.kind == "source.organizeImports" + end, + }) + end, + }) + end + client.commands["_typescript.moveToFileRefactoring"] = function(command, ctx) ---@type string, string, lsp.Range local action, uri, range = unpack(command.arguments)