From bdc608acabe856db2134642816cc806b34894863 Mon Sep 17 00:00:00 2001 From: TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> Date: Sat, 13 Sep 2025 20:49:49 +0900 Subject: modified shell/bm-dirs, modified shell/bm-files, created yazi/ --- ar/.config/yazi/plugins/diff.yazi/main.lua | 41 ++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 ar/.config/yazi/plugins/diff.yazi/main.lua (limited to 'ar/.config/yazi/plugins/diff.yazi/main.lua') diff --git a/ar/.config/yazi/plugins/diff.yazi/main.lua b/ar/.config/yazi/plugins/diff.yazi/main.lua new file mode 100644 index 0000000..21dde6d --- /dev/null +++ b/ar/.config/yazi/plugins/diff.yazi/main.lua @@ -0,0 +1,41 @@ +--- @since 25.2.7 + +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) + elseif output.stdout == "" then + return info("No differences found") + end + + ya.clipboard(output.stdout) + info("Diff copied to clipboard") + end, +} -- cgit v1.2.3