From 9060b976932150331efa5ce92cb164847741a0de Mon Sep 17 00:00:00 2001 From: s1n7ax Date: Sun, 26 Jan 2025 15:37:04 +0530 Subject: [PATCH 1/2] feat: add chooseImports action --- lua/java-refactor/action.lua | 20 +++++++++++++++++++ lua/java-refactor/client-command-handlers.lua | 19 ++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/lua/java-refactor/action.lua b/lua/java-refactor/action.lua index 257f1e4..8b2c80b 100644 --- a/lua/java-refactor/action.lua +++ b/lua/java-refactor/action.lua @@ -299,4 +299,24 @@ function Action:override_methods_prompt(params) self.jdtls:add_overridable_methods(params.params, selected_methods) vim.lsp.util.apply_workspace_edit(edit, 'utf-8') end + +---@param selections jdtls.ImportSelection[] +function Action:choose_imports(selections) + local selected_candidates = {} + + for _, selection in ipairs(selections) do + local selected_candidate = ui.select_sync( + 'Select methods to override.', + selection.candidates, + function(candidate, index) + return index .. ' ' .. candidate.fullyQualifiedName + end + ) + + table.insert(selected_candidates, selected_candidate) + end + + return selected_candidates +end + return Action diff --git a/lua/java-refactor/client-command-handlers.lua b/lua/java-refactor/client-command-handlers.lua index bb3ce86..af2a4a4 100644 --- a/lua/java-refactor/client-command-handlers.lua +++ b/lua/java-refactor/client-command-handlers.lua @@ -65,6 +65,25 @@ local M = { end) end, + ---@param params [string, jdtls.ImportSelection[], boolean] + [ClientCommand.CHOOSE_IMPORTS] = function(params) + local get_error_handler = require('java-refactor.utils.error_handler') + local instance = require('java-refactor.utils.instance-factory') + local action = instance.get_action() + + local selections = params[2] + local ok, result = pcall(function() + return action:choose_imports(selections) + end) + + if not ok then + get_error_handler('Failed to choose imports')(result) + return + end + + return result or {} + end, + ---@param is_full_build boolean [ClientCommand.COMPILE_WORKSPACE] = function(is_full_build) run('Failed to build workspace', function(action) From dbf6bd80639d88a332ae9e968fcc296b70dd9630 Mon Sep 17 00:00:00 2001 From: s1n7ax Date: Sun, 26 Jan 2025 15:40:37 +0530 Subject: [PATCH 2/2] fix: lint error --- lua/java-refactor/action.lua | 2 +- lua/java-refactor/client-command-handlers.lua | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/java-refactor/action.lua b/lua/java-refactor/action.lua index 8b2c80b..ff90e33 100644 --- a/lua/java-refactor/action.lua +++ b/lua/java-refactor/action.lua @@ -301,7 +301,7 @@ function Action:override_methods_prompt(params) end ---@param selections jdtls.ImportSelection[] -function Action:choose_imports(selections) +function Action.choose_imports(selections) local selected_candidates = {} for _, selection in ipairs(selections) do diff --git a/lua/java-refactor/client-command-handlers.lua b/lua/java-refactor/client-command-handlers.lua index af2a4a4..604887c 100644 --- a/lua/java-refactor/client-command-handlers.lua +++ b/lua/java-refactor/client-command-handlers.lua @@ -73,7 +73,7 @@ local M = { local selections = params[2] local ok, result = pcall(function() - return action:choose_imports(selections) + return action.choose_imports(selections) end) if not ok then