doom/popup-restore: return t on success (and clear history less aggressively)

This commit is contained in:
Henrik Lissner 2017-03-01 22:14:21 -05:00
parent 8fa6ba7886
commit 4221bea044

View file

@ -39,21 +39,26 @@ possible rules."
;;;###autoload ;;;###autoload
(defun doom/popup-restore () (defun doom/popup-restore ()
"Restore the last popups. If the buffers have been killed, and represented "Restore the last open popups. If the buffers have been killed, and
real files, they will be restored. Special buffers or buffers with non-nil represented real files, they will be restored. Special buffers or buffers with
:autokill properties will not be." non-nil :autokill properties will not be.
Returns t if popups were restored, nil otherwise."
(interactive) (interactive)
(unless doom-popup-history (unless doom-popup-history
(error "No popups to restore")) (error "No popups to restore"))
(dolist (spec doom-popup-history) (let (any-p)
(let ((buffer (get-buffer (car spec))) (dolist (spec doom-popup-history)
(path (plist-get (cdr spec) :file)) (let ((buffer (get-buffer (car spec)))
(rules (plist-get (cdr spec) :rules))) (path (plist-get (cdr spec) :file))
(when (and (not buffer) path) (rules (plist-get (cdr spec) :rules)))
(setq buffer (find-file-noselect path t))) (when (and (not buffer) path)
(when buffer (setq buffer (find-file-noselect path t)))
(apply 'doom-popup-buffer buffer rules)))) (when (and buffer (apply 'doom-popup-buffer buffer rules) (not any-p))
(setq doom-popup-history '())) (setq any-p t))))
(when any-p
(setq doom-popup-history '()))
any-p))
;;;###autoload ;;;###autoload
(defun doom/popup-toggle () (defun doom/popup-toggle ()