-- nvim/.config/nvim/lua/plugins/editor/telescope.lua
return {
"nvim-telescope/telescope.nvim",
cmd = "Telescope",
version = false,
dependencies = {
"nvim-lua/plenary.nvim",
{
"nvim-telescope/telescope-fzf-native.nvim",
build = "make",
enabled = vim.fn.executable("make") == 1,
},
"nvim-telescope/telescope-ui-select.nvim",
},
keys = {
{ "<leader>f", "<cmd>Telescope find_files<cr>", desc = "find files" },
{ "<leader>/", "<cmd>Telescope live_grep<cr>", desc = "live grep" },
{ "<leader>b", "<cmd>Telescope buffers<cr>", desc = "buffers" },
{ "<leader>H", "<cmd>Telescope help_tags<cr>", desc = "help" },
{ "<leader>gs", "<cmd>Telescope git_status<cr>", desc = "git status" },
{ "<leader>gc", "<cmd>Telescope git_commits<cr>", desc = "git commits" },
{ "<leader>r", "<cmd>Telescope oldfiles<cr>", desc = "recent files" },
{ "<leader>sd", "<cmd>Telescope diagnostics<cr>", desc = "diagnostics" },
{ "<leader>ss", "<cmd>Telescope lsp_document_symbols<cr>", desc = "symbols" },
{ "<leader>sw", "<cmd>Telescope grep_string<cr>", desc = "grep word" },
{ "<leader>'", "<cmd>Telescope resume<cr>", desc = "resume" },
},
opts = function()
local actions = require("telescope.actions")
return {
defaults = {
prompt_prefix = " ",
selection_caret = " ",
path_display = { "truncate" },
sorting_strategy = "ascending",
layout_config = {
horizontal = { prompt_position = "top", preview_width = 0.55 },
vertical = { mirror = false },
width = 0.87, height = 0.8, preview_cutoff = 120,
},
file_ignore_patterns = { "%.git/", "node_modules/", "target/", "dist/", "%.o$" },
mappings = {
i = {
["<C-j>"] = actions.move_selection_next,
["<C-k>"] = actions.move_selection_previous,
["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
["<C-c>"] = actions.close,
["<esc>"] = actions.close,
},
},
},
pickers = {
find_files = { hidden = true, follow = true },
live_grep = { additional_args = function() return { "--hidden" } end },
buffers = { sort_mru = true, ignore_current_buffer = true },
},
extensions = {
["ui-select"] = { require("telescope.themes").get_dropdown({}) },
},
}
end,
config = function(_, opts)
local t = require("telescope")
t.setup(opts)
pcall(t.load_extension, "fzf")
pcall(t.load_extension, "ui-select")
end,
}