From 2ad73e974d2b4f0d6d34131fe77c167c008a4b3a Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 8 Jun 2016 14:37:28 -0400 Subject: [PATCH] Improve doom-buffer kill-buffer-query-functions; update doom-buffer when visible --- core/core-scratch.el | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/core/core-scratch.el b/core/core-scratch.el index 5918d8070..bf9ba47f7 100644 --- a/core/core-scratch.el +++ b/core/core-scratch.el @@ -10,15 +10,22 @@ "The global and persistent scratch buffer for doom.") (defvar doom-buffer-name "*doom*" "The name of the doom scratch buffer.") -(defvar-local doom-buffer-edited nil +(defvar doom-buffer-edited nil "If non-nil, the scratch buffer has been edited.") (define-derived-mode doom-mode fundamental-mode "DOOM" "Major mode for special DOOM buffers.") +;; Update the doom buffer if it's visible during a killing +(add-hook! 'kill-buffer-query-functions + (when (and (get-buffer-window-list doom-buffer nil t) + (not doom-buffer-edited)) + (doom-mode-init t)) + t) + ;; Don't kill the scratch buffer (add-hook! 'kill-buffer-query-functions - (not (string= doom-buffer-name (buffer-name)))) + (not (eq doom-buffer (current-buffer)))) (after! uniquify (push (regexp-quote doom-buffer-name) uniquify-ignore-buffers-re))