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
100
101
102
103
104
105
|
-- See `:help telescope` and `:help telescope.setup()`
require('telescope').setup {
defaults = {
mappings = {
i = {
-- ["<c-j>"] = "move_selection_next",
-- ["<c-k>"] = "move_selection_previous",
["<C-w>"] = require("telescope.actions.layout").toggle_preview,
["<C-u>"] = false,
},
},
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 = {
["<c-d>"] = "delete_buffer",
},
n = {
["<c-d>"] = "delete_buffer",
}
}
},
},
extensions = {
aerial = {
-- Display symbols as <root>.<parent>.<symbol>
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')
pcall(require('telescope').load_extension, 'repo')
-- See `:help telescope.builtin`
vim.keymap.set('n', '<leader>T', ':Telescope<CR>', { desc = '[T]elescope' })
vim.keymap.set('n', '<leader>f', require('telescope.builtin').oldfiles, { desc = '[F] Find recently opened files' })
vim.keymap.set('n', '<leader>b', require('telescope.builtin').buffers, { desc = '[B] Find existing buffers' })
vim.keymap.set('n', '<leader>st', require('telescope.builtin').builtin, { desc = '[S]earch [T]elescope for builtin' })
vim.keymap.set('n', '<leader>gf', require('telescope.builtin').git_files, { desc = 'Search [G]it [F]iles' })
vim.keymap.set('n', '<leader>sf', require('telescope.builtin').find_files, { desc = '[S]earch [F]iles' })
vim.keymap.set('n', '<leader>sh', require('telescope.builtin').help_tags, { desc = '[S]earch [H]elp' })
vim.keymap.set('n', '<leader>sw', require('telescope.builtin').grep_string, { desc = '[S]earch current [W]ord' })
vim.keymap.set('n', '<leader>sg', require('telescope.builtin').live_grep, { desc = '[S]earch by [G]rep' })
vim.keymap.set('n', '<leader>sd', require('telescope.builtin').diagnostics, { desc = '[S]earch [D]iagnostics' })
vim.keymap.set('n', '<leader>sk', require('telescope.builtin').keymaps, { desc = '[S]earch [K]eymaps' })
vim.keymap.set('n', '<leader>sh', require('telescope.builtin').help_tags, { desc = '[S]earch [H]elp' })
-- For grep in current buffer
vim.keymap.set('n', '<leader>/', 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', '<leader>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', '<leader>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', '<CR>', insert_selected_snippet)
map('n', '<CR>', insert_selected_snippet)
return true
end,
}
end, { desc = '[S]earch [S]nippets' })
|