return { "ThePrimeagen/refactoring.nvim", dependencies = { "nvim-lua/plenary.nvim", "nvim-treesitter/nvim-treesitter", }, config = function() require("telescope").load_extension("refactoring") end, keys = { { "rr", ":lua require('refactoring').select_refactor()", desc = "Select refactoring", mode = {"n", "x"}, }, -- Refactoring operations { "re", "lua require('refactoring').refactor('Extract Function')", desc = "Extract Function", mode = "x", }, { "rf", "lua require('refactoring').refactor('Extract Function To File')", desc = "Extract Function To File", mode = "x", }, { "rv", "lua require('refactoring').refactor('Extract Variable')", desc = "Extract Variable", mode = "x", }, { "rI", "lua require('refactoring').refactor('Inline Function')", desc = "Inline Function", mode = "n", }, { "ri", "lua require('refactoring').refactor('Inline Variable')", desc = "Inline Variable", mode = {"n", "x"}, }, -- Extract block { "rb", "lua require('refactoring').refactor('Extract Block')", desc = "Extract Block", mode = "n", }, { "rbf", "lua require('refactoring').refactor('Extract Block To File')", desc = "Extract Block To File", mode = "n", }, -- Telescope { "fr", "lua require('telescope').extensions.refactoring.refactors()", mode = "n", } }, }