From 6529b9e95d48fe1a85340ef6884bcce2b456ad16 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Thu, 12 Jan 2017 22:33:19 -0500 Subject: magit: Override sticky logs and diffs I've tried, but I can't get used to the sticky arguments. Unless I can see the log/diff buffer in the current frame, just kill it. --- init.el | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'init.el') diff --git a/init.el b/init.el index 46065ba..d659e32 100644 --- a/init.el +++ b/init.el @@ -973,6 +973,24 @@ (magit-change-popup-key 'magit-branch-popup :action ?s ?v) + (defun km/magit-mode-kill-hidden (mode) + (let ((buffer (magit-mode-get-buffer mode))) + (unless (or (not buffer) + (get-buffer-window buffer) + (derived-mode-p mode)) + (kill-buffer buffer)))) + + (advice-add 'magit-log-popup + :before + (lambda (&rest _) + (km/magit-mode-kill-hidden 'magit-log-mode)) + '((name . "magit-log-kill-previous"))) + (advice-add 'magit-diff-popup + :before + (lambda (&rest _) + (km/magit-mode-kill-hidden 'magit-diff-mode)) + '((name . "magit-diff-kill-previous"))) + (advice-add 'magit-git-fetch :around (lambda (fn &rest args) -- cgit v1.2.3