Replace custom finder with fzf-lua

This commit is contained in:
2026-05-28 08:07:00 +03:00
parent 5672967635
commit 1aca4d9501
4 changed files with 131 additions and 9 deletions

View File

@@ -1,12 +1,124 @@
require('plugins.filetree')
local finder = require('plugins.finder')
finder.setup({
exclude_patterns = { 'node_modules', 'dist', 'build', '.git', '.cache', '.turbo', '*-lock.json' },
use_disk_cache = true,
follow_symlinks = true,
})
-- local finder = require('plugins.finder')
-- finder.setup({
-- exclude_patterns = { 'node_modules', 'dist', 'build', '.git', '.cache', '.turbo', '*-lock.json' },
-- use_disk_cache = true,
-- follow_symlinks = true,
-- })
vim.keymap.set('n', '<leader>f', finder.files)
vim.keymap.set('n', '<leader>g', finder.grep)
require('fzf-lua').setup({
fzf_colors = {
['fg'] = { 'fg', 'PickerNormal' },
['bg'] = { 'bg', 'PickerNormal' },
['fg+'] = { 'fg', 'PickerSelection' },
['bg+'] = { 'bg', 'PickerSelection' },
['hl'] = { 'fg', 'PickerMatch' },
['hl+'] = { 'fg', 'PickerMatch' },
['info'] = { 'fg', 'PickerMuted' },
['prompt'] = { 'fg', 'PickerPrompt' },
['pointer'] = { 'fg', 'PickerPrompt' },
['marker'] = { 'fg', 'PickerPrompt' },
['spinner'] = { 'fg', 'PickerPrompt' },
['header'] = { 'fg', 'PickerMuted' },
['border'] = { 'fg', 'PickerBorder' },
['separator'] = { 'fg', 'PickerBorder' },
['gutter'] = '-1',
},
hls = {
normal = 'PickerNormal',
border = 'PickerBorder',
title = 'PickerTitle',
title_flags = 'PickerMuted',
preview_normal = 'PickerPreview',
preview_border = 'PickerPreviewBorder',
preview_title = 'PickerTitle',
cursorline = 'PickerSelection',
cursorlinenr = 'PickerMuted',
search = 'PickerMatch',
header_bind = 'PickerMuted',
header_text = 'PickerMuted',
path_colnr = 'PickerMuted',
path_linenr = 'PickerMuted',
},
winopts = {
split = function()
vim.cmd(('botright %dnew +set\\ nobl'):format(math.max(12, math.floor(vim.o.lines * 0.35))))
end,
backdrop = 100,
treesitter = false,
preview = {
default = 'builtin',
delay = 0,
layout = 'flex',
horizontal = 'right:55%',
vertical = 'down:45%',
flip_columns = 120,
},
},
files = {
follow = true,
fd_opts = table.concat({
'--color=never',
'--type f',
'--type l',
'--hidden',
'--follow',
'--exclude .git',
'--exclude .cache',
'--exclude .turbo',
'--exclude node_modules',
'--exclude dist',
'--exclude build',
'--exclude "*-lock.json"',
'--exclude "*-lock.yaml"',
}, ' '),
rg_opts = table.concat({
'--color=never',
'--files',
'--hidden',
'--follow',
'-g "!.git"',
'-g "!.cache"',
'-g "!.turbo"',
'-g "!node_modules"',
'-g "!dist"',
'-g "!build"',
'-g "!*-lock.json"',
'-g "!*-lock.yaml"',
}, ' '),
},
grep = {
rg_opts = table.concat({
'--column',
'--line-number',
'--no-heading',
'--color=always',
'--colors "path:none"',
'--colors "line:none"',
'--colors "column:none"',
'--colors "match:fg:166"',
'--colors "match:style:bold"',
'--smart-case',
'--max-columns=4096',
'--hidden',
'--follow',
'--glob "!.git"',
'--glob "!.cache"',
'--glob "!.turbo"',
'--glob "!node_modules"',
'--glob "!dist"',
'--glob "!build"',
'--glob "!*-lock.json"',
'--glob "!*-lock.yaml"',
'-e',
}, ' '),
},
})
local fzf = require('fzf-lua')
-- vim.keymap.set('n', '<leader>f', finder.files)
-- vim.keymap.set('n', '<leader>g', finder.grep)
-- vim.keymap.set('n', '<leader>fc', finder.clear_cache)
-- vim.keymap.set('n', '<leader>fD', finder.diagnose)
vim.keymap.set('n', '<leader>f', fzf.files)
vim.keymap.set('n', '<leader>g', fzf.live_grep)

View File

@@ -15,6 +15,15 @@ function M.load_theme()
TabLineFill = { bg = c.black },
Pmenu = { fg = c.text, bg = c.surface },
PmenuSel = { fg = c.text, bg = c.accent_light },
PickerNormal = { fg = c.text, bg = c.surface },
PickerSelection = { fg = c.text, bg = c.selection },
PickerMatch = { fg = c.yellow, bg = c.none, bold = true },
PickerMuted = { fg = c.muted },
PickerBorder = { fg = c.outline, bg = c.surface },
PickerPrompt = { fg = c.accent, bg = c.none, bold = true },
PickerPreview = { fg = c.text, bg = c.base },
PickerPreviewBorder = { fg = c.outline, bg = c.base },
PickerTitle = { fg = c.muted, bg = c.surface },
QuickFixLine = { fg = c.accent, bg = c.none, bold = true },
Special = { fg = c.syntax, bg = c.none, bold = false, italic = true },
['@lsp'] = { fg = c.syntax, bg = c.none },

View File

@@ -6,6 +6,7 @@ function M.get()
{ 'https://github.com/mason-org/mason.nvim', opt = true },
{ 'https://github.com/triimd/invero.nvim' },
{ 'https://github.com/ibhagwan/fzf-lua' },
{ 'https://gitea.tomastm.com/tomas.mirchev/nvim-tree.lua', version = 'master' },
{ 'https://github.com/windwp/nvim-ts-autotag' },