81 lines
2.3 KiB
Lua
81 lines
2.3 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,
|
|
},
|
|
},
|
|
},
|
|
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'
|
|
end
|
|
|
|
M.keymap = function()
|
|
local builtin = require 'telescope.builtin'
|
|
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>sd', builtin.diagnostics, { desc = 'List diagnostics' })
|
|
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' })
|
|
end
|
|
|
|
return M
|