summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRavi R Kiran <aine.marina@gmail.com>2014-02-12 05:49:32 (GMT)
committerRavikiran Rajagopal <aine.marina@gmail.com>2014-02-12 05:49:32 (GMT)
commit58e0233e5b00a837dbfe8e9e3824367c732c6549 (patch)
tree21c5ea51488ec1e44fbf0927385b76a587b10e24
parentd3ad2b86be2deef9da2280f2452605fbe639bd11 (diff)
downloaddotemacs-58e0233e5b00a837dbfe8e9e3824367c732c6549.zip
dotemacs-58e0233e5b00a837dbfe8e9e3824367c732c6549.tar.gz
dotemacs-58e0233e5b00a837dbfe8e9e3824367c732c6549.tar.bz2
Tame ediff
-rw-r--r--ravi-init-vc.el32
1 files changed, 32 insertions, 0 deletions
diff --git a/ravi-init-vc.el b/ravi-init-vc.el
index 15335ee..406e05b 100644
--- a/ravi-init-vc.el
+++ b/ravi-init-vc.el
@@ -140,5 +140,37 @@
:bind ("C-x v p" . git-messenger:popup-message)
)
+;; Stolen almost entirely from Fuco (Matus Goljer)
+(use-package ediff
+ :config
+ (progn
+ (defvar my-ediff-before-config nil "Window configuration before ediff.")
+ (defvar my-ediff-after-config nil "Window configuration after ediff.")
+
+ (defun my-ediff-before-setup ()
+ "Function to be called before any buffers or window setup for
+ ediff."
+ (setq my-ediff-before-config (current-window-configuration))
+ (set-register ?b (list my-ediff-before-config (point-marker))))
+
+ (defun my-ediff-after-setup ()
+ "Function to be called after buffers and window setup for ediff."
+ (setq my-ediff-after-config (current-window-configuration))
+ (set-register ?e (list my-ediff-after-config (point-marker))))
+
+ (defun my-ediff-quit ()
+ "Function to be called when ediff quits."
+ (when my-ediff-before-config
+ (set-window-configuration my-ediff-before-config))
+ ;; clean up ediff bullshit
+ (->> (buffer-list)
+ (-map 'buffer-name)
+ (--select (string-match-p "\\*[Ee]diff" it))
+ (-map 'kill-buffer)))
+
+ (add-hook 'ediff-before-setup-hook 'my-ediff-before-setup)
+ (add-hook 'ediff-after-setup-windows-hook 'my-ediff-after-setup 'append)
+ (add-hook 'ediff-quit-hook 'my-ediff-quit)))
+
(provide 'ravi-init-vc)
;;; ravi-init-vc.el ends here