return { 'nvim-telescope/telescope.nvim', dependencies = { 'nvim-lua/plenary.nvim', 'nvim-tree/nvim-web-devicons', 'molecule-man/telescope-menufacture', { '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').extensions.menufacture.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', }, { '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').extensions.menufacture.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').extensions.menufacture.grep_string() end, desc = 'Find in workspace', }, }, 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').extensions.menufacture.git_files, opts) if not ok then require('telescope').extensions.menufacture.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 = false, sort_mru = true, ignore_current_buffer = 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 { } }, ['menufacture'] = { mappings = { main_menu = { [{ 'n' }] = 'm' }, }, }, } }) require('telescope').load_extension('ui-select') require('telescope').load_extension('fzf') require('telescope').load_extension('menufacture') end }