return { { 'ibhagwan/fzf-lua', dependencies = { 'echasnovski/mini.icons', }, lazy = false, -- because we register ui.select handlers config = function() local fzf = require('fzf-lua') fzf.register_ui_select() fzf.setup({ -- PROFILE { 'default' }, -- OPTIONS winopts = { split = 'belowright 20new', border = 'none', preview = { border = 'none', }, -- on_create = function() end, }, keymap = { fzf = { true, ['ctrl-n'] = 'down', ['ctrl-p'] = 'up', }, }, -- actions = { -- files = { -- ['ctrl-q'] = { fn = fzf.actions.file_sel_to_qf }, -- }, -- }, fzf_colors = true, -- PICKER CONFIG files = { file_icons = true, }, marks = { marks = '[a-zA-Z]', } }) end, keys = { { mode = 'n', ';', 'FzfLua', desc = 'fzf: select' }, { mode = 'n', ';/', 'FzfLua blines', desc = 'fzf: current_buffer_fuzzy_find' }, { mode = 'n', ';b', 'FzfLua buffers', desc = 'fzf: buffers' }, { mode = 'n', ';f', 'FzfLua files', desc = 'fzf: find_files' }, { mode = 'n', ';g', 'FzfLua live_grep', desc = 'fzf: live_grep' }, { mode = 'n', ';d', 'FzfLua diagnostics_workspace', desc = 'fzf: workspace diagnostics' }, { mode = 'n', ';D', 'FzfLua diagnostics_document', desc = 'fzf: document diagnostics' }, { mode = 'n', ';h', 'FzfLua helptags', desc = 'fzf: help' }, { mode = 'n', ';s', 'FzfLua lsp_document_symbols', desc = 'fzf: document symbols' }, { mode = 'n', ';w', 'FzfLua lsp_live_workspace_symbols', desc = 'fzf: workspace symbols' }, { mode = 'n', ';m', 'FzfLua marks', desc = 'fzf: marks' }, { mode = 'n', ';v', function() require('fzf-lua').files({ cwd = vim.fn.stdpath('config') }) end, desc = 'fzf: vim_config', }, -- { -- mode = 'n', -- ';;t', -- 'Telescope', -- desc = 'telescope: select (interactive)', -- }, { mode = 'n', ';;f', function() local dir if vim.opt.filetype:get() == 'oil' then dir = require('oil').get_current_dir() else dir = vim.fn.expand('%:p:h') end -- require('fzf-lua').files({ cwd = dir }) _G.feedkeys(':Fzf files cwd=' .. dir) end, desc = 'fzf: files (interactive)', }, { mode = 'n', ';;g', function() local dir if vim.opt.filetype:get() == 'oil' then dir = require('oil').get_current_dir() else dir = vim.fn.expand('%:p:h') end _G.feedkeys(':Fzf live_grep cwd=' .. dir) end, desc = 'fzf: grep (interactive)', }, }, }, }