nvim/lua/plugins/telescope.lua

204 lines
5.4 KiB
Lua

return {
'nvim-telescope/telescope.nvim',
dependencies = {
'nvim-lua/plenary.nvim',
'nvim-tree/nvim-web-devicons',
'molecule-man/telescope-menufacture',
{
'nvim-telescope/telescope-fzf-native.nvim',
build =
'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build',
},
'nvim-telescope/telescope-ui-select.nvim',
'ahmedkhalf/project.nvim',
},
cmd = { 'Telescope' },
keys = {
{
'<leader>f',
function()
require('telescope').extensions.menufacture.find_files({ no_ignore = false, hidden = true })
end,
desc = 'Find file',
},
{
'<leader>c',
function()
require('telescope.builtin').commands()
end,
desc = 'Telescope commands',
},
{
'<leader>g',
function()
Project_files()
end,
desc = 'Find git files',
},
{
'<leader>o',
function()
require('telescope.builtin').oldfiles()
end,
desc = 'Find old files',
},
{
'<leader>b',
function()
require('telescope.builtin').buffers()
end,
desc = 'Select buffer',
},
{
'<leader>q',
function()
require('telescope.builtin').quickfix()
end,
desc = 'Quickfix list with telescope',
},
{
'<leader>l',
function()
require('telescope').extensions.menufacture.live_grep()
end,
desc = 'Search in project',
},
{
'<leader>j',
function()
require('telescope.builtin').jumplist()
end,
desc = 'Open jumplist',
},
{
'<c-f>',
function()
require('telescope.builtin').current_buffer_fuzzy_find()
end,
desc = 'Find in buffer',
},
{
'<leader>d',
function()
require('telescope').extensions.menufacture.grep_string()
end,
desc = 'Find in workspace',
},
},
config = function()
local actions = require('telescope.actions')
local mappingTab = {
i = {
['<cr>'] = actions.select_tab,
['<C-b>'] = actions.select_default,
},
}
Project_files = function()
local opts = {} -- define here if you want to define something
local ok = pcall(require('telescope').extensions.menufacture.git_files, opts)
if not ok then require('telescope').extensions.menufacture.find_files(opts) end
end
local telescopeConfig = require('telescope.config')
-- Clone the default Telescope configuration
local vimgrep_arguments = { unpack(telescopeConfig.values.vimgrep_arguments) }
-- I want to search in hidden/dot files.
table.insert(vimgrep_arguments, '--hidden')
-- I don't want to search in the `.git` directory.
table.insert(vimgrep_arguments, '--glob')
table.insert(vimgrep_arguments, '!**/.git/*')
require('telescope').setup({
defaults = {
mappings = {
i = {
['<cr>'] = actions.select_default + actions.center,
['<C-l>'] = actions.send_selected_to_loclist,
['<C-q>'] = actions.smart_send_to_qflist,
},
},
results_title = false,
preview_title = false,
borderchars = { '', '', '', '', '', '', '', '' },
-- `hidden = true` is not supported in text grep commands.
vimgrep_arguments = vimgrep_arguments,
},
pickers = {
-- Your special builtin config goes in here
buffers = {
sort_lastused = false,
sort_mru = true,
ignore_current_buffer = true,
theme = 'ivy',
mappings = {
i = {
['<c-w>'] = actions.delete_buffer,
['<cr>'] = actions.select_default,
},
n = {
['<c-w>'] = actions.delete_buffer,
},
},
},
find_files = {
theme = 'ivy',
previewer = false,
-- `hidden = true` will still show the inside of `.git/` as it's not `.gitignore`d.
find_command = { 'rg', '--files', '--hidden', '--glob', '!**/.git/*' },
},
oldfiles = {
theme = 'ivy',
},
git_files = {
theme = 'ivy',
previewer = false,
},
lsp_references = {
show_line = false,
include_declaration = false,
},
lsp_dynamic_workspace_symbols = {
theme = 'ivy',
fname_width = 80,
symbol_width = 55,
symbol_type_width = 8,
ignore_symbols = { 'namespace' }
},
lsp_document_symbols = {
theme = 'ivy',
fname_width = 80,
symbol_width = 85,
symbol_type_width = 8,
ignore_symbols = { 'namespace' }
},
lsp_workspace_symbols = {
fname_width = 30,
symbol_width = 85,
symbol_type_width = 8,
ignore_symbols = { 'namespace' }
},
},
extensions = {
['ui-select'] = {
require('telescope.themes').get_dropdown {
}
},
['menufacture'] = {
mappings = {
main_menu = { [{ 'n' }] = 'm' },
},
},
}
})
require('telescope').load_extension('ui-select')
require('telescope').load_extension('fzf')
require('telescope').load_extension('menufacture')
end
}