return { { 'christoomey/vim-tmux-navigator', cmd = { 'TmuxNavigateLeft', 'TmuxNavigateDown', 'TmuxNavigateUp', 'TmuxNavigateRight', 'TmuxNavigatePrevious', 'TmuxNavigatorProcessList', }, keys = { { '', 'TmuxNavigateLeft' }, { '', 'TmuxNavigateDown' }, { '', 'TmuxNavigateUp' }, { '', 'TmuxNavigateRight' }, { '', 'TmuxNavigatePrevious' }, }, }, { 'folke/flash.nvim', event = 'VeryLazy', ---@type Flash.Config opts = {}, -- stylua: ignore keys = { { "s", mode = { "n", "x", "o" }, function() require("flash").jump() end, desc = "Flash" }, { "S", mode = { "n", "x", "o" }, function() require("flash").treesitter() end, desc = "Flash Treesitter" }, { "r", mode = "o", function() require("flash").remote() end, desc = "Remote Flash" }, { "R", mode = { "o", "x" }, function() require("flash").treesitter_search() end, desc = "Treesitter Search" }, { "", mode = { "c" }, function() require("flash").toggle() end, desc = "Toggle Flash Search" }, }, }, { 'ThePrimeagen/harpoon', branch = 'harpoon2', dependencies = { 'nvim-lua/plenary.nvim', 'nvim-telescope/telescope.nvim' }, config = function() local harpoon = require 'harpoon' harpoon:setup() vim.keymap.set('n', 'a', function() harpoon:list():add() end, { desc = '[A]dd to Harpoon list' }) vim.keymap.set('n', 'e', function() harpoon.ui:toggle_quick_menu(harpoon:list()) end, { desc = 'Toggle Harpoon m[E]nu' }) vim.keymap.set('n', '1', function() harpoon:list():select(1) end, { desc = 'Harpoon 1' }) vim.keymap.set('n', '2', function() harpoon:list():select(2) end, { desc = 'Harpoon 2' }) vim.keymap.set('n', '3', function() harpoon:list():select(3) end, { desc = 'Harpoon 3' }) vim.keymap.set('n', '4', function() harpoon:list():select(4) end, { desc = 'Harpoon 4' }) -- Toggle previous & next buffers stored within Harpoon list vim.keymap.set('n', 'p', function() harpoon:list():prev() end, { desc = '[P]revious Harpoon' }) vim.keymap.set('n', 'n', function() harpoon:list():next() end, { desc = '[N]ext Harpoon' }) -- basic telescope configuration local conf = require('telescope.config').values local function toggle_telescope(harpoon_files) local file_paths = {} for _, item in ipairs(harpoon_files.items) do table.insert(file_paths, item.value) end require('telescope.pickers') .new({}, { prompt_title = 'Harpoon', finder = require('telescope.finders').new_table { results = file_paths, }, previewer = conf.file_previewer {}, sorter = conf.generic_sorter {}, }) :find() end vim.keymap.set('n', '', function() toggle_telescope(harpoon:list()) end, { desc = 'Open harpoon window' }) end, }, { 'stevearc/oil.nvim', ---@module 'oil' ---@type oil.SetupOpts opts = {}, -- Optional dependencies dependencies = { { 'echasnovski/mini.icons', opts = {} } }, -- dependencies = { "nvim-tree/nvim-web-devicons" }, -- use if you prefer nvim-web-devicons -- Lazy loading is not recommended because it is very tricky to make it work correctly in all situations. lazy = false, config = function() require('oil').setup { vim.keymap.set('n', '-', 'Oil', { desc = 'Open parent directory' }), } end, }, }