feat: add diff.yazi plugin

This commit is contained in:
sxyazi
2024-06-27 20:39:39 +08:00
parent c270ac2d47
commit c2ab2803e1
4 changed files with 81 additions and 5 deletions

37
diff.yazi/init.lua Normal file
View File

@@ -0,0 +1,37 @@
local function info(content)
return ya.notify {
title = "Diff",
content = content,
timeout = 5,
}
end
local selected_url = ya.sync(function()
for _, u in pairs(cx.active.selected) do
return u
end
end)
local hovered_url = ya.sync(function()
local h = cx.active.current.hovered
return h and h.url
end)
return {
entry = function()
local a, b = selected_url(), hovered_url()
if not a then
return info("No file selected")
elseif not b then
return info("No file hovered")
end
local output, err = Command("diff"):arg("-Naur"):arg(tostring(a)):arg(tostring(b)):output()
if not output then
return info("Failed to run diff, error: " .. err)
end
ya.clipboard(output.stdout)
info("Diff copied to clipboard")
end,
}