local platform = vim.loop.os_uname().sysname local function fzf_plugin() if platform == "FreeBSD" then return { "nvim-telescope/telescope-fzf-native.nvim", build = "cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release", } else return { "nvim-telescope/telescope-fzf-native.nvim", build = "make" } end end return { "nvim-telescope/telescope.nvim", branch = "0.1.x", keys = { { "ff", "Telescope find_files", desc = "Fuzzy find files in cwd" }, { "fo", "Telescope oldfiles", desc = "Fuzzy find recent files" }, { "fw", "Telescope live_grep", desc = "Find string in cwd" }, { "ft", "TodoTelescope", desc = "Find todos" }, { "fk", "Telescope keymaps", desc = "Find keymaps" }, -- { "fm", "Telescope marks", desc = "Find marks" }, { "fh", "Telescope search_history", desc = "Find search history" }, { "gm", "Telescope git_commits", desc = "Git commits" }, { "fb", function() require("telescope.builtin").live_grep({ grep_open_files = true }) end, desc = "Find in all buffers", }, { "fc", function() require("telescope.builtin").command_history() end, desc = "Search command history", }, { "fr", function() require("telescope.builtin").resume() end, desc = "Resume last search", }, { "ct", function() require("telescope.builtin").filetypes() end, desc = "Set current filetype", }, { "fd", function() require("telescope.builtin").diagnostics() end, desc = "Find Diagnostics", }, { "b", function() -- require("telescope.builtin").buffers({ sort_lastused = true, initial_mode = "normal" }) require("telescope.builtin").buffers({ sort_lastused = true }) end, desc = "Buffers", }, }, dependencies = { "nvim-lua/plenary.nvim", fzf_plugin(), "nvim-tree/nvim-web-devicons", "folke/todo-comments.nvim", "nvim-telescope/telescope-ui-select.nvim", }, config = function() local telescope = require("telescope") local actions = require("telescope.actions") local transform_mod = require("telescope.actions.mt").transform_mod local trouble = require("trouble") local trouble_telescope = require("trouble.sources.telescope") local custom_actions = transform_mod({ open_trouble_qflist = function() trouble.toggle("quickfix") end, }) telescope.setup({ defaults = { path_display = { -- shorten = 4, }, mappings = { n = { ["d"] = require("telescope.actions").delete_buffer, [""] = actions.send_selected_to_qflist + custom_actions.open_trouble_qflist, [""] = trouble_telescope.open, }, i = { [""] = actions.move_selection_previous, -- move to prev result [""] = actions.move_selection_next, -- move to next result [""] = actions.send_selected_to_qflist + custom_actions.open_trouble_qflist, [""] = trouble_telescope.open, }, }, }, pickers = { buffers = { theme = "ivy", previewer = false, }, git_files = { theme = "ivy", previewer = false, }, oldfiles = { theme = "ivy", previewer = false, }, find_files = { theme = "ivy", previewer = false, }, live_grep = { theme = "ivy", }, colorscheme = { theme = "ivy", }, marks = { theme = "ivy", }, lsp_document_symblos = { theme = "ivy", }, lsp_dynamic_workspace_symbols = { theme = "ivy", }, lsp_references = { theme = "ivy", }, }, }) telescope.load_extension("fzf") end, }