summary refs log tree commit diff
path: root/.vim/lua/plugins/_telescope.lua
blob: d4f9b89c30da5326789118ef89ba19829c874c8d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
-- 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', "<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')

-- }}}

return M