--- @diagnostic disable: missing-fields local fzf = require("fzf-lua") local swiper = { previewer = "swiper", winopts = function() local height = math.ceil(vim.o.lines / 3) return { split = ("botright %snew +set\\ nobl"):format(height) } end, } fzf.setup({ { "default-title", "hide" }, fzf_colors = true, lsp = { symbols = { symbol_style = 3 }, document_symbols = swiper, code_actions = { previewer = "codeaction_native" }, }, manpages = { previewer = "man_native" }, helptags = { previewer = "help_native" }, defaults = { git_icons = false, file_icons = false }, tags = { previewer = "bat" }, btags = { previewer = "bat" }, files = { previewer = "bat", fzf_opts = { ["--ansi"] = true }, cwd_header = true, winopts = { toggle_behavior = "default", preview = { hidden = true } }, formatter = "path.dirname_first", }, grep = { fzf_opts = { ["--ansi"] = false }, rg_opts = " --color=never --column --line-number --no-heading --smart-case --max-columns=4096 -e", rg_glob = true, glob_flag = "--iglob", glob_separator = "%s%-%-", }, builtin = { winopts = { width = 1, height = 1 } }, blines = swiper, grep_curbuf = swiper, treesitter = swiper, git = { blame = swiper }, winopts = function() local height = math.ceil(2 * vim.o.lines / 3) return { backdrop = 80, row = 1, col = 0, width = 1, height = height > 3 and height or 1, border = { "", " ", "", "", "", "", "", "" }, toggle_behavior = "extend", --- @diagnostic disable-next-line: missing-fields preview = { default = { "bat" }, treesitter = false, layout = "vertical", vertical = "up:60%", border = { "", " ", "", "", "", "", "", "" }, }, on_create = function() vim.keymap.set( "t", "", [['"'.nr2char(getchar()).'pi']], { expr = true, buffer = true, desc = "insert register value into the FZF prompt", } ) end, } end, keymap = { fzf = { true, ["ctrl-q"] = "select-all+accept", ["alt-p"] = "toggle-preview", }, }, }) _G.old_vim_ui_select = vim.ui.select fzf.register_ui_select()