nvim/lua/plugins/telescope.lua

197 lines
5.0 KiB
Lua

return {
'nvim-telescope/telescope.nvim',
dependencies = {
'nvim-lua/plenary.nvim',
'kyazdani42/nvim-web-devicons',
'molecule-man/telescope-menufacture',
{
'nvim-telescope/telescope-fzf-native.nvim',
build = {
'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -G Ninja', -- On windows add -DCMAKE_C_FLAGS="-target x86_64-w64-mingw32"
'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 = true, 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>h',
function()
require('telescope.builtin').command_history()
end,
desc = 'Open command history',
},
{
'<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',
},
{
'<space>p',
function()
require('telescope').extensions.projects.projects()
end,
desc = 'Select project',
},
},
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,
},
},
-- `hidden = true` is not supported in text grep commands.
vimgrep_arguments = vimgrep_arguments,
},
pickers = {
-- Your special builtin config goes in here
buffers = {
sort_lastused = 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 = {},
},
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
}