summary refs log tree commit diff
path: root/.vim/lua/plugins/_telescope.lua
diff options
context:
space:
mode:
Diffstat (limited to '.vim/lua/plugins/_telescope.lua')
-rw-r--r--.vim/lua/plugins/_telescope.lua181
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 }
 
 -- }}}