Refactor DOOM scratch buffer

This commit is contained in:
Henrik Lissner 2016-10-05 12:48:12 +02:00
parent 0903dfa0c8
commit e7d0e9f9ec
5 changed files with 95 additions and 88 deletions

View file

@ -1,5 +1,6 @@
;;; defuns-buffers.el
(defvar doom-buffer)
(defvar-local doom--narrowed-origin nil)
;;;###autoload (autoload 'doom:narrow "defuns-buffers" nil t)
@ -121,24 +122,23 @@ NOTE: only buries scratch buffer.
See `doom/real-buffer-p' for what 'real' means."
(interactive (list t))
(cond ((eq (current-buffer) doom-buffer)
(doom-mode-init t))
(t
(let* ((old-project (doom/project-root))
(buffer (current-buffer))
(only-buffer-window-p (= (length (get-buffer-window-list buffer nil t)) 1)))
(when (and only-buffer-window-p buffer-file-name (buffer-modified-p))
(if (yes-or-no-p "Buffer is unsaved, save it?")
(save-buffer)
(set-buffer-modified-p nil)))
(when arg
(doom/previous-real-buffer)
(when (eq buffer (current-buffer))
(switch-to-buffer doom-buffer t t)
(when (featurep 'core-scratch)
(doom|update-scratch-buffer old-project)))
(when only-buffer-window-p
(kill-buffer buffer))))))
(let* ((scratch-p (eq (current-buffer) doom-buffer))
(old-project (doom/project-root))
(buffer (current-buffer))
(only-buffer-window-p (= (length (get-buffer-window-list buffer nil t)) 1)))
(unless scratch-p
(when (and only-buffer-window-p buffer-file-name (buffer-modified-p))
(if (yes-or-no-p "Buffer is unsaved, save it?")
(save-buffer)
(set-buffer-modified-p nil)))
(when arg
(doom/previous-real-buffer)
(when (eq buffer (current-buffer))
(switch-to-buffer doom-buffer t t))
(when only-buffer-window-p
(kill-buffer buffer))))
(when (eq (current-buffer) doom-buffer)
(doom-reload-scratch-buffer old-project)))
t)
;;;###autoload
@ -210,7 +210,7 @@ nothing left, create a scratch buffer."
(cl-incf i))
(current-buffer))))
(when (eq destbuf doom-buffer)
(doom|update-scratch-buffer)
(doom-reload-scratch-buffer)
(message "Nowhere to go"))
(switch-to-buffer destbuf)))