From 8d8e5a626bcaf634fc56f6b7b28388f607f3b6c7 Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Sat, 8 Jun 2024 18:22:03 +0800 Subject: Update --- vim/lazy/plugin/telescope.lua | 102 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 vim/lazy/plugin/telescope.lua (limited to 'vim/lazy/plugin/telescope.lua') diff --git a/vim/lazy/plugin/telescope.lua b/vim/lazy/plugin/telescope.lua new file mode 100644 index 0000000..f8947a2 --- /dev/null +++ b/vim/lazy/plugin/telescope.lua @@ -0,0 +1,102 @@ +-- See `:help telescope` and `:help telescope.setup()` + +require('telescope').setup { + defaults = { + mappings = { + i = { + [""] = "move_selection_next", + [""] = "move_selection_previous", + [""] = require("telescope.actions.layout").toggle_preview, + }, + }, + layout_config = { + vertical = { height = 0.8 }, + -- other layout configuration here + preview_cutoff = 0, + }, + }, + pickers = { + buffers = { + show_all_buffers = true, + sort_lastused = true, + theme = "dropdown", + previewer = false, + mappings = { + i = { + [""] = "delete_buffer", + }, + n = { + [""] = "delete_buffer", + } + } + }, + + }, + extensions = { + aerial = { + -- Display symbols as .. + show_nesting = { + ["_"] = false, -- This key will be the default + json = true, -- You can set the option for specific filetypes + yaml = true, + }, + }, + }, +} + +-- Enable telescope fzf native, if installed +pcall(require('telescope').load_extension, 'fzf') + +-- See `:help telescope.builtin` +vim.keymap.set('n', 'f', require('telescope.builtin').oldfiles, { desc = '[F] Find recently opened files' }) +vim.keymap.set('n', 'b', require('telescope.builtin').buffers, { desc = '[B] Find existing buffers' }) +vim.keymap.set('n', 'st', require('telescope.builtin').builtin, { desc = '[S]earch [T]elescope for builtin' }) +vim.keymap.set('n', 'gf', require('telescope.builtin').git_files, { desc = 'Search [G]it [F]iles' }) +vim.keymap.set('n', 'sf', require('telescope.builtin').find_files, { desc = '[S]earch [F]iles' }) +vim.keymap.set('n', 'sh', require('telescope.builtin').help_tags, { desc = '[S]earch [H]elp' }) +vim.keymap.set('n', 'sw', require('telescope.builtin').grep_string, { desc = '[S]earch current [W]ord' }) +vim.keymap.set('n', 'sg', require('telescope.builtin').live_grep, { desc = '[S]earch by [G]rep' }) +vim.keymap.set('n', 'sd', require('telescope.builtin').diagnostics, { desc = '[S]earch [D]iagnostics' }) +vim.keymap.set('n', 'sk', require('telescope.builtin').keymaps, { desc = '[S]earch [K]eymaps' }) +vim.keymap.set('n', 'sh', require('telescope.builtin').help_tags, { desc = '[S]earch [H]elp' }) + +-- For grep in current buffer +vim.keymap.set('n', '/', function() + -- You can pass additional configuration to telescope to change theme, layout, etc. + require('telescope.builtin').current_buffer_fuzzy_find(require('telescope.themes').get_dropdown { + --winblend = 10, + previewer = false, + }) +end, { desc = '[/] Fuzzily search in current buffer' }) + +-- For neovim config files +vim.keymap.set('n', 'sn', function() + require('telescope.builtin').find_files { + cwd = vim.fn.stdpath 'config', + follow = true + } +end, { desc = '[S]earch [N]eovim files' }) + +-- Get snippets from ~/helper/snippets +vim.keymap.set('n', 'ss', function() + local current_filetype = vim.bo.filetype + local cwd = '/home/pham/helper/snippets/' .. current_filetype + require('telescope.builtin').find_files { + prompt_title = 'Select a snippet for ' .. current_filetype, + cwd = cwd, + attach_mappings = function(prompt_bufnr, map) + local insert_selected_snippet = function() + local file = require('telescope.actions.state').get_selected_entry()[1] + local snippet_content = vim.fn.readfile(cwd .. "/" .. file) + require('telescope.actions').close(prompt_bufnr) + vim.api.nvim_command('normal! h') + vim.api.nvim_put(snippet_content, '', false, true) + end + + map('i', '', insert_selected_snippet) + map('n', '', insert_selected_snippet) + + return true + end, + } +end, { desc = '[S]earch [S]nippets' }) -- cgit v1.2.3-70-g09d2