131 lines
4.4 KiB
Lua
131 lines
4.4 KiB
Lua
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({
|
|
{ "<leader>f", group = "Find" },
|
|
{ "<leader>ff", "<cmd>lua require'telescope.builtin'.find_files(require('telescope.themes').get_dropdown({ previewer = false }))<cr>", desc = "Find file" },
|
|
{ "<leader>fw", "<cmd>lua require'telescope.builtin'.live_grep()<cr>", desc = "Grep file" },
|
|
{ "<leader>fb", "<cmd>lua require'telescope.builtin'.buffers()<cr>", desc = "Find buffer" },
|
|
{ "<leader>fh", "<cmd>lua require'telescope.builtin'.resume()<cr>", 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 = {
|
|
["<C-n>"] = actions.cycle_history_next,
|
|
["<C-p>"] = actions.cycle_history_prev,
|
|
|
|
["<C-j>"] = actions.move_selection_next,
|
|
["<C-k>"] = actions.move_selection_previous,
|
|
|
|
["<C-c>"] = actions.close,
|
|
|
|
["<Down>"] = actions.move_selection_next,
|
|
["<Up>"] = actions.move_selection_previous,
|
|
|
|
["<CR>"] = actions.select_default,
|
|
["<C-x>"] = actions.select_horizontal,
|
|
["<C-v>"] = actions.select_vertical,
|
|
["<C-t>"] = actions.select_tab,
|
|
|
|
["<C-u>"] = actions.preview_scrolling_up,
|
|
["<C-d>"] = actions.preview_scrolling_down,
|
|
|
|
["<PageUp>"] = actions.results_scrolling_up,
|
|
["<PageDown>"] = actions.results_scrolling_down,
|
|
|
|
["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
|
|
["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
|
|
["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
|
|
["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
|
|
["<C-l>"] = actions.complete_tag,
|
|
["<C-_>"] = actions.which_key, -- keys from pressing <C-/>
|
|
},
|
|
|
|
n = {
|
|
["<esc>"] = actions.close,
|
|
["<CR>"] = actions.select_default,
|
|
["<C-x>"] = actions.select_horizontal,
|
|
["<C-v>"] = actions.select_vertical,
|
|
["<C-t>"] = actions.select_tab,
|
|
|
|
["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
|
|
["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
|
|
["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
|
|
["<M-q>"] = 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,
|
|
|
|
["<Down>"] = actions.move_selection_next,
|
|
["<Up>"] = actions.move_selection_previous,
|
|
["gg"] = actions.move_to_top,
|
|
["G"] = actions.move_to_bottom,
|
|
|
|
["<C-u>"] = actions.preview_scrolling_up,
|
|
["<C-d>"] = actions.preview_scrolling_down,
|
|
|
|
["<PageUp>"] = actions.results_scrolling_up,
|
|
["<PageDown>"] = 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'
|
|
}
|
|
}
|