X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=setup%2Fmagit.el;h=8ae6b76d99ec8db12d79c6006d852b7f7016ef2f;hb=4212d6282f64bc9205daced456275854451c33c4;hp=a8861551b41a782e32f68596a1befd44056e8d98;hpb=f1183b58805d1af12e5b46ef1697a8f0d65ec778;p=emacs-init.git diff --git a/setup/magit.el b/setup/magit.el index a886155..8ae6b76 100644 --- a/setup/magit.el +++ b/setup/magit.el @@ -178,5 +178,33 @@ (magit-define-popup-action 'magit-diff-popup ?m "Diff merge-base master" 'magit-diff-master-mergebase) +(magit-define-popup-switch 'magit-log-popup + ?f "first parent" "--first-parent") + +(require 'ffap) + +(defun g0dil-magit-old-version-jump-to-current () + (interactive) + (let ((current-file (ffap-file-exists-string + (file-name-nondirectory + (replace-regexp-in-string "\\.~.*$" "" (buffer-name)))))) + (if current-file + (g0dil-goto-equivalent-position current-file) + (error "current version of file not found")))) + +(define-key magit-blob-mode-map "c" 'g0dil-magit-old-version-jump-to-current) + +(defun g0dil-magit-diff-jump-to-current () + (interactive) + (let ((section-file-name (loop for ident in (magit-section-ident (magit-current-section)) + if (and (consp ident) (eq (car ident) 'file)) + return (cdr ident) + finally return nil))) + (if (ffap-file-exists-string section-file-name) + (g0dil-goto-equivalent-position section-file-name) + (error "current version of file not found")))) + +(define-key magit-revision-mode-map (kbd "C-c RET") 'g0dil-magit-diff-jump-to-current) + ; ignore whitespace ; (setq magit-diff-options '("-w"))