-- telescope.nvim et al config local u = require('utils') local M = {} -- TELESCOPE config -- {{{ require('telescope').setup{ defaults = { -- vimgrep_arguments = { -- 'rg', -- '--color=never', -- '--no-heading', -- '--with-filename', -- '--line-number', -- '--column', -- '--smart-case' -- }, prompt_prefix = ' >', borderchars = {'─', '│', '─', '│', '┌', '┐', '┘', '└'}, winblend = 0, preview_cutoff = 120, layout_strategy = 'flex', 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, extensions = { fzf_writer = { use_highlighter = true, minimum_grep_characters = 4, shorten_path = true, } } } } -- }}} -- LOCAL finders -- {{{ M.wrap = function(opts) opts = opts or {} my_opts = require('telescope.themes').get_dropdown({ width = 110 }) return vim.tbl_deep_extend("force", my_opts, opts) end M.live_grep = function() require('telescope').extensions.fzf_writer.staged_grep(M.wrap()) end M.repo_search = function() require('telescope').extensions.fzf_writer.files(M.wrap({ previewer = false, cwd = require('lspconfig.util').root_pattern('.git')(vim.fn.expand('%:p')), })) end M.wiki = function() require('telescope').extensions.fzf_writer.files(M.wrap({ previewer = false, cwd = '~/wiki/', })) end M.devel = function() require('telescope').extensions.fzf_writer.files(M.wrap({ previewer = false, cwd = '~/devel/', })) end -- }}} -- MAPPINGS -- {{{ u.map('n', ';g', "lua require('plugins._telescope').live_grep()") u.map('n', ';r', "lua require('plugins._telescope').repo_search()") -- u.map('n', ';w', "lua require('plugins._telescope').wiki()") u.map('n', ';d', "lua require('plugins._telescope').devel()") local mapbuiltin = function(key, fn, previewer) opts = (not previewer and '{ previewer = false }') or '{}' u.map('n', key, "lua require('telescope.builtin')."..fn.."(require('plugins._telescope').wrap("..opts.."))") end mapbuiltin(';f', 'fd', true) mapbuiltin(';q', 'quickfix') mapbuiltin(';l', 'loclist') mapbuiltin(';b', 'buffers') mapbuiltin(';t', 'tags') mapbuiltin(';lr', 'lsp_references') mapbuiltin(';la', 'lsp_code_actions') mapbuiltin(';lw', 'lsp_workspace_symbols') mapbuiltin(';c', 'command_history') -- }}} return M