vim: telescope
refactor
This commit is contained in:
parent
c924601769
commit
98c8837469
6 changed files with 77 additions and 64 deletions
|
@ -7,8 +7,11 @@ M.dependencies = {
|
||||||
'nvim-telescope/telescope.nvim',
|
'nvim-telescope/telescope.nvim',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
local ts = require('fschauen.plugins.telescope')
|
||||||
|
local lhs, desc = ts.keymap.lhs, ts.keymap.description
|
||||||
|
|
||||||
M.keys = {
|
M.keys = {
|
||||||
{ '<leader>fi', '<cmd>Nerdy<cr>', desc = ' Telescope Nerd [i]cons' },
|
{ lhs('i'), '<cmd>Nerdy<cr>', desc = desc('Nerd [i]cons') },
|
||||||
}
|
}
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
@ -13,9 +13,12 @@ local telescope_notify = function()
|
||||||
notify.notify(theme)
|
notify.notify(theme)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local ts = require('fschauen.plugins.telescope')
|
||||||
|
local lhs, desc = ts.keymap.lhs, ts.keymap.description
|
||||||
|
|
||||||
M.keys = {
|
M.keys = {
|
||||||
{ '<leader>n', '<cmd>Notifications<cr>', desc = 'Display notification history' },
|
{ '<leader>n', '<cmd>Notifications<cr>', desc = 'Display notification history' },
|
||||||
{ '<leader>fn', telescope_notify, desc = ' Telescope [n]otifications' },
|
{ lhs('n'), telescope_notify, desc = desc('[n]otifications') },
|
||||||
}
|
}
|
||||||
|
|
||||||
M.lazy = false
|
M.lazy = false
|
||||||
|
|
|
@ -2,8 +2,11 @@ local M = { 'nvim-telescope/telescope-file-browser.nvim' }
|
||||||
|
|
||||||
M.dependencies = { 'nvim-telescope/telescope.nvim' }
|
M.dependencies = { 'nvim-telescope/telescope.nvim' }
|
||||||
|
|
||||||
|
local ts = require('fschauen.plugins.telescope')
|
||||||
|
local lhs, desc = ts.keymap.lhs, ts.keymap.description
|
||||||
|
|
||||||
M.keys = {
|
M.keys = {
|
||||||
{ '<leader>fB', '<cmd>Telescope file_browser<cr>' , desc = ' Telescope file [B]rowser' },
|
{ lhs('B'), '<cmd>Telescope file_browser<cr>' , desc = desc('file [B]rowser') },
|
||||||
}
|
}
|
||||||
|
|
||||||
M.config = function(--[[plugin]]_, --[[opts]]_)
|
M.config = function(--[[plugin]]_, --[[opts]]_)
|
||||||
|
|
|
@ -9,30 +9,31 @@ M.dependencies = {
|
||||||
|
|
||||||
M.cmd = 'Telescope'
|
M.cmd = 'Telescope'
|
||||||
|
|
||||||
local builtin = function(picker, opts)
|
local builtin_picker = function(name, opts)
|
||||||
return function(title)
|
return function(title)
|
||||||
return function()
|
return function()
|
||||||
local args = vim.tbl_extend('keep', { prompt_title = title }, opts or {})
|
local picker = require('telescope.builtin')[name]
|
||||||
return require('telescope.builtin')[picker](args)
|
picker(vim.tbl_extend('force', opts or {}, { prompt_title = title }))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local util = require('fschauen.util')
|
local util = require('fschauen.util')
|
||||||
|
local icons = require('fschauen.util.icons')
|
||||||
|
|
||||||
local pickers = setmetatable({
|
local pickers = setmetatable({
|
||||||
all_files = builtin('find_files', {
|
all_files = builtin_picker('find_files', {
|
||||||
hidden = true,
|
hidden = true,
|
||||||
no_ignore = true,
|
no_ignore = true,
|
||||||
no_ignore_parent = true,
|
no_ignore_parent = true,
|
||||||
}),
|
}),
|
||||||
colorscheme = builtin('colorscheme', {
|
colorscheme = builtin_picker('colorscheme', {
|
||||||
enable_preview = true,
|
enable_preview = true,
|
||||||
}),
|
}),
|
||||||
diagnostics = builtin('diagnostics', {
|
diagnostics = builtin_picker('diagnostics', {
|
||||||
bufnr = 0
|
bufnr = 0
|
||||||
}),
|
}),
|
||||||
dotfiles = builtin('find_files', {
|
dotfiles = builtin_picker('find_files', {
|
||||||
cwd = '~/.dotfiles',
|
cwd = '~/.dotfiles',
|
||||||
hidden = true,
|
hidden = true,
|
||||||
}),
|
}),
|
||||||
|
@ -45,68 +46,68 @@ local pickers = setmetatable({
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
here = builtin('current_buffer_fuzzy_find'),
|
here = builtin_picker('current_buffer_fuzzy_find'),
|
||||||
}, {
|
}, {
|
||||||
-- Fall back to telescope's built-in pickers if a custom one is not defined
|
-- Fall back to telescope's built-in pickers if a custom one is not defined
|
||||||
-- above, but make sure to keep the title we defined.
|
-- above, but make sure to keep the title we defined.
|
||||||
__index = function(_, picker)
|
__index = function( --[[tbl]] _, key)
|
||||||
return builtin(picker)
|
return builtin_picker(key)
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
local desc = function(text)
|
M.keymap = {
|
||||||
return ' Telescope ' .. text
|
lhs = function(keys) return '<leader>f' .. keys end,
|
||||||
end
|
description = function(text) return icons.ui.Telescope .. ' Telescope ' .. text end
|
||||||
|
}
|
||||||
|
local lhs, desc = M.keymap.lhs, M.keymap.description
|
||||||
|
|
||||||
M.keys = {
|
M.keys = {
|
||||||
{ '<leader>fa', pickers.autocommands ' Autocommands' , desc = desc('[a]utocommands') },
|
{ lhs'a', pickers.autocommands ' Autocommands' , desc = desc('[a]utocommands') },
|
||||||
{ '<leader>fb', pickers.buffers ' Buffers' , desc = desc('[b]uffers') },
|
{ lhs'b', pickers.buffers ' Buffers' , desc = desc('[b]uffers') },
|
||||||
--'<leader>fB' used in telescope-file-browser
|
--lhs'B' used in telescope-file-browser
|
||||||
{ '<leader>fc', pickers.colorscheme ' Colorschemes' , desc = desc('[c]olorschemes') },
|
{ lhs'c', pickers.colorscheme ' Colorschemes' , desc = desc('[c]olorschemes') },
|
||||||
{ '<leader>fC', pickers.commands ' Commands' , desc = desc('[C]ommands') },
|
{ lhs'C', pickers.commands ' Commands' , desc = desc('[C]ommands') },
|
||||||
{ '<leader>fdd', pickers.diagnostics ' Document Diagnostics' , desc = desc('[d]iagnostics [d]ocument') },
|
{ lhs'd', pickers.diagnostics ' Diagnostics' , desc = desc('[d]iagnostics') },
|
||||||
{ '<leader>fdw', pickers.diagnostics ' Workspace Diagnostics', desc = desc('[d]iagnostics [w]orkspace') },
|
--lhs'e'
|
||||||
--'<leader>fe'
|
{ lhs'f', pickers.find_files ' Files' , desc = desc('[f]ind files') },
|
||||||
{ '<leader>ff', pickers.find_files ' Files' , desc = desc('[f]ind files') },
|
{ lhs'F', pickers.all_files ' ALL files' , desc = desc('all [F]iles') },
|
||||||
{ '<leader>fF', pickers.all_files ' ALL files' , desc = desc('all [F]iles') },
|
{ lhs'gr', pickers.live_grep ' Live grep' , desc = desc('Live [gr]ep') },
|
||||||
{ '<leader>fgr', pickers.live_grep ' Live grep' , desc = desc('Live [gr]ep') },
|
{ lhs'gf', pickers.git_files ' Git files' , desc = desc('[g]it [f]iles') },
|
||||||
{ '<leader>fgf', pickers.git_files ' Git files' , desc = desc('[g]it [f]iles') },
|
{ lhs'gc', pickers.git_commits ' Commits' , desc = desc('[g]it [c]ommits') },
|
||||||
{ '<leader>fgc', pickers.git_commits ' Commits' , desc = desc('[g]it [c]ommits') },
|
{ lhs'h', pickers.here ' Current buffer' , desc = desc('[b]uffer [h]ere') },
|
||||||
{ '<leader>fh', pickers.here ' Current buffer' , desc = desc('[b]uffer [h]ere') },
|
{ lhs'H', pickers.highlights ' Highlights' , desc = desc('[H]ighlights') },
|
||||||
{ '<leader>fH', pickers.highlights ' Highlights' , desc = desc('[H]ighlights') },
|
--lhs'i' used in nerdy
|
||||||
--'<leader>fi' used in nerdy
|
{ lhs'j', pickers.jumplist ' Jumplist' , desc = desc('[j]umplist') },
|
||||||
{ '<leader>fj', pickers.jumplist ' Jumplist' , desc = desc('[j]umplist') },
|
{ lhs'k', pickers.keymaps ' Keymaps' , desc = desc('[k]eymaps') },
|
||||||
{ '<leader>fk', pickers.keymaps ' Keymaps' , desc = desc('[k]eymaps') },
|
{ lhs'K', pickers.help_tags ' Help tags' , desc = desc('[K] help/documentation') },
|
||||||
{ '<leader>fK', pickers.help_tags ' Help tags' , desc = desc('[K] help/documentation') },
|
{ lhs'l', pickers.loclist ' Location list' , desc = desc('[l]ocation List') },
|
||||||
{ '<leader>fl', pickers.loclist ' Location list' , desc = desc('[l]ocation List') },
|
{ lhs'm', pickers.man_pages ' Man pages' , desc = desc('[m]an pages') },
|
||||||
{ '<leader>fm', pickers.man_pages ' Man pages' , desc = desc('[m]an pages') },
|
--lhs'n' used in vim-notify
|
||||||
--'<leader>fn' used in vim-notify
|
{ lhs'o', pickers.vim_options ' Vim options' , desc = desc('[o]ptions') },
|
||||||
{ '<leader>fo', pickers.vim_options ' Vim options' , desc = desc('vim [o]ptions') },
|
--lhs'p'
|
||||||
--'<leader>fp'
|
{ lhs'q', pickers.quickfix ' Quickfix' , desc = desc('[q]uickfix') },
|
||||||
{ '<leader>fq', pickers.quickfix ' Quickfix' , desc = desc('[q]uickfix') },
|
{ lhs'r', pickers.lsp_references ' References' , desc = desc('[r]eferences') },
|
||||||
{ '<leader>fr', pickers.lsp_references ' References' , desc = desc('[r]eferences') },
|
{ lhs'R', pickers.registers ' Registers' , desc = desc('[R]registers') },
|
||||||
{ '<leader>fR', pickers.registers ' Registers' , desc = desc('[R]registers') },
|
{ lhs's', pickers.lsp_document_symbols ' Document Symbols ' , desc = desc('LSP document [s]ymbols') },
|
||||||
{ '<leader>fs', pickers.lsp_document_symbols ' Document Symbols ' , desc = desc('lsp document [s]ymbols') },
|
{ lhs'S', pickers.lsp_workspace_symbols ' Workspace Symbols ' , desc = desc('LSP workspace [S]ymbols') },
|
||||||
{ '<leader>fS', pickers.lsp_workspace_symbols ' Workspace Symbols ' , desc = desc('lsp workspace [S]ymbols') },
|
--lhs't' used in todo_comments
|
||||||
--'<leader>ft' used in todo_comments
|
{ lhs'T', pickers.treesitter ' Treesitter symbols' , desc = desc('[T]reesitter Symbols') },
|
||||||
{ '<leader>fT', pickers.treesitter ' Treesitter symbols' , desc = desc('[T]reesitter Symbols') },
|
--lhs'u'
|
||||||
--'<leader>fu'
|
--lhs'v'
|
||||||
--'<leader>fv'
|
{ lhs'w', pickers.selection ' Grep' , desc = desc('[w]word under cursor') },
|
||||||
{ '<leader>fw', pickers.selection ' Grep' , desc = desc('[w]word under cursor') },
|
{ lhs'w', pickers.selection ' Grep', mode = 'v' , desc = desc('[w]ord(s) selected') },
|
||||||
{ '<leader>fw', pickers.selection ' Grep', mode = 'v' , desc = desc('[w]ord(s) selected') },
|
--lhs'x'
|
||||||
--'<leader>fx'
|
--lhs'y'
|
||||||
--'<leader>fy'
|
{ lhs'z', pickers.spell_suggest ' Spelling suggestions' , desc = desc('[z] spell suggestions') },
|
||||||
{ '<leader>fz', pickers.spell_suggest ' Spelling suggestions' , desc = desc('[z] spell suggestions') },
|
{ lhs'.', pickers.dotfiles ' Dotfiles' , desc = desc('[.]dotfiles') },
|
||||||
{ '<leader>f.', pickers.dotfiles ' Dotfiles' , desc = desc('[.]dotfiles') },
|
{ lhs':', pickers.command_history ' Command history' , desc = desc('[:]command history') },
|
||||||
{ '<leader>f:', pickers.command_history ' Command history' , desc = desc('[:]command history') },
|
{ lhs'/', pickers.search_history ' Search history' , desc = desc('[/]search history') },
|
||||||
{ '<leader>f/', pickers.search_history ' Search history' , desc = desc('[/]search history') },
|
{ lhs'<leader>', pickers.resume ' Resume' , desc = desc('Resume ') },
|
||||||
{ '<leader>f<leader>', pickers.resume ' Resume' , desc = desc('Resume ') },
|
|
||||||
}
|
}
|
||||||
|
|
||||||
M.opts = function(--[[plugin]]_, opts)
|
M.opts = function(--[[plugin]]_, opts)
|
||||||
local actions = require('telescope.actions')
|
local actions = require('telescope.actions')
|
||||||
local layout = require('telescope.actions.layout')
|
local layout = require('telescope.actions.layout')
|
||||||
local icons = require('fschauen.util.icons')
|
|
||||||
local trouble = vim.F.npcall(require, 'trouble.providers.telescope') or {}
|
local trouble = vim.F.npcall(require, 'trouble.providers.telescope') or {}
|
||||||
|
|
||||||
local mappings = {
|
local mappings = {
|
||||||
|
@ -129,7 +130,7 @@ M.opts = function(--[[plugin]]_, opts)
|
||||||
defaults = {
|
defaults = {
|
||||||
mappings = { i = mappings, n = mappings },
|
mappings = { i = mappings, n = mappings },
|
||||||
|
|
||||||
prompt_prefix = ' ',
|
prompt_prefix = ' ' .. icons.ui.Telescope .. ' ',
|
||||||
selection_caret = icons.ui.Play .. ' ',
|
selection_caret = icons.ui.Play .. ' ',
|
||||||
|
|
||||||
multi_icon = icons.ui.Checkbox .. ' ',
|
multi_icon = icons.ui.Checkbox .. ' ',
|
||||||
|
@ -166,13 +167,12 @@ M.opts = function(--[[plugin]]_, opts)
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
M.config = function( --[[plugin]] _, opts)
|
||||||
M.config = function(--[[plugin]]_, opts)
|
|
||||||
require('telescope').setup(opts)
|
require('telescope').setup(opts)
|
||||||
require('telescope').load_extension('fzf')
|
require('telescope').load_extension('fzf')
|
||||||
vim.api.nvim_create_autocmd('User', {
|
vim.api.nvim_create_autocmd('User', {
|
||||||
desc = 'Enable line number in Telescope previewers.',
|
desc = 'Enable line number in Telescope previewers.',
|
||||||
group = vim.api.nvim_create_augroup('fschauen.telescope', { clear = true } ),
|
group = vim.api.nvim_create_augroup('fschauen.telescope', { clear = true }),
|
||||||
pattern = 'TelescopePreviewerLoaded',
|
pattern = 'TelescopePreviewerLoaded',
|
||||||
command = 'setlocal number'
|
command = 'setlocal number'
|
||||||
})
|
})
|
||||||
|
|
|
@ -7,8 +7,11 @@ M.dependencies = {
|
||||||
|
|
||||||
M.event = { 'BufReadPost', 'BufNewFile' }
|
M.event = { 'BufReadPost', 'BufNewFile' }
|
||||||
|
|
||||||
|
local ts = require('fschauen.plugins.telescope')
|
||||||
|
local lhs, desc = ts.keymap.lhs, ts.keymap.description
|
||||||
|
|
||||||
M.keys = {
|
M.keys = {
|
||||||
{ '<leader>ft', '<cmd>TodoTelescope<cr>', desc = ' Telescope [t]odos' },
|
{ lhs('t'), '<cmd>TodoTelescope<cr>', desc = desc('[t]odos') },
|
||||||
}
|
}
|
||||||
|
|
||||||
M.opts = function(--[[plugin]]_, opts)
|
M.opts = function(--[[plugin]]_, opts)
|
||||||
|
|
|
@ -125,6 +125,7 @@ M.ui = {
|
||||||
ReadOnly = '', -- 'RO',
|
ReadOnly = '', -- 'RO',
|
||||||
Search = '', --
|
Search = '', --
|
||||||
Sleep = '',
|
Sleep = '',
|
||||||
|
Telescope = '',
|
||||||
TestTube = '', --
|
TestTube = '', --
|
||||||
Toggle = '',
|
Toggle = '',
|
||||||
Warning = '',
|
Warning = '',
|
||||||
|
|
Loading…
Add table
Reference in a new issue