return { 'nvim-telescope/telescope.nvim', dependencies = { 'nvim-lua/plenary.nvim', 'kyazdani42/nvim-web-devicons', { 'nvim-telescope/telescope-fzf-native.nvim', build = { 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -G Ninja', -- On windows add -DCMAKE_C_FLAGS="-target x86_64-w64-mingw32" 'cmake --build build --config Release', 'cmake --install build --prefix build' }, }, 'nvim-telescope/telescope-ui-select.nvim', 'ahmedkhalf/project.nvim', }, cmd = { "Telescope" }, keys = { { 'f', function() require("telescope.builtin").find_files({ no_ignore = true, hidden = true }) end, desc = 'Find file', }, { 'c', function() require("telescope.builtin").commands() end, desc = 'Telescope commands', }, { 'g', function() Project_files() end, desc = 'Find git files', }, { 'o', function() require("telescope.builtin").oldfiles() end, desc = 'Find old files', }, { 'h', function() require("telescope.builtin").command_history() end, desc = 'Open command history', }, { 'b', function() require("telescope.builtin").buffers() end, desc = 'Select buffer', }, { 'q', function() require("telescope.builtin").quickfix() end, desc = 'Quickfix list with telescope', }, { 'l', function() require("telescope.builtin").live_grep() end, desc = 'Search in project', }, { 'j', function() require("telescope.builtin").jumplist() end, desc = 'Open jumplist', }, { '', function() require("telescope.builtin").current_buffer_fuzzy_find() end, desc = 'Find in buffer', }, { 'd', function() require("telescope.builtin").grep_string() end, desc = 'Find in workspace', }, { 'p', function() require('telescope').extensions.projects.projects() end, desc = 'Select project', }, }, config = function() local actions = require('telescope.actions') local mappingTab = { i = { [''] = actions.select_tab, [''] = actions.select_default, }, } Project_files = function() local opts = {} -- define here if you want to define something local ok = pcall(require "telescope.builtin".git_files, opts) if not ok then require "telescope.builtin".find_files(opts) end end local telescopeConfig = require("telescope.config") -- Clone the default Telescope configuration local vimgrep_arguments = { unpack(telescopeConfig.values.vimgrep_arguments) } -- I want to search in hidden/dot files. table.insert(vimgrep_arguments, "--hidden") -- I don't want to search in the `.git` directory. table.insert(vimgrep_arguments, "--glob") table.insert(vimgrep_arguments, "!**/.git/*") require('telescope').setup({ defaults = { mappings = { i = { [''] = actions.select_default + actions.center, [''] = actions.send_selected_to_loclist, [''] = actions.smart_send_to_qflist, }, }, -- `hidden = true` is not supported in text grep commands. vimgrep_arguments = vimgrep_arguments, }, pickers = { -- Your special builtin config goes in here buffers = { sort_lastused = true, theme = 'ivy', mappings = { i = { [''] = actions.delete_buffer, [''] = actions.select_default, }, n = { [''] = actions.delete_buffer, }, }, }, find_files = { theme = 'ivy', previewer = false, -- `hidden = true` will still show the inside of `.git/` as it's not `.gitignore`d. find_command = { "rg", "--files", "--hidden", "--glob", "!**/.git/*" }, }, oldfiles = { theme = 'ivy', }, git_files = { theme = 'ivy', previewer = false, }, lsp_references = { show_line = false; include_declaration = false, }, lsp_dynamic_workspace_symbols = {}, }, extensions = { ["ui-select"] = { require("telescope.themes").get_dropdown { } } } }) require("telescope").load_extension("ui-select") require('telescope').load_extension('fzf') end }