return { { "nvim-telescope/telescope.nvim", dependencies = { "nvim-telescope/telescope-media-files.nvim", "nvim-lua/plenary.nvim", "nvim-telescope/telescope-fzf-native.nvim", }, lazy = false, config = function(_, _opts) local telescope = require("telescope") telescope.setup(_opts) telescope.load_extension("media_files") telescope.load_extension("fzf") local which_key = require("which-key") which_key.add({ { "f", group = "Find" }, { "ff", "lua require'telescope.builtin'.find_files(require('telescope.themes').get_dropdown({ previewer = false }))", desc = "Find file" }, { "fw", "lua require'telescope.builtin'.live_grep()", desc = "Grep file" }, { "fb", "lua require'telescope.builtin'.buffers()", desc = "Find buffer" }, { "fh", "lua require'telescope.builtin'.resume()", desc = "Resume last search" }, }) end, opts = function() local actions = require("telescope.actions") return { defaults = { file_ignore_patterns = { "node_modules", "venv" }, prompt_prefix = " ", selection_caret = " ", path_display = { "smart" }, mappings = { i = { [""] = actions.cycle_history_next, [""] = actions.cycle_history_prev, [""] = actions.move_selection_next, [""] = actions.move_selection_previous, [""] = actions.close, [""] = actions.move_selection_next, [""] = actions.move_selection_previous, [""] = actions.select_default, [""] = actions.select_horizontal, [""] = actions.select_vertical, [""] = actions.select_tab, [""] = actions.preview_scrolling_up, [""] = actions.preview_scrolling_down, [""] = actions.results_scrolling_up, [""] = actions.results_scrolling_down, [""] = actions.toggle_selection + actions.move_selection_worse, [""] = actions.toggle_selection + actions.move_selection_better, [""] = actions.send_to_qflist + actions.open_qflist, [""] = actions.send_selected_to_qflist + actions.open_qflist, [""] = actions.complete_tag, [""] = actions.which_key, -- keys from pressing }, n = { [""] = actions.close, [""] = actions.select_default, [""] = actions.select_horizontal, [""] = actions.select_vertical, [""] = actions.select_tab, [""] = actions.toggle_selection + actions.move_selection_worse, [""] = actions.toggle_selection + actions.move_selection_better, [""] = actions.send_to_qflist + actions.open_qflist, [""] = actions.send_selected_to_qflist + actions.open_qflist, ["j"] = actions.move_selection_next, ["k"] = actions.move_selection_previous, ["H"] = actions.move_to_top, ["M"] = actions.move_to_middle, ["L"] = actions.move_to_bottom, [""] = actions.move_selection_next, [""] = actions.move_selection_previous, ["gg"] = actions.move_to_top, ["G"] = actions.move_to_bottom, [""] = actions.preview_scrolling_up, [""] = actions.preview_scrolling_down, [""] = actions.results_scrolling_up, [""] = actions.results_scrolling_down, ["?"] = actions.which_key, }, }, }, pickers = { -- Default configuration for builtin pickers goes here: -- picker_name = { -- picker_config_key = value, -- ... -- } -- Now the picker_config_key will be applied every time you call this -- builtin picker }, extensions = { media_files = { -- filetypes whitelist -- defaults to {"png", "jpg", "mp4", "webm", "pdf"} filetypes = { "png", "webp", "jpg", "jpeg" }, find_cmd = "rg", -- find command (defaults to `fd`) }, -- Your extension configuration goes here: -- extension_name = { -- extension_config_key = value, -- } -- please take a look at the readme of the extension you want to configure }, } end, }, { 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' } }