nvim-snappy/lua/plugins/search/fzf-lua.lua

146 lines
2.6 KiB
Lua
Raw Normal View History

2025-02-12 11:49:02 +01:00
-- fzf-lua.nvim
--- Configurable fuzzy finder w/UI.
--- See <https://github.com/ibhagwan/fzf-lua> for commands.
-- REQ[sys]: fd-find
-- REQ[sys]: ripgrep
-- REQ[sys]: bat
-- REQ[sys]: git-delta
return {
'ibhagwan/fzf-lua',
commit = 'e3fefd97875827e47dc4bbf1074ee464b2d8e6a8',
lazy = true,
cmd = {
"Telescope",
},
keys = {
-- Accessibility
{
'<leader>s?',
function() require('fzf-lua').builtin() end,
'n',
desc = '[S]earch Search-Commands',
},
{
'<leader>sh',
function() require('fzf-lua').helptags() end,
'n',
desc = '[S]earch [H]elp Tags',
},
{
'<leader>sk',
function() require('fzf-lua').keymaps() end,
'n',
desc = '[S]earch [K]eymaps',
},
{
'<leader>sc',
function() require('fzf-lua').commands() end,
'n',
desc = '[S]earch [C]ommands',
},
{
'<leader>sm',
function() require('fzf-lua').manpages() end,
'n',
desc = '[S]earch [M]anpages',
},
-- Grep
{
'<leader>sg',
function() require('fzf-lua').live_grep() end,
'n',
desc = '[S]earch w/[G]rep',
},
-- Buffer / File Search
{
'<leader>sb',
function() require('fzf-lua').buffers() end,
'n',
desc = '[S]earch [B]uffers',
},
{
'<leader>sf',
function() require('fzf-lua').files() end,
'n',
desc = '[S]earch [F]iles',
},
-- Git: "VCS" -> "v"
{
'<leader>sgc',
function() require('fzf-lua').git_commits() end,
'n',
desc = '[S]earch Git [C]ommits',
},
{
'<leader>sgs',
function() require('fzf-lua').git_status() end,
'n',
desc = '[S]earch Git [S]tatus',
},
-- Debug
{
"<leader>sd",
function() require('fzf-lua').diagnostics_document() end,
'n',
desc = '[S]earch [D]iagnostics',
},
-- Vim
{
"<leader>s'",
function() require('fzf-lua').registers() end,
'n',
desc = '[S]earch Vim Registers',
},
},
opts = {
fzf_bin = 'sk',
keymap = {
builtin = {
["<c-b>"] = "preview-page-up",
["<c-f>"] = "preview-page-down",
},
fzf = {
["ctrl-u"] = "half-page-up",
["ctrl-d"] = "half-page-down",
["ctrl-b"] = "preview-page-up",
["ctrl-f"] = "preview-page-down",
},
},
previewers = {
builtin = {
extensions = {
["png"] = { "chafa", "{file}" },
["jpg"] = { "chafa", "{file}" },
["jpeg"] = { "chafa", "{file}" },
["gif"] = { "chafa", "{file}" },
["svg"] = { "chafa", "{file}" },
["webp"] = { "chafa", "{file}" },
},
},
},
winopts = {
width = 0.8,
height = 0.8,
row = 0.5,
col = 0.5,
preview = {
scrollchars = { "", "" },
},
},
fzf_colors = true,
fzf_opts = {
["--no-scrollbar"] = true,
},
},
}