return { "ThePrimeagen/refactoring.nvim", dependencies = { { "nvim-lua/plenary.nvim" }, { "nvim-treesitter/nvim-treesitter" } }, config = function() require('refactoring').setup({ prompt_func_return_type = { go = false, java = false, cpp = false, c = false, h = false, hpp = false, cxx = false, }, prompt_func_param_type = { go = false, java = false, cpp = false, c = false, h = false, hpp = false, cxx = false, }, printf_statements = {}, print_var_statements = {}, }) -- Remaps for the refactoring operations currently offered by the plugin vim.api.nvim_set_keymap("v", "re", [[ lua require('refactoring').refactor('Extract Function')]], { noremap = true, silent = true, expr = false }) vim.api.nvim_set_keymap("v", "rf", [[ lua require('refactoring').refactor('Extract Function To File')]], { noremap = true, silent = true, expr = false, desc = "Extract function to file" }) vim.api.nvim_set_keymap("v", "rv", [[ lua require('refactoring').refactor('Extract Variable')]], { noremap = true, silent = true, expr = false, desc = "Extract variable" }) vim.api.nvim_set_keymap("v", "ri", [[ lua require('refactoring').refactor('Inline Variable')]], { noremap = true, silent = true, expr = false, desc = "Inline variable" }) -- Extract block doesn't need visual mode vim.api.nvim_set_keymap("n", "rb", [[ lua require('refactoring').refactor('Extract Block')]], { noremap = true, silent = true, expr = false, desc = "Extract block" }) vim.api.nvim_set_keymap("n", "rbf", [[ lua require('refactoring').refactor('Extract Block To File')]], { noremap = true, silent = true, expr = false, desc = "Extract block to file" }) -- Inline variable can also pick up the identifier currently under the cursor without visual mode vim.api.nvim_set_keymap("n", "ri", [[ lua require('refactoring').refactor('Inline Variable')]], { noremap = true, silent = true, expr = false, desc = "Inline variable" }) end }