diff --git a/init.d/programming/git.el b/init.d/programming/git.el index b62e875..fac8a92 100644 --- a/init.d/programming/git.el +++ b/init.d/programming/git.el @@ -16,9 +16,31 @@ (use-package magit :unless slow-computer - :after (keychain-environment) + :after (keychain-environment eldoc) :custom ((magit-diff-refine-hunk 'all) (magit-process-finish-apply-ansi-colors t)) + :config (progn + ;; https://tsdh.org/posts/2021-06-21-using-eldoc-with-magit.html + (defun my/magit-eldoc-for-commit () + (let ((commit (magit-commit-at-point))) + (when commit + (with-temp-buffer + (magit-git-insert "show" + "--format=format:%an <%ae>, %ai (%ar)%n%b" + (format "--stat=%d" (window-width)) + commit) + (goto-char (point-min)) + (put-text-property (point-min) + (line-end-position) + 'face 'bold) + (buffer-string))))) + (defun my/magit-eldoc-setup () + (add-function :before-until (local 'eldoc-documentation-function) + #'my/magit-eldoc-for-commit) + (eldoc-mode 1)) + + (eldoc-add-command 'magit-next-line) + (eldoc-add-command 'magit-previous-line)) :bind (("C-x g" . nil) ; Disable default. ("C-c g" . magit-status) ("C-c M-g" . magit-dispatch) @@ -31,7 +53,9 @@ ("C-" . magit-section-forward-sibling) ("C-" . magit-section-backward-sibling))) :hook ((after-save . magit-after-save-refresh-status) - (magit-mode . keychain-refresh-environment))) + (magit-mode . keychain-refresh-environment) + (magit-status-mode . my/magit-eldoc-setup) + (magit-log-mode . my/magit-eldoc-setup))) ;; Use libgit rather than git. (use-package magit-libgit