220 lines
6.6 KiB
Lua
220 lines
6.6 KiB
Lua
-- ╭─────────────────────────────────────────────────────────╮
|
|
-- │ Telescope Plugins │
|
|
-- ╰─────────────────────────────────────────────────────────╯
|
|
---@module "plugins.telescope"
|
|
--- This module defines the telescope plugins specs for the Neovim configuration.
|
|
|
|
local P = { -- Define Telescope Plugins Specs
|
|
{ -- Telescope All Recent
|
|
'prochri/telescope-all-recent.nvim',
|
|
dependencies = {
|
|
'nvim-telescope/telescope.nvim',
|
|
'kkharji/sqlite.lua',
|
|
-- optional, if using telescope for vim.ui.select
|
|
'stevearc/dressing.nvim',
|
|
},
|
|
opts = {
|
|
default = {
|
|
disable = true, -- disable any unkown pickers (recommended)
|
|
use_cwd = true, -- differentiate scoring for each picker based on cwd
|
|
sorting = 'frecency', -- sorting: options: 'recent' and 'frecency'
|
|
},
|
|
},
|
|
},
|
|
{ -- Telescope Heading
|
|
'crispgm/telescope-heading.nvim',
|
|
dependencies = {
|
|
'nvim-telescope/telescope.nvim',
|
|
},
|
|
config = function()
|
|
require('telescope').setup({
|
|
extensions = {
|
|
heading = {
|
|
treesitter = true,
|
|
},
|
|
},
|
|
})
|
|
require('telescope').load_extension('heading')
|
|
end,
|
|
},
|
|
{ -- Telescope Spell checker
|
|
'matkrin/telescope-spell-errors.nvim',
|
|
lazy = true,
|
|
cmd = require('data.cmd').spell_errors,
|
|
config = function()
|
|
require('telescope').load_extension('spell_errors')
|
|
end,
|
|
dependencies = require('data.deps').needs_telescope,
|
|
},
|
|
{ -- Telescope Toggleterm
|
|
'ryanmsnyder/toggleterm-manager.nvim',
|
|
dependencies = {
|
|
'akinsho/nvim-toggleterm.lua',
|
|
'nvim-telescope/telescope.nvim',
|
|
'nvim-lua/plenary.nvim', -- only needed because it's a dependency of telescope
|
|
},
|
|
config = true,
|
|
keys = require('data.keys').telescope.toggleterm,
|
|
},
|
|
{ -- Telescope Lazy
|
|
'nvim-telescope/telescope.nvim',
|
|
dependencies = 'tsakirist/telescope-lazy.nvim',
|
|
keys = require('data.keys').telescope.lazy,
|
|
},
|
|
{ -- Telescope Luasnip
|
|
'benfowler/telescope-luasnip.nvim',
|
|
module = 'telescope._extensions.luasnip', -- if you wish to lazy-load
|
|
config = function()
|
|
require('telescope').load_extension('luasnip')
|
|
end,
|
|
},
|
|
{ -- Telescope Git Worktree
|
|
'ThePrimeagen/git-worktree.nvim',
|
|
},
|
|
{ -- UndoTree Telescope extension
|
|
'nvim-telescope/telescope.nvim',
|
|
dependencies = {
|
|
'nvim-lua/plenary.nvim',
|
|
'debugloop/telescope-undo.nvim',
|
|
'jonarrien/telescope-cmdline.nvim',
|
|
},
|
|
opts = function()
|
|
require('telescope').load_extension('undo')
|
|
vim.keymap.set('n', '<leader>uU', '<cmd>Telescope undo<cr>')
|
|
return {
|
|
extensions = {
|
|
undo = {},
|
|
},
|
|
}
|
|
end,
|
|
},
|
|
{ -- Telescope Software Licenses
|
|
'chip/telescope-software-licenses.nvim',
|
|
dependencies = {
|
|
'nvim-telescope/telescope.nvim',
|
|
'nvim-lua/plenary.nvim',
|
|
},
|
|
config = function()
|
|
require('telescope').load_extension('software-licenses')
|
|
end,
|
|
},
|
|
{ -- Telescope Conventional Commits
|
|
'olacin/telescope-cc.nvim',
|
|
config = function()
|
|
require('telescope').load_extension('conventional_commits')
|
|
end,
|
|
},
|
|
{ -- Telescope File Browser
|
|
'nvim-telescope/telescope-file-browser.nvim',
|
|
dependencies = { 'nvim-telescope/telescope.nvim', 'nvim-lua/plenary.nvim' },
|
|
config = function()
|
|
require('telescope').load_extension('file_browser')
|
|
end,
|
|
keys = require('data.keys').telescope.filebrowser,
|
|
},
|
|
{ -- Cheatsheet
|
|
'doctorfree/cheatsheet.nvim',
|
|
event = 'VeryLazy',
|
|
dependencies = {
|
|
{ 'nvim-telescope/telescope.nvim' },
|
|
{ 'nvim-lua/popup.nvim' },
|
|
{ 'nvim-lua/plenary.nvim' },
|
|
},
|
|
cmd = 'Cheatsheet',
|
|
config = function()
|
|
local ctactions = require('cheatsheet.telescope.actions')
|
|
require('cheatsheet').setup({
|
|
bundled_cheetsheets = {
|
|
enabled = {
|
|
'default',
|
|
'lua',
|
|
'markdown',
|
|
'regex',
|
|
'netrw',
|
|
'unicode',
|
|
},
|
|
disabled = { 'nerd-fonts' },
|
|
},
|
|
bundled_plugin_cheatsheets = {
|
|
enabled = {
|
|
'auto-session',
|
|
'goto-preview',
|
|
'octo.nvim',
|
|
'telescope.nvim',
|
|
'vim-easy-align',
|
|
'vim-sandwich',
|
|
},
|
|
disabled = { 'gitsigns' },
|
|
},
|
|
include_only_installed_plugins = true,
|
|
telescope_mappings = {
|
|
['<CR>'] = ctactions.select_or_fill_commandline,
|
|
['<A-CR>'] = ctactions.select_or_execute,
|
|
['<C-Y>'] = ctactions.copy_cheat_value,
|
|
['<C-E>'] = ctactions.edit_user_cheatsheet,
|
|
},
|
|
})
|
|
require('telescope').load_extension('cheatsheet')
|
|
end,
|
|
},
|
|
{ -- Telescope Git Diffs
|
|
'paopaol/telescope-git-diffs.nvim',
|
|
requires = {
|
|
'nvim-lua/plenary.nvim',
|
|
'sindrets/diffview.nvim',
|
|
},
|
|
},
|
|
{ -- Fzf Lua
|
|
'ibhagwan/fzf-lua',
|
|
opts = { 'telescope', fzf_colors = true },
|
|
},
|
|
{
|
|
'danielfalk/smart-open.nvim',
|
|
branch = '0.2.x',
|
|
config = function()
|
|
require('telescope').load_extension('smart_open')
|
|
end,
|
|
dependencies = {
|
|
'kkharji/sqlite.lua',
|
|
-- Only required if using match_algorithm fzf
|
|
{ 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' },
|
|
-- Optional. If installed, native fzy will be used when match_algorithm is fzy
|
|
{ 'nvim-telescope/telescope-fzy-native.nvim' },
|
|
},
|
|
},
|
|
{ -- Telescope Egrepify
|
|
'fdschmidt93/telescope-egrepify.nvim',
|
|
lazy = false,
|
|
opts = {},
|
|
dependencies = { 'nvim-telescope/telescope.nvim', 'nvim-lua/plenary.nvim' },
|
|
},
|
|
}
|
|
|
|
if require('data.func').check_global_var('use_telescope', false, true) then
|
|
P = { { import = 'lazyvim.plugins.extras.editor.fzf' } }
|
|
end
|
|
|
|
if require('data.func').check_global_var('use_fzf_lua', true, false) then
|
|
table.insert(P, 1, { import = 'lazyvim.plugins.extras.editor.fzf' })
|
|
table.insert(P, 2, {
|
|
'ibhagwan/fzf-lua',
|
|
lazy = false,
|
|
opts = {
|
|
previewers = {
|
|
builtin = {
|
|
extensions = {
|
|
-- neovim terminal only supports `viu` block output
|
|
['png'] = { 'viu', '-b' },
|
|
-- by default the filename is added as last argument
|
|
-- if required, use `{file}` for argument positioning
|
|
['svg'] = { 'viu', '-b' },
|
|
['jpg'] = { 'viu', '-b' },
|
|
},
|
|
},
|
|
},
|
|
},
|
|
})
|
|
end
|
|
|
|
return P
|