fuzzy.lua
Branches > main > b305db9 > files / nvim / lua / fuzzy.lua
local api = vim.api
local fn = vim.fn
local ui = require("utils.ui")
local function fzf_window(win)
local tmp = fn.tempname()
local cmd = 'fzf --pointer=">" --gutter=" " --prompt="" --no-info --no-scrollbar' .. ">" .. fn.shellescape(tmp)
fn.termopen({"sh", "-c", cmd}, {
on_exit = function()
pcall(api.nvim_win_close, win, true)
if fn.filereadable(tmp) == 1 then
local sel = fn.readfile(tmp)[1]
os.remove(tmp)
if sel and #sel > 0 then
vim.cmd("edit " .. fn.fnameescape(sel))
end
end
end})
vim.cmd("startinsert")
end
local function fuzzy_find()
if fn.executable("fzf") ~= 1 then
print("You don't have fzf, can't fuzzy find!")
else
local win = ui.open_fullscreen_window()
local ok = pcall(fzf_window, win)
if not ok then
pcall(api.nvim_win_close, win, true)
end
end
end
return {fuzzy_find = fuzzy_find}