diff --git a/core/core-popup.el b/core/core-popup.el index 61913fcd3..f4bfc5a89 100644 --- a/core/core-popup.el +++ b/core/core-popup.el @@ -26,10 +26,13 @@ ("*esup*" :align below :size 30 :noselect t) ("*ert*" :align below :size 20 :noselect t) ;; vcs - ("^\\*git-gutter.+\\*$" :align below :size 0.4 :noselect t :regexp t) - ("*vc-diff*" :align below :size 0.4 :noselect t) - ("*vc-change-log*" :align below :select t) + ("*git-messenger*" :align left :size 55 :select t) + ("^\\*git-gutter.+\\*$" :align below :size 15 :noselect t :regexp t) + ("*vc-diff*" :align below :size 15 :noselect t) + ("*vc-change-log*" :align below :size 15 :select t) (vc-annotate-mode :same t) + ((:custom (lambda (b &rest _) (derived-mode-p 'magit-mode))) + :align below :size 0.5) ;; Util ("*Apropos*" :align below :size 0.3) ("*minor-modes*" :align below :size 0.5 :noselect t) @@ -94,6 +97,21 @@ ;; Hacks ;; +(defun doom-load-magit-hacks () + ;; Some wrassling must be done to get magit to kill itself, and trigger my + ;; shackle popup hooks. + (setq magit-bury-buffer-function + (lambda (&rest _) (doom/popup-close (selected-window))) + magit-display-buffer-function + (lambda (b) + (funcall (if (doom/popup-p (selected-window)) 'switch-to-buffer 'doom/popup-buffer) b) + (get-buffer-window b)) + magit-display-file-buffer-function + (lambda (b) + (when doom-prev-buffer + (select-window (get-buffer-window doom-prev-buffer))) + (switch-to-buffer b)))) + (after! help-mode ;; So that help buffer links do not open in the help popup, we need to redefine these ;; three button types to use `switch-to-buffer' rather than `pop-to-buffer'. diff --git a/core/core-vcs.el b/core/core-vcs.el index cadae0e2b..67bb2fb4e 100644 --- a/core/core-vcs.el +++ b/core/core-vcs.el @@ -37,6 +37,24 @@ (defalias 'doom/vcs-stage-hunk 'git-gutter:stage-hunk) (defalias 'doom/vcs-revert-hunk 'git-gutter:revert-hunk)) +(use-package git-messenger + :commands git-messenger:popup-message + :init (defvar git-messenger-map (make-sparse-keymap)) + :config + (setq git-messenger:show-detail t) + (map! :map git-messenger-map + "" 'git-messenger:popup-close + "q" 'git-messenger:popup-close)) + +(use-package magit + :commands (magit-status) + :config + (doom-load-magit-hacks) + (add-hook 'magit-mode-hook 'turn-off-evil-snipe-override-mode)) +(use-package evil-magit + :after magit + :config (evil-set-initial-state 'magit-popup-mode 'normal)) + (after! vc-annotate (evil-set-initial-state 'vc-annotate-mode 'normal) (evil-set-initial-state 'vc-git-log-view-mode 'normal) @@ -51,7 +69,7 @@ :n "RET" 'vc-annotate-find-revision-at-line)) (use-package browse-at-remote - :commands (browse-at-remote/browse browse-at-remote/to-clipboard)) + :commands (browse-at-remote/browse browse-at-remote/get-url)) (provide 'core-vcs) ;;; core-vcs.el ends here