diff --git a/modules/lang/org/autoload/org.el b/modules/lang/org/autoload/org.el index 423c3f404..d5676668b 100644 --- a/modules/lang/org/autoload/org.el +++ b/modules/lang/org/autoload/org.el @@ -345,3 +345,6 @@ with `org-cycle')." ((org-in-src-block-p) (org-babel-remove-result) t))))) + +;;;###autoload +(defalias #'+org/toggle-fold #'+org|toggle-only-current-fold) diff --git a/modules/tools/magit/autoload.el b/modules/tools/magit/autoload.el index 8a9ea405f..a3fc5edf7 100644 --- a/modules/tools/magit/autoload.el +++ b/modules/tools/magit/autoload.el @@ -2,9 +2,21 @@ ;;;###autoload (defun +magit/quit (&optional _kill-buffer) - "TODO" + "Clean up magit buffers after quitting `magit-status'." (interactive) - (magit-restore-window-configuration) - (cl-loop for buf in (doom-buffers-in-mode 'magit-mode (buffer-list) t) - unless (eq (buffer-local-value 'major-mode buf) 'magit-process-mode) - do (kill-buffer buf))) + (let ((buffers (magit-mode-get-buffers))) + (magit-restore-window-configuration) + (mapc #'+magit--kill-buffer buffers))) + +(defun +magit--kill-buffer (buf) + "TODO" + (when (and (bufferp buf) (buffer-live-p buf)) + (let ((process (get-buffer-process buf))) + (if (not (processp process)) + (kill-buffer buf) + (with-current-buffer buf + (if (process-live-p process) + (run-with-timer 5 nil #'+magit--kill buf) + (kill-process process) + (kill-buffer buf))))))) + diff --git a/modules/tools/magit/config.el b/modules/tools/magit/config.el index f020ee602..99b2c5025 100644 --- a/modules/tools/magit/config.el +++ b/modules/tools/magit/config.el @@ -11,11 +11,11 @@ #'magit-builtin-completing-read) magit-revision-show-gravatars '("^Author: " . "^Commit: ")) - (add-hook 'magit-popup-mode-hook #'hide-mode-line-mode) (set! :popup "^\\(?:\\*magit\\|magit:\\)" :ignore) + ;; no mode-line in magit popups + (add-hook 'magit-popup-mode-hook #'hide-mode-line-mode) ;; Clean up after magit by properly killing buffers - (setq magit-bury-buffer-function #'+magit/quit) - (map! :map magit-mode-map [remap quit-window] #'+magit/quit)) + (map! :map magit-status-mode-map [remap magit-mode-bury-buffer] #'+magit/quit)) (def-package! magit-blame