return { { "ThePrimeagen/refactoring.nvim", dependencies = { { "nvim-lua/plenary.nvim" }, { "nvim-treesitter/nvim-treesitter" }, }, config = function() require("config.refactoring") end, keys = { -- remap to open the Telescope refactoring menu in visual mode { "rr", "lua require('telescope').extensions.refactoring.refactors()", }, -- Remaps for the refactoring operations currently offered by the plugin { "rx", [[ lua require('refactoring').refactor('Extract Function')]], mode = "v", }, { "rxf", [[ lua require('refactoring').refactor('Extract Function To File')]], mode = "v", }, { "rxv", [[ lua require('refactoring').refactor('Extract Variable')]], mode = "v", }, { "ri", [[ lua require('refactoring').refactor('Inline Variable')]], mode = "v", }, -- Extract block doesn't need visual mode { "rxb", [[ lua require('refactoring').refactor('Extract Block')]], }, { "rxbf", [[ lua require('refactoring').refactor('Extract Block To File')]], }, -- Inline variable can also pick up the identifier currently under the cursor without visual mode { "ri", [[ lua require('refactoring').refactor('Inline Variable')]], }, { "rx", [[ lua require('refactoring').refactor('Extract Variable')]], }, }, }, }