return { 'nvim-telescope/telescope.nvim', version = '*', dependencies = {'nvim-lua/plenary.nvim'}, config = function() -- Find files using lua fuctions local opts = {silent = true, noremap = true} vim.api.nvim_set_keymap('n', 'ff', "lua require'telescope.builtin'.find_files()", {silent = false, noremap = true}) vim.api.nvim_set_keymap('n', 'fg', "lua require'telescope.builtin'.live_grep()", opts) vim.api.nvim_set_keymap('n', 'fs', "lua require'telescope.builtin'.grep_string()", opts) vim.api.nvim_set_keymap('n', 'ft', "lua require'telescope.builtin'.file_browser()", opts) vim.api.nvim_set_keymap('n', 'fo', "lua require'telescope.builtin'.oldfiles()", opts) vim.api.nvim_set_keymap('n', 'gc', "lua require'telescope.builtin'.git_commits()", opts) vim.api.nvim_set_keymap('n', 'gb', "lua require'telescope.builtin'.git_branches()", opts) vim.api.nvim_set_keymap('n', 'fb', "lua require'telescope.builtin'.buffers()", opts) vim.api.nvim_set_keymap('n', 'fh', "lua require'telescope.builtin'.help_tags()", opts) local actions = require('telescope.actions') require('telescope').setup { defaults = { -- program to use for searching with its arguments find_command = { 'rg', '--no-heading', '--with-filename', '--line-number', '--column', '--smart-case' }, -- prompt_position = 'top', -- have prompt at the top (has no effect on vertical configuration) prompt_prefix = ' ', -- symbol on prompt window selection_caret = ' ', -- symbol on selected row in results window entry_prefix = ' ', -- symbol on non-selected rows in results window initial_mode = 'insert', -- start in insert mode selection_strategy = 'reset', -- what happens to selection when list changes sorting_strategy = 'ascending', -- start with most important search on top layout_strategy = 'horizontal', -- vertical layout layout_config = {prompt_position = 'top'}, file_sorter = require'telescope.sorters'.get_fuzzy_file, file_ignore_patterns = {'node_modules/.*'}, -- never search in node_modules/ dir generic_sorter = require'telescope.sorters'.get_generic_fuzzy_sorter, display_path = true, winblend = 0, -- window should not be transparent border = {}, -- no border? borderchars = {'─', '│', '─', '│', '╭', '╮', '╯', '╰'}, -- border chars color_devicons = true, -- colorize used icons use_less = true, -- less is bash program for preview file contents set_env = {['COLORTERM'] = 'truecolor'}, -- use all the colors file_previewer = require'telescope.previewers'.vim_buffer_cat.new, grep_previewer = require'telescope.previewers'.vim_buffer_vimgrep.new, qflist_previewer = require'telescope.previewers'.vim_buffer_qflist.new, buffer_previewer_maker = require'telescope.previewers'.buffer_previewer_maker, -- preview_cutoff = 120, mappings = { i = { [''] = actions.move_selection_next, [''] = actions.move_selection_previous, [''] = actions.smart_send_to_qflist + actions.open_qflist, -- ['ć'] = actions.close, [''] = actions.select_default + actions.center }, n = { [''] = actions.move_selection_next, [''] = actions.move_selection_previous, [''] = actions.smart_send_to_qflist + actions.open_qflist, ['ć'] = actions.close } } }, extensions = {fzy_native = {override_generic_sorter = false, override_file_sorter = true}} } end }