return { { "nvim-telescope/telescope.nvim", dependencies = { "nvim-lua/plenary.nvim", }, cmd = "Telescope", keys = { { "ff", function() require("telescope.builtin").find_files() end, desc = "[ F ]ind files", }, { "fF", function() require("telescope.builtin").find_files({ hidden = true, no_ignore = true }) end, desc = "[ F ]ind [ F ]iles", }, { "lg", function() require("telescope.builtin").live_grep() end, desc = "Live grep", }, { "gf", function() require("telescope.builtin").git_files() end, desc = "Live grep", }, { "gs", function() require("telescope.builtin").git_status() end, desc = "Live grep", }, { "fc", function() require("telescope.builtin").git_commits() end, desc = "Git Commits", }, { "of", function() require("telescope.builtin").oldfiles() end, desc = "[ O ]ld [ F ]iles", }, { "ds", function() require("telescope.builtin").lsp_document_symbols() end, desc = "[ D ]ocument [ S ]ymbols", }, { "wss", function() require("telescope.builtin").lsp_dynamic_workspace_symbols() end, desc = "[ W ]orkspace [ S ]ymbol[ s ]", remap = true, }, { "lr", function() require("telescope.builtin").lsp_references() end, desc = "[L]ist [R]erefrences", }, { "ld", function() require("telescope.builtin").diagnostics() end, desc = "[ L ]ist [ D ]iagnostics", }, { "li", function() require("telescope.builtin").lsp_implementations() end, desc = "[ L ]ist [ I ]mplementation", }, { "ldi", function() require("telescope.builtin").lsp_definitions() end, desc = "[ L ]ist [ D ]ef[ i ]nitions", }, }, config = function(_, opts) local telescope = require("telescope") telescope.setup({ defaults = { prompt_prefix = "", selection_caret = "", sorting_strategy = "ascending", path_display = { "smart", }, layout_config = { horizontal = { prompt_position = "top", width = 0.75, height = 0.65, preview_width = 0.6, }, }, mappings = { i = { [""] = function(...) require("telescope.actions").move_selection_previous(...) end, [""] = function(...) require("telescope.actions").move_selection_next(...) end, [""] = function(...) require("trouble.providers.telescope").open_with_trouble(...) end, }, n = { q = function(...) require("telescope.actions").close(...) end, [""] = function(...) require("trouble.providers.telescope").open_with_trouble(...) end, }, }, }, }) telescope.load_extension("tnf") end, }, }