From 7c8ba7a40a3209fc1cf483e82f62560b4dff1a06 Mon Sep 17 00:00:00 2001 From: Ariel DAlessandro Date: Sat, 14 Aug 2021 12:20:33 +0200 Subject: add packer and refactoring --- lua/alpha/init.lua | 1 + lua/alpha/refactoring.lua | 35 +++++++++++++++++++++++++++++++++++ lua/plugins.lua | 11 +++++++++++ 3 files changed, 47 insertions(+) create mode 100644 lua/alpha/refactoring.lua create mode 100644 lua/plugins.lua (limited to 'lua') diff --git a/lua/alpha/init.lua b/lua/alpha/init.lua index fa7dd53..c403f8c 100644 --- a/lua/alpha/init.lua +++ b/lua/alpha/init.lua @@ -1 +1,2 @@ require("alpha.telescope") +require("alpha.refactoring") diff --git a/lua/alpha/refactoring.lua b/lua/alpha/refactoring.lua new file mode 100644 index 0000000..262400f --- /dev/null +++ b/lua/alpha/refactoring.lua @@ -0,0 +1,35 @@ +local refactor = require("refactoring") +refactor.setup() + +-- telescope refactoring helper +local function refactor(prompt_bufnr) + local content = require("telescope.actions.state").get_selected_entry( + prompt_bufnr + ) + require("telescope.actions").close(prompt_bufnr) + require("refactoring").refactor(content.value) +end +-- NOTE: M is a global object +-- for the sake of simplicity in this example +-- you can extract this function and the helper above +-- and then require the file and call the extracted function +-- in the mappings below +M = {} +M.refactors = function() + require("telescope.pickers").new({}, { + prompt_title = "refactors", + finder = require("telescope.finders").new_table({ + results = require("refactoring").get_refactors(), + }), + sorter = require("telescope.config").values.generic_sorter({}), + attach_mappings = function(_, map) + map("i", "", refactor) + map("n", "", refactor) + return true + end + }):find() +end + +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}) +vim.api.nvim_set_keymap("v", "rt", [[ lua M.refactors()]], {noremap = true, silent = true, expr = false}) diff --git a/lua/plugins.lua b/lua/plugins.lua new file mode 100644 index 0000000..ebe891d --- /dev/null +++ b/lua/plugins.lua @@ -0,0 +1,11 @@ +vim.cmd [[packadd packer.nvim]] + +return require('packer').startup(function() + use { + "ThePrimeagen/refactoring.nvim", + requires = { + {"nvim-lua/plenary.nvim"}, + {"nvim-treesitter/nvim-treesitter"} + } + } +end) -- cgit v1.2.3