diff options
Diffstat (limited to '.vim/lua/plugins/_telescope.lua')
| -rw-r--r-- | .vim/lua/plugins/_telescope.lua | 181 |
1 files changed, 98 insertions, 83 deletions
diff --git a/.vim/lua/plugins/_telescope.lua b/.vim/lua/plugins/_telescope.lua index d4f9b89..4841862 100644 --- a/.vim/lua/plugins/_telescope.lua +++ b/.vim/lua/plugins/_telescope.lua @@ -1,98 +1,113 @@ -- telescope.nvim et al config -local u = require('utils') +local nnoremap = require('astronauta.keymap').nnoremap 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, - } - } - } + defaults = { + initial_mode = 'normal', + prompt_prefix = '> ', + selection_caret = '* ', + + -- copied from dropdown theme + sorting_strategy = 'ascending', + layout_strategy = 'center', + results_title = false, + preview_title = 'P', + preview_cutoff = 1, + width = 0.88, + results_height = 15, + borderchars = { + { '─', '│', '─', '│', '┌', '┐', '┘', '└'}, + prompt = {'─', '│', ' ', '│', '┌', '┐', '│', '│'}, + results = {'─', '│', '─', '│', '├', '┤', '┘', '└'}, + preview = { '─', '│', '─', '│', '┌', '┐', '┘', '└'}, + }, + + 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', "<cmd>lua require('plugins._telescope').live_grep()<cr>") -u.map('n', ';r', "<cmd>lua require('plugins._telescope').repo_search()<cr>") --- u.map('n', ';w', "<cmd>lua require('plugins._telescope').wiki()<cr>") -u.map('n', ';d', "<cmd>lua require('plugins._telescope').devel()<cr>") - -local mapbuiltin = function(key, fn, previewer) - opts = (not previewer and '{ previewer = false }') or '{}' - u.map('n', key, "<cmd>lua require('telescope.builtin')."..fn.."(require('plugins._telescope').wrap("..opts.."))<cr>") -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') +nnoremap { ';g', function() + require('telescope').extensions.fzf_writer.staged_grep() +end } + +nnoremap { ';w', function() + local wr = require('lspconfig.util').root_pattern('.git')(vim.fn.expand('%:p')) + require('telescope').extensions.fzf_writer.files({ + previewer = false, + cwd = wr, + }) +end } + +nnoremap { ';q', function() + local ids = vim.fn.getqflist({winid = 1}) + if ids and not (ids.winid == 0) then + vim.api.nvim_win_close(ids.winid, true) + end + require('telescope.builtin').quickfix() +end } + +nnoremap { ';l', function() + local ids = vim.fn.getloclist(0, {winid = 1}) + if ids and not (ids.winid == 0) then + vim.api.nvim_win_close(ids.winid, true) + end + require('telescope.builtin').loclist() +end } + +nnoremap { ';f', function() + require('telescope.builtin').fd() +end } + +nnoremap { ';b', function() + require('telescope.builtin').buffers() +end } + +nnoremap { ';t', function() + require('telescope.builtin').tags() +end } + +nnoremap { ';h', function() + require('telescope.builtin').command_history() +end } + +nnoremap { ';c', function() + require('telescope.builtin').commands() +end } + +-- LSP stuff + +nnoremap { 'gA', function() + require('telescope.builtin').lsp_code_actions() +end } + +nnoremap { 'gA', function() + require('telescope.builtin').lsp_code_actions() +end } + +nnoremap { 'g0', function() + require('telescope.builtin').lsp_document_symbols() +end } + +nnoremap { 'gr', function() + require('telescope.builtin').lsp_references() +end } -- }}} |