summaryrefslogtreecommitdiff
path: root/ar/.config/LazyVim/lua/plugins/refactoring.lua
diff options
context:
space:
mode:
Diffstat (limited to 'ar/.config/LazyVim/lua/plugins/refactoring.lua')
-rw-r--r--ar/.config/LazyVim/lua/plugins/refactoring.lua35
1 files changed, 35 insertions, 0 deletions
diff --git a/ar/.config/LazyVim/lua/plugins/refactoring.lua b/ar/.config/LazyVim/lua/plugins/refactoring.lua
new file mode 100644
index 0000000..a7bdf99
--- /dev/null
+++ b/ar/.config/LazyVim/lua/plugins/refactoring.lua
@@ -0,0 +1,35 @@
+return {
+ "ThePrimeagen/refactoring.nvim",
+ dependencies = {
+ "nvim-lua/plenary.nvim",
+ "nvim-treesitter/nvim-treesitter",
+ },
+ config = function()
+ require("refactoring").setup()
+ end,
+ keys = {
+ vim.keymap.set("x", "<leader>re", function()
+ require("refactoring").refactor("Extract Function")
+ end, { desc = "Extract Function" }),
+ vim.keymap.set({ "x", "n" }, "<leader>rf", function()
+ require("refactoring").refactor("Extract Function To File")
+ end, { desc = "Extract Function To File" }),
+ -- Extract function supports only visual mode
+ vim.keymap.set("x", "<leader>rv", function()
+ require("refactoring").refactor("Extract Variable")
+ end, { desc = "Extract Variable" }),
+ -- Extract variable supports only visual mode
+ vim.keymap.set("n", "<leader>rI", function()
+ require("refactoring").refactor("Inline Function")
+ end, { desc = "Inline Function" }),
+ -- Inline func supports only normal
+ vim.keymap.set({ "n", "x" }, "<leader>ri", function()
+ require("refactoring").refactor("Inline Variable")
+ end, { desc = "Inline Variable" }),
+ -- Inline var supports both normal and visual mode
+
+ vim.keymap.set("n", "<leader>rb", function()
+ require("refactoring").refactor("Extract Block")
+ end, { desc = "Extract Block" }),
+ },
+}