204 lines
5.4 KiB
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
|
|
}
|