dotfiles/lua/plugins/telescope.lua

63 lines
2.3 KiB
Lua

local telescope = require('telescope')
local actions = require('telescope.actions')
local builtin = require('telescope.builtin')
local luasnip = require('luasnip')
local lst = telescope.extensions.luasnip
telescope.setup {
defaults = {
layout_strategy = "vertical",
layout_config = {
vertical = {
prompt_position = "top",
},
horizontal = {
prompt_position = "bottom",
},
},
sorting_strategy = "ascending",
live_grep_arguments = { 'rg',
'--hidden', '--no-ignore', '--color=never',
'--with-filename', '--line-number',
'--column', '--smart-case', '--no-heading',
},
},
pickers = {
live_grep = {
layout_strategy = "horizontal",
mappings = {
i = { ["<c-f>"] = actions.to_fuzzy_refine },
},
},
find_files = {
previewer = false,
},
},
extensions = {
luasnip = {
search = function(entry)
return lst.filter_null(entry.context.trigger) .. " " ..
lst.filter_null(entry.context.name) .. " " ..
entry.ft .. " " ..
lst.filter_description(entry.context.name, entry.context.description) ..
lst.get_docstring(luasnip, entry.ft, entry.context)[1]
end
},
}
}
vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
vim.keymap.set('n', '<leader>fg', builtin.git_files, {})
vim.keymap.set('n', '<leader>fs', telescope.extensions.luasnip.luasnip, {})
vim.keymap.set('n', '<leader>gg', builtin.live_grep, {})
vim.keymap.set('n', '<leader>bb', builtin.buffers, {})
vim.keymap.set('n', '<leader>hh', builtin.help_tags, {})
vim.keymap.set('n', '<leader>ss', builtin.lsp_dynamic_workspace_symbols, {})
vim.keymap.set('n', '<leader>sd', builtin.lsp_document_symbols, {})
vim.keymap.set('n', '<leader>dd', builtin.diagnostics, {})
vim.keymap.set('n', '<leader>gd', builtin.lsp_definitions, {})
vim.keymap.set('n', '<leader>gr', builtin.lsp_references, {})
vim.keymap.set('n', '<leader>gi', builtin.lsp_implementations, {})
vim.keymap.set('n', '<leader>ci', builtin.lsp_incoming_calls, {})
vim.keymap.set('n', '<leader>co', builtin.lsp_outgoing_calls, {})