vim: telescope refactor

This commit is contained in:
Fernando Schauenburg 2024-02-18 23:41:06 +01:00
parent c924601769
commit 98c8837469
6 changed files with 77 additions and 64 deletions

View file

@ -7,8 +7,11 @@ M.dependencies = {
'nvim-telescope/telescope.nvim',
}
local ts = require('fschauen.plugins.telescope')
local lhs, desc = ts.keymap.lhs, ts.keymap.description
M.keys = {
{ '<leader>fi', '<cmd>Nerdy<cr>', desc = ' Telescope Nerd [i]cons' },
{ lhs('i'), '<cmd>Nerdy<cr>', desc = desc('Nerd [i]cons') },
}
return M

View file

@ -13,9 +13,12 @@ local telescope_notify = function()
notify.notify(theme)
end
local ts = require('fschauen.plugins.telescope')
local lhs, desc = ts.keymap.lhs, ts.keymap.description
M.keys = {
{ '<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

View file

@ -2,8 +2,11 @@ local M = { 'nvim-telescope/telescope-file-browser.nvim' }
M.dependencies = { 'nvim-telescope/telescope.nvim' }
local ts = require('fschauen.plugins.telescope')
local lhs, desc = ts.keymap.lhs, ts.keymap.description
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]]_)

View file

