return { "ThePrimeagen/refactoring.nvim", dependencies = { "nvim-lua/plenary.nvim", "nvim-treesitter/nvim-treesitter" }, cmd = { "Refactor" }, opts = {}, keys = { { "re", [[ lua require('refactoring').refactor('Extract Function')]], { silent = true, expr = false }, mode = { "v", "x", }, desc = "Extract Function", }, { "rf", [[ lua require('refactoring').refactor('Extract Function To File')]], { silent = true, expr = false }, mode = { "v", "x", }, desc = "Extract Function To File", }, { "rv", [[ lua require('refactoring').refactor('Extract Variable')]], { silent = true, expr = false }, mode = { "v", "x", }, desc = "Extract Variable", }, { "ri", [[ lua require('refactoring').refactor('Inline Variable')]], { silent = true, expr = false }, mode = { "n", "v", "x", }, desc = "Inline Variable", }, { "rb", function() require("refactoring").refactor("Extract Block") end, { silent = true, expr = false }, mode = { "n", }, desc = "Extract Block", }, { "rbf", function() require("refactoring").refactor("Extract Block To File") end, { silent = true, expr = false }, mode = { "n", }, desc = "Extract Block To File", }, { "rr", function() require("refactoring").select_refactor() end, { silent = true, expr = false }, desc = "Select Refactor", }, { "rp", function() require("refactoring").debug.printf({ below = false }) end, mode = { "n" }, desc = "Debug: Print Function", }, { "rd", function() require("refactoring").debug.print_var({ normal = true, below = false }) end, mode = { "n" }, desc = "Debug: Print Variable", }, { "rd", function() require("refactoring").debug.print_var({ below = false }) end, mode = { "v" }, desc = "Debug: Print Variable", }, { "rc", function() require("refactoring").debug.cleanup({}) end, mode = { "n" }, desc = "Debug: Clean Up", }, }, }