nvim-configs/lua/plugin/telescope.lua

98 lines
2.9 KiB
Lua

local M = {
'nvim-telescope/telescope.nvim',
dependencies = { 'nvim-lua/plenary.nvim' },
lazy = true,
cmd = 'Telescope',
}
function M.config()
local telescope = require 'telescope'
local actions = require 'telescope.actions'
require 'telescope'.setup {
defaults = {
path_display = { 'filename_first' },
layout_strategy = 'horizontal',
layout_config = {
prompt_position = 'top',
width = function(_, max_columns, _)
return math.min(max_columns, 180)
end,
horizontal = {
preview_width = 0.5,
},
},
sorting_strategy = 'ascending',
scroll_strategy = 'limit',
mappings = {
n = {
['<esc>'] = actions.close,
['q'] = actions.close,
},
i = {
['<c-down>'] = actions.move_selection_next,
['<c-up>'] = actions.move_selection_previous,
['<c-right>'] = function()
vim.api.nvim_set_option_value('background', 'light', {})
end,
['<c-left>'] = function()
vim.api.nvim_set_option_value('background', 'dark', {})
end,
}
},
},
pickers = {
find_files = {
hidden = true,
},
live_grep = {
disable_coordinates = true,
},
grep_string = {
disable_coordinates = true,
},
},
extensions = {
file_browser = {
git_icons = {
added = 'A',
changed = 'M',
copied = 'C',
deleted = 'D',
renamed = 'R',
unmerged = 'U',
untracked = '?',
},
},
},
}
telescope.load_extension 'ui-select'
telescope.load_extension 'vim_bookmarks'
end
M.keymap = function()
local builtin = require 'telescope.builtin'
local bookmarks = require 'telescope'.extensions.vim_bookmarks
vim.keymap.set('n', '<leader>f', builtin.find_files, { desc = 'Find files' })
vim.keymap.set('n', '<leader>r', builtin.resume, { desc = 'Resume last search' })
vim.keymap.set('n', '<s-f>', function() builtin.grep_string { word_match = '-w' } end,
{ desc = 'Find word under cursor' })
vim.keymap.set('v', '<s-f>', builtin.grep_string, { desc = 'Find visual selection' })
vim.keymap.set('n', '<leader>st', builtin.live_grep, { desc = 'Search for text in files' })
vim.keymap.set('n', '<leader>ld', builtin.diagnostics, { desc = 'List diagnostics' })
vim.keymap.set('n', '<leader>lp', function() builtin.colorscheme { enable_preview = true } end,
{ desc = 'Preview colorschemes' })
vim.keymap.set('n', '<leader>o', builtin.lsp_document_symbols, { desc = 'List document symbols' })
vim.keymap.set('n', '<leader>p', builtin.lsp_workspace_symbols, { desc = 'List workspace symbols' })
vim.keymap.set('n', '<leader>gb', builtin.git_branches, { desc = 'List git branches' })
vim.keymap.set('n', '<leader>gc', builtin.git_commits, { desc = 'List git commits' })
vim.keymap.set('n', '<m-q>', function()
builtin.git_status {
max_results = 10000,
temp__scrolling_limit = 10000,
}
end, { desc = 'Git status' })
vim.keymap.set('n', 'ma', bookmarks.all, { desc = 'List bookmarks' })
end
return M