Rewrite doom-real-buffer-p; require first arg

Because of how widely used this function is, I'd rather it be as
explicit as possible to avoid bugs and to make it faster.
This commit is contained in:
Henrik Lissner 2018-06-30 01:55:07 +02:00
parent 70230b0892
commit 537cc9e1ed
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
2 changed files with 6 additions and 3 deletions

View file

@ -93,7 +93,7 @@ If no project is active, return all buffers."
(cl-remove-if-not #'doom-real-buffer-p (or buffer-list (doom-buffer-list)))) (cl-remove-if-not #'doom-real-buffer-p (or buffer-list (doom-buffer-list))))
;;;###autoload ;;;###autoload
(defun doom-real-buffer-p (&optional buffer-or-name) (defun doom-real-buffer-p (buffer-or-name)
"Returns t if BUFFER-OR-NAME is a 'real' buffer. "Returns t if BUFFER-OR-NAME is a 'real' buffer.
A real buffer is a useful buffer; a first class citizen in Doom. Real ones A real buffer is a useful buffer; a first class citizen in Doom. Real ones
@ -110,7 +110,10 @@ The exact criteria for a real buffer is:
non-nil. non-nil.
If BUFFER-OR-NAME is omitted or nil, the current buffer is tested." If BUFFER-OR-NAME is omitted or nil, the current buffer is tested."
(when-let* ((buf (ignore-errors (window-normalize-buffer buffer-or-name)))) (or (bufferp buffer-or-name)
(stringp buffer-or-name)
(signal 'wrong-type-argument (list '(bufferp stringp) buffer-or-name)))
(when-let* ((buf (get-buffer buffer-or-name)))
(and (not (doom-temp-buffer-p buf)) (and (not (doom-temp-buffer-p buf))
(or (buffer-local-value 'doom-real-buffer-p buf) (or (buffer-local-value 'doom-real-buffer-p buf)
(run-hook-with-args-until-success 'doom-real-buffer-functions buf) (run-hook-with-args-until-success 'doom-real-buffer-functions buf)

View file

@ -524,7 +524,7 @@ created."
(if (not (persp-frame-list-without-daemon)) (if (not (persp-frame-list-without-daemon))
(+workspace-switch +workspaces-main t) (+workspace-switch +workspaces-main t)
(+workspace-switch (format "#%s" (+workspace--generate-id)) t) (+workspace-switch (format "#%s" (+workspace--generate-id)) t)
(unless (doom-real-buffer-p) (unless (doom-real-buffer-p (current-buffer))
(switch-to-buffer (doom-fallback-buffer))) (switch-to-buffer (doom-fallback-buffer)))
(set-frame-parameter frame 'workspace (+workspace-current-name)) (set-frame-parameter frame 'workspace (+workspace-current-name))
;; ensure every buffer has a buffer-predicate ;; ensure every buffer has a buffer-predicate