diff --git a/lua/plugins/telescope.lua b/lua/plugins/telescope.lua index 01668f0..74b2d88 100644 --- a/lua/plugins/telescope.lua +++ b/lua/plugins/telescope.lua @@ -5,10 +5,40 @@ return { dependencies = { "nvim-lua/plenary.nvim" }, config = function() local builtin = require("telescope.builtin") + local action_state = require("telescope.actions.state") + local actions = require("telescope.actions") vim.keymap.set("n", "", builtin.find_files, { desc = "Telescope find files" }) vim.keymap.set("n", "fg", builtin.live_grep, { desc = "Telescope live grep" }) - vim.keymap.set("n", "fb", builtin.buffers, { desc = "Telescope buffers" }) + + Buffer_searcher = function() + builtin.buffers({ + initial_mode = "normal", + sort_mru = true, + attach_mappings = function(prompt_buffer, map) + local refresh_buffer_searcher = function() + actions.close(prompt_buffer) + vim.schedule(Buffer_searcher) + end + + local delete_buf = function() + local picker = action_state.get_current_picker(prompt_buffer) + local selection = picker:get_multi_selection() + for _, entry in ipairs(selection) do + vim.api.nvim_buf_delete(entry.bufnr, { force = true }) + end + refresh_buffer_searcher() + end + + map("n", "dd", delete_buf) + + return true + end, + }) + end + + vim.keymap.set("n", "fb", Buffer_searcher, { desc = "Telescope buffers" }) + vim.keymap.set("n", "fh", builtin.help_tags, { desc = "Telescope help tags" }) end, },