diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c10b0c..f9f7093 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.13.0](https://github.com/nvim-java/nvim-java/compare/v1.12.0...v1.13.0) (2024-07-10) + + +### Features + +* add more extract commands ([0ec0f46](https://github.com/nvim-java/nvim-java/commit/0ec0f463efa7b3cc77d30660ced357e295ab7cd7)) + ## [1.12.0](https://github.com/nvim-java/nvim-java/compare/v1.11.0...v1.12.0) (2024-07-10) diff --git a/README.md b/README.md index 4f2ae29..0743230 100644 --- a/README.md +++ b/README.md @@ -119,7 +119,11 @@ Yep! That's all :) ### Refactor -- `JavaRefactorExtractVariable` - Create a variable from returned value at cursor +- `JavaRefactorExtractVariable` - Create a variable from value at cursor +- `JavaRefactorExtractVariableAllOccurrence` - Create a variable for all + occurrences from value at cursor +- `JavaRefactorExtractConstant` - Create a constant from the value at cursor +- `JavaRefactorExtractMethod` - Create method from the value at cursor ### Settings @@ -212,12 +216,31 @@ require('java').profile.ui() ### Refactor -- `extract_variable` - Create a variable from returned value at cursor +- `extract_variable` - Create a variable from value at cursor ```lua require('java').refactor.extract_variable() ``` +- `extract_variable_all_occurrence` - Create a variable for all occurrences from + value at cursor + +```lua +require('java').refactor.extract_variable_all_occurrence() +``` + +- `extract_constant` - Create a constant from the value at cursor + +```lua +require('java').refactor.extract_constant() +``` + +- `extract_method` - Create method from the value at cursor + +```lua +require('java').refactor.extract_method() +``` + ### Settings - `change_runtime` - Change the JDK version to another diff --git a/doc/nvim-java.txt b/doc/nvim-java.txt index 2d8ba3b..1896734 100644 --- a/doc/nvim-java.txt +++ b/doc/nvim-java.txt @@ -144,7 +144,11 @@ PROFILES ~ REFACTOR ~ -- `JavaRefactorExtractVariable` - Create a variable from returned value at cursor +- `JavaRefactorExtractVariable` - Create a variable from value at cursor +- `JavaRefactorExtractVariableAllOccurrence` - Create a variable for all + occurrences from value at cursor +- `JavaRefactorExtractConstant` - Create a constant from the value at cursor +- `JavaRefactorExtractMethod` - Create method from the value at cursor SETTINGS ~ @@ -241,12 +245,31 @@ PROFILES ~ REFACTOR ~ -- `extract_variable` - Create a variable from returned value at cursor +- `extract_variable` - Create a variable from value at cursor >lua require('java').refactor.extract_variable() < +- `extract_variable_all_occurrence` - Create a variable for all occurrences from + value at cursor + +>lua + require('java').refactor.extract_variable_all_occurrence() +< + +- `extract_constant` - Create a constant from the value at cursor + +>lua + require('java').refactor.extract_constant() +< + +- `extract_method` - Create method from the value at cursor + +>lua + require('java').refactor.extract_method() +< + SETTINGS ~ diff --git a/lua/java.lua b/lua/java.lua index fa45643..b94d76c 100644 --- a/lua/java.lua +++ b/lua/java.lua @@ -84,6 +84,10 @@ M.manipulate = {} ---------------------------------------------------------------------- M.refactor = {} M.refactor.extract_variable = refactor.extract_variable +M.refactor.extract_constant = refactor.extract_constant +M.refactor.extract_method = refactor.extract_method +M.refactor.extract_variable_all_occurrence = + refactor.extract_variable_all_occurrence ---------------------------------------------------------------------- -- Runner APIs -- diff --git a/lua/java/api/refactor.lua b/lua/java/api/refactor.lua index ec43fb1..dd68d97 100644 --- a/lua/java/api/refactor.lua +++ b/lua/java/api/refactor.lua @@ -6,10 +6,28 @@ local async = require('java-core.utils.async').sync local M = {} function M.extract_variable() + M.extract('extractVariable') +end + +function M.extract_variable_all_occurrence() + M.extract('extractVariableAllOccurrence') +end + +function M.extract_constant() + M.extract('extractConstant') +end + +function M.extract_method() + M.extract('extractMethod') +end + +--- +---@param refactor_command jdtls.CodeActionCommand +function M.extract(refactor_command) return async(function() local RefactorCommands = require('java-refactor.refactor-commands') local refactor_commands = RefactorCommands(jdtls()) - refactor_commands:extract_variable() + refactor_commands:refactor(refactor_command) end) .catch(get_error_handler('failed to refactor variable')) .run() diff --git a/plugin/java.lua b/plugin/java.lua index 9f37cb8..adfd1ea 100644 --- a/plugin/java.lua +++ b/plugin/java.lua @@ -30,6 +30,20 @@ local cmd_map = { java.refactor.extract_variable, { range = 2 }, }, + + JavaRefactorExtractMethod = { + java.refactor.extract_method, + }, + + JavaRefactorExtractConstant = { + java.refactor.extract_constant, + { range = 2 }, + }, + + JavaRefactorExtractVariableAllOccurrence = { + java.refactor.extract_variable_all_occurrence, + { range = 2 }, + }, } for cmd, details in pairs(cmd_map) do