comparison .chezmoitemplates/init.lua @ 739:dbadb754946e

feat: add refactoring plugin
author zegervdv <zegervdv@me.com>
date Sun, 18 Dec 2022 11:09:26 +0100
parents d63750fc240f
children 68cb1c4b268c
comparison
equal deleted inserted replaced
738:d63750fc240f 739:dbadb754946e
488 ) 488 )
489 end, 489 end,
490 } 490 }
491 491
492 use { 492 use {
493 'ThePrimeagen/refactoring.nvim',
494 after = 'which-key.nvim',
495 requires = {
496 'nvim-lua/plenary.nvim',
497 'nvim-treesitter/nvim-treesitter',
498 },
499 config = function()
500 local refactoring = require 'refactoring'
501 local wk = require 'which-key'
502
503 refactoring.setup {}
504
505 wk.register { ['<leader>r'] = { name = 'Refactoring' } }
506
507 local maps = {
508 { mode = 'v', key = 'e', name = 'Extract Function' },
509 { mode = 'v', key = 'f', name = 'Extract Function To File' },
510 { mode = 'v', key = 'v', name = 'Extract Variable' },
511 { mode = 'v', key = 'i', name = 'Inline Variable' },
512 { mode = 'n', key = 'b', name = 'Extract Block' },
513 { mode = 'n', key = 'bf', name = 'Extract Block To File' },
514 { mode = 'n', key = 'i', name = 'Inline Variable' },
515 }
516 for _, map in ipairs(maps) do
517 vim.keymap.set(
518 map.mode,
519 '<leader>r' .. map.key,
520 function() refactoring.refactor(map.name) end,
521 { desc = map.name, silent = true, expr = false }
522 )
523 end
524 vim.keymap.set(
525 'n',
526 '<leader>rpp',
527 function() refactoring.debug.printf { below = false } end,
528 { desc = 'Add debug print statement', silent = true }
529 )
530 vim.keymap.set(
531 'n',
532 '<leader>rpv',
533 function() refactoring.debug.print_var { normal = true } end,
534 { desc = 'Print variable', silent = true }
535 )
536 vim.keymap.set(
537 'v',
538 '<leader>rpv',
539 function() refactoring.debug.print_var() end,
540 { desc = 'Print variable', silent = true }
541 )
542 vim.keymap.set(
543 'n',
544 '<leader>rpc',
545 function() refactoring.debug.cleanup {} end,
546 { desc = 'Clean up debug prints', silent = true }
547 )
548 end,
549 }
550
551 use {
493 'nvim-telescope/telescope-ui-select.nvim', 552 'nvim-telescope/telescope-ui-select.nvim',
494 requires = { 'nvim-telescope/telescope.nvim' }, 553 requires = { 'nvim-telescope/telescope.nvim' },
495 config = function() 554 config = function()
496 require('telescope').setup { 555 require('telescope').setup {
497 defaults = { 556 defaults = {