@ -9,30 +9,31 @@ M.dependencies = {
M.cmd = 'Telescope'
local builtin = function(picker, opts)
local builtin_picker = function(name, opts)
return function(title)
return function()
local args = vim.tbl_extend('keep', { prompt_title = title }, opts or {})
return require('telescope.builtin')[picker](args)
local picker = require('telescope.builtin')[name]
picker(vim.tbl_extend('force', opts or {}, { prompt_title = title }))
end
end
end
local util = require('fschauen.util')
local icons = require('fschauen.util.icons')
local pickers = setmetatable({
all_files = builtin('find_files', {
all_files = builtin_picker('find_files', {
hidden = true,
no_ignore = true,
no_ignore_parent = true,
}),
colorscheme = builtin('colorscheme', {
colorscheme = builtin_picker('colorscheme', {
enable_preview = true,
}),
diagnostics = builtin('diagnostics', {
diagnostics = builtin_picker('diagnostics', {
bufnr = 0
}),
dotfiles = builtin('find_files', {
dotfiles = builtin_picker('find_files', {
cwd = '~/.dotfiles',
hidden = true,
}),
@ -45,68 +46,68 @@ local pickers = setmetatable({
}
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
-- above, but make sure to keep the title we defined.
__index = function(_, picker)
return builtin(picker)
__index = function( --[[tbl]] _, key)
return builtin_picker(key)
end
})
local desc = function(text)
return ' Telescope ' .. text
end
M.keymap = {
lhs = function(keys) return '<leader>f' .. keys end,
description = function(text) return icons.ui.Telescope .. ' Telescope ' .. text end
}
local lhs, desc = M.keymap.lhs, M.keymap.description
M.keys = {
{ '<leader>fa', pickers.autocommands ' Autocommands' , desc = desc('[a]utocommands') },
{ '<leader>fb', pickers.buffers ' Buffers' , desc = desc('[b]uffers') },
--'<leader>fB' used in telescope-file-browser
{ '<leader>fc', pickers.colorscheme ' Colorschemes' , desc = desc('[c]olorschemes') },
{ '<leader>fC', pickers.commands ' Commands' , desc = desc('[C]ommands') },
{ '<leader>fdd', pickers.diagnostics '󰀪 Document Diagnostics' , desc = desc('[d]iagnostics [d]ocument') },
{ '<leader>fdw', pickers.diagnostics '󰀪 Workspace Diagnostics', desc = desc('[d]iagnostics [w]orkspace') },
--'<leader>fe'
{ '<leader>ff', pickers.find_files ' Files' , desc = desc('[f]ind files') },
{ '<leader>fF', pickers.all_files ' ALL files' , desc = desc('all [F]iles') },
{ '<leader>fgr', pickers.live_grep ' Live grep' , desc = desc('Live [gr]ep') },
{ '<leader>fgf', pickers.git_files ' Git files' , desc = desc('[g]it [f]iles') },
{ '<leader>fgc', pickers.git_commits ' Commits' , desc = desc('[g]it [c]ommits') },
{ '<leader>fh', pickers.here ' Current buffer' , desc = desc('[b]uffer [h]ere') },
{ '<leader>fH', pickers.highlights '󰌶 Highlights' , desc = desc('[H]ighlights') },
--'<leader>fi' used in nerdy
{ '<leader>fj', pickers.jumplist ' Jumplist' , desc = desc('[j]umplist') },
{ '<leader>fk', pickers.keymaps ' Keymaps' , desc = desc('[k]eymaps') },
{ '<leader>fK', pickers.help_tags ' Help tags' , desc = desc('[K] help/documentation') },
{ '<leader>fl', pickers.loclist ' Location list' , desc = desc('[l]ocation List') },
{ '<leader>fm', pickers.man_pages ' Man pages' , desc = desc('[m]an pages') },
--'<leader>fn' used in vim-notify
{ '<leader>fo', pickers.vim_options ' Vim options' , desc = desc('vim [o]ptions') },
--'<leader>fp'
{ '<leader>fq', pickers.quickfix ' Quickfix' , desc = desc('[q]uickfix') },
{ '<leader>fr', pickers.lsp_references ' References' , desc = desc('[r]eferences') },
{ '<leader>fR', pickers.registers '󱓥 Registers' , desc = desc('[R]registers') },
{ '<leader>fs', pickers.lsp_document_symbols '󰫧 Document Symbols ' , desc = desc('lsp document [s]ymbols') },
{ '<leader>fS', pickers.lsp_workspace_symbols '󱄑 Workspace Symbols ' , desc = desc('lsp workspace [S]ymbols') },
--'<leader>ft' used in todo_comments
{ '<leader>fT', pickers.treesitter ' Treesitter symbols' , desc = desc('[T]reesitter Symbols') },
--'<leader>fu'
--'<leader>fv'
{ '<leader>fw', pickers.selection ' Grep' , desc = desc('[w]word under cursor') },
{ '<leader>fw', pickers.selection ' Grep', mode = 'v' , desc = desc('[w]ord(s) selected') },
--'<leader>fx'
--'<leader>fy'
{ '<leader>fz', pickers.spell_suggest '󰓆 Spelling suggestions' , desc = desc('[z] spell suggestions') },
{ '<leader>f.', pickers.dotfiles ' Dotfiles' , desc = desc('[.]dotfiles') },
{ '<leader>f:', pickers.command_history ' Command history' , desc = desc('[:]command history') },
{ '<leader>f/', pickers.search_history ' Search history' , desc = desc('[/]search history') },
{ '<leader>f<leader>', pickers.resume '󰐎 Resume' , desc = desc('Resume ') },
{ lhs'a', pickers.autocommands ' Autocommands' , desc = desc('[a]utocommands') },
{ lhs'b', pickers.buffers ' Buffers' , desc = desc('[b]uffers') },
--lhs'B' used in telescope-file-browser
{ lhs'c', pickers.colorscheme ' Colorschemes' , desc = desc('[c]olorschemes') },
{ lhs'C', pickers.commands ' Commands' , desc = desc('[C]ommands') },
{ lhs'd', pickers.diagnostics '󰀪 Diagnostics' , desc = desc('[d]iagnostics') },
--lhs'e'
{ lhs'f', pickers.find_files ' Files' , desc = desc('[f]ind files') },
{ lhs'F', pickers.all_files ' ALL files' , desc = desc('all [F]iles') },
{ lhs'gr', pickers.live_grep ' Live grep' , desc = desc('Live [gr]ep') },
{ lhs'gf', pickers.git_files ' Git files' , desc = desc('[g]it [f]iles') },
{ lhs'gc', pickers.git_commits ' Commits' , desc = desc('[g]it [c]ommits') },
{ lhs'h', pickers.here ' Current buffer' , desc = desc('[b]uffer [h]ere') },
{ lhs'H', pickers.highlights '󰌶 Highlights' , desc = desc('[H]ighlights') },
--lhs'i' used in nerdy
{ lhs'j', pickers.jumplist ' Jumplist' , desc = desc('[j]umplist') },
{ lhs'k', pickers.keymaps ' Keymaps' , desc = desc('[k]eymaps') },
{ lhs'K', pickers.help_tags ' Help tags' , desc = desc('[K] help/documentation') },
{ lhs'l', pickers.loclist ' Location list' , desc = desc('[l]ocation List') },
{ lhs'm', pickers.man_pages ' Man pages' , desc = desc('[m]an pages') },
--lhs'n' used in vim-notify
{ lhs'o', pickers.vim_options ' Vim options' , desc = desc('[o]ptions') },
--lhs'p'
{ lhs'q', pickers.quickfix ' Quickfix' , desc = desc('[q]uickfix') },
{ lhs'r', pickers.lsp_references ' References' , desc = desc('[r]eferences') },
{ lhs'R', pickers.registers '󱓥 Registers' , desc = desc('[R]registers') },
{ lhs's', 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') },
--lhs't' used in todo_comments
{ lhs'T', pickers.treesitter ' Treesitter symbols' , desc = desc('[T]reesitter Symbols') },
--lhs'u'
--lhs'v'
{ lhs'w', pickers.selection ' Grep' , desc = desc('[w]word under cursor') },
{ lhs'w', pickers.selection ' Grep', mode = 'v' , desc = desc('[w]ord(s) selected') },
--lhs'x'
--lhs'y'
{ lhs'z', pickers.spell_suggest '󰓆 Spelling suggestions' , desc = desc('[z] spell suggestions') },
{ lhs'.', pickers.dotfiles ' Dotfiles' , desc = desc('[.]dotfiles') },
{ lhs':', pickers.command_history ' Command history' , desc = desc('[:]command history') },
{ lhs'/', pickers.search_history ' Search history' , desc = desc('[/]search history') },
{ lhs'<leader>', pickers.resume '󰐎 Resume' , desc = desc('Resume ') },
}
M.opts = function(--[[plugin]]_, opts)
local actions = require('telescope.actions')
local layout = require('telescope.actions.layout')
local icons = require('fschauen.util.icons')
local trouble = vim.F.npcall(require, 'trouble.providers.telescope') or {}
local mappings = {
@ -129,7 +130,7 @@ M.opts = function(--[[plugin]]_, opts)
defaults = {
mappings = { i = mappings, n = mappings },
prompt_prefix = ' ',
prompt_prefix = ' ' .. icons.ui.Telescope .. ' ',
selection_caret = icons.ui.Play .. ' ',
multi_icon = icons.ui.Checkbox .. ' ',
@ -166,13 +167,12 @@ M.opts = function(--[[plugin]]_, opts)
})
end
M.config = function(--[[plugin]]_, opts)
M.config = function( --[[plugin]] _, opts)
require('telescope').setup(opts)
require('telescope').load_extension('fzf')
vim.api.nvim_create_autocmd('User', {
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',
command = 'setlocal number'
})

View file

@ -7,8 +7,11 @@ M.dependencies = {
M.event = { 'BufReadPost', 'BufNewFile' }
local ts = require('fschauen.plugins.telescope')
local lhs, desc = ts.keymap.lhs, ts.keymap.description
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)

View file

@ -125,6 +125,7 @@ M.ui = {
ReadOnly = '', -- 'RO',
Search = '', -- 
Sleep = '󰒲',
Telescope = '',
TestTube = '󰙨', -- 󰤑
Toggle = '󰨚',
Warning = '',