summary refs log tree commit diff
path: root/.vim/lua/conf/telescope.lua
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.vim/lua/conf/telescope.lua75
1 files changed, 75 insertions, 0 deletions
diff --git a/.vim/lua/conf/telescope.lua b/.vim/lua/conf/telescope.lua
new file mode 100644
index 0000000..e1145c2
--- /dev/null
+++ b/.vim/lua/conf/telescope.lua
@@ -0,0 +1,75 @@
+-- config for telescope.nvim
+local telescope  = require('telescope')
+local finders    = require('telescope.finders')
+local pickers    = require('telescope.pickers')
+local previewers = require('telescope.previewers')
+local make_entry = require('telescope.make_entry')
+local sorters    = require('telescope.sorters')
+
+telescope.setup{
+	defaults = {
+		borderchars = {'─', '│', '─', '│', '┌', '┐', '┘', '└'},
+		winblend = 3,
+		layout_strategy = 'flex',
+	}
+}
+
+vim.api.nvim_set_keymap('n', ';f', "<cmd>lua require'telescope.builtin'.find_files{}<cr>",
+	{noremap=true, silent=true})
+vim.api.nvim_set_keymap('n', ';g', "<cmd>lua require'telescope.builtin'.live_grep{}<cr>",
+	{noremap=true, silent=true})
+vim.api.nvim_set_keymap('n', ';r', "<cmd>lua require'telescope.builtin'.lsp_references{}<cr>",
+	{noremap=true, silent=true})
+vim.api.nvim_set_keymap('n', ';q', "<cmd>lua require'telescope.builtin'.quickfix{}<cr>",
+	{noremap=true, silent=true})
+vim.api.nvim_set_keymap('n', ';l', "<cmd>lua require'telescope.builtin'.loclist{}<cr>",
+	{noremap=true, silent=true})
+vim.api.nvim_set_keymap('n', ';b', "<cmd>lua require'telescope.builtin'.buffers{}<cr>",
+	{noremap=true, silent=true})
+-- vim.api.nvim_set_keymap('n', ';h', "<cmd>lua require'conf.telescope'.home{}<cr>",
+-- 	{noremap=true, silent=true})
+vim.api.nvim_set_keymap('n', ';w', "<cmd>lua require'conf.telescope'.wiki{}<cr>",
+	{noremap=true, silent=true})
+
+local M = {}
+M.fzf = function(opts)
+	opts = opts or {}
+	if opts.cwd then
+		opts.cwd = vim.fn.expand(opts.cwd)
+	end
+	local cmd = {'fd', '--type', 'f', '--no-ignore', '--absolute-path'}
+	if opts.extensions then
+		for _, ext in ipairs(opts.extensions) do
+			table.insert(cmd, '--extension')
+			table.insert(cmd, ext)
+		end
+	end
+	if opts.exclude then
+		for _, excl in ipairs(opts.exclude) do
+			table.insert(cmd, '--exclude')
+			table.insert(cmd, excl)
+		end
+	end
+	pickers.new(opts, {
+		prompt = opts.prompt or "FZF",
+		finder = finders.new_oneshot_job(cmd, opts),
+		previewer = previewers.cat.new(opts),
+		sorter = sorters.get_fuzzy_file(),
+	}):find()
+end
+
+M.wiki = function()
+	return M.fzf {
+		prompt = 'WIKI',
+		cwd = '~/wiki',
+		extensions = {'md'},
+		exclude = {'_templates/*'}
+	}
+end
+-- M.home = function()
+-- 	return M.fzf {
+-- 		prompt = 'HOME',
+-- 		cwd = '~',
+-- 	}
+-- end
+return M