Skip to content

Commit 5d3a1d5

Browse files
committed
refactor: use code_action native function for refactor commands
1 parent a2b645d commit 5d3a1d5

File tree

3 files changed

+19
-35
lines changed

3 files changed

+19
-35
lines changed

README.md

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,6 @@ Yep! That's all :)
132132
- `JavaRefactorExtractConstant` - Create a constant from the value at cursor/selection
133133
- `JavaRefactorExtractMethod` - Create a method from the value at cursor/selection
134134
- `JavaRefactorExtractField` - Create a field from the value at cursor/selection
135-
- `JavaRefactorConvertVariableToField` - Change a local variable to field
136135

137136
### Settings
138137

@@ -256,12 +255,6 @@ require('java').refactor.extract_method()
256255
require('java').refactor.extract_field()
257256
```
258257

259-
- `convert_variable_to_field` - Change a local variable to field
260-
261-
```lua
262-
require('java').refactor.convert_variable_to_field()
263-
```
264-
265258
### Settings
266259

267260
- `change_runtime` - Change the JDK version to another

lua/java/api/refactor.lua

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,39 @@
1-
local jdtls = require('java.utils.jdtls2')
2-
local get_error_handler = require('java.handlers.error')
3-
4-
local async = require('java-core.utils.async').sync
5-
61
local M = {}
72

83
function M.extract_variable()
9-
M.extract('extractVariable')
4+
M.run_code_action('refactor.extract.variable', 'extractVariable')
105
end
116

127
function M.extract_variable_all_occurrence()
13-
M.extract('extractVariableAllOccurrence')
8+
M.run_code_action('refactor.extract.variable', 'extractVariableAllOccurrence')
149
end
1510

1611
function M.extract_constant()
17-
M.extract('extractConstant')
12+
M.run_code_action('refactor.extract.constant')
1813
end
1914

2015
function M.extract_method()
21-
M.extract('extractMethod')
16+
M.run_code_action('refactor.extract.function')
2217
end
2318

2419
function M.extract_field()
25-
M.extract('extractField')
26-
end
27-
28-
function M.convert_variable_to_field()
29-
M.extract('convertVariableToField')
20+
M.run_code_action('refactor.extract.field')
3021
end
3122

32-
---@param refactor_command jdtls.CodeActionCommand
33-
function M.extract(refactor_command)
34-
return async(function()
35-
local RefactorCommands = require('java-refactor.refactor-commands')
36-
local refactor_commands = RefactorCommands(jdtls())
37-
refactor_commands:refactor(refactor_command)
38-
end)
39-
.catch(get_error_handler('failed to refactor variable'))
40-
.run()
23+
---@private
24+
---@param action_type string
25+
---@param filter? string
26+
function M.run_code_action(action_type, filter)
27+
vim.lsp.buf.code_action({
28+
apply = true,
29+
context = {
30+
diagnostics = vim.lsp.diagnostic.get_line_diagnostics(0),
31+
only = { action_type },
32+
},
33+
filter = filter and function(refactor)
34+
return refactor.command.arguments[1] == filter
35+
end or nil,
36+
})
4137
end
4238

4339
return M

plugin/java.lua

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,6 @@ local cmd_map = {
5050
java.refactor.extract_field,
5151
{ range = 2 },
5252
},
53-
54-
JavaRefactorConvertVariableToField = {
55-
java.refactor.convert_variable_to_field,
56-
{ range = 2 },
57-
},
5853
}
5954

6055
for cmd, details in pairs(cmd_map) do

0 commit comments

Comments
 (0)