diff options
Diffstat (limited to '.vim/lua/conf/telescope.lua')
| -rw-r--r-- | .vim/lua/conf/telescope.lua | 75 |
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 |