diff --git a/neovim/.config/nvim/lua/user/cmds.lua b/neovim/.config/nvim/lua/user/cmds.lua index e69de29..636024a 100644 --- a/neovim/.config/nvim/lua/user/cmds.lua +++ b/neovim/.config/nvim/lua/user/cmds.lua @@ -0,0 +1,3 @@ +vim.cmd([[ +command! OrganizeImports :lua require('user.utils').lsp_organize_imports() +]]) diff --git a/neovim/.config/nvim/lua/user/remaps.lua b/neovim/.config/nvim/lua/user/remaps.lua index b521074..5960153 100644 --- a/neovim/.config/nvim/lua/user/remaps.lua +++ b/neovim/.config/nvim/lua/user/remaps.lua @@ -81,3 +81,6 @@ nmap("do", ":lopen") -- Git nmap("gg", ":G") + +-- Refactoring +nmap("ri", ":lua require('user.utils').lsp_organize_imports()") diff --git a/neovim/.config/nvim/lua/user/utils.lua b/neovim/.config/nvim/lua/user/utils.lua index 58821e1..74c85c7 100644 --- a/neovim/.config/nvim/lua/user/utils.lua +++ b/neovim/.config/nvim/lua/user/utils.lua @@ -124,4 +124,18 @@ M.goto_global_definition = function() vim.api.nvim_win_set_cursor(0, { startLine, startCol }) end +M.lsp_organize_imports = function(bufnr, timeout) + if not bufnr then + bufnr = vim.api.nvim_get_current_buf() + end + + local params = { + command = "_typescript.organizeImports", + arguments = { vim.api.nvim_buf_get_name(bufnr) }, + title = "", + } + + vim.lsp.buf_request_sync(bufnr, "workspace/executeCommand", params, timeout or 500) +end + return M