Use frame's buffer-predicate instead of doom/{next,previous}-buffer
doom/{next,previous}-buffer was implemented so that these commands could skip over unreal buffers, and land us on either a real one or the dashboard. Using the frame's buffer-predicate parameter accomplishes exactly this, natively.
This commit is contained in:
parent
c9e8be1f60
commit
2989296521
5 changed files with 27 additions and 26 deletions
|
@ -34,6 +34,13 @@ it if it doesn't exist).")
|
|||
;; Functions
|
||||
;;
|
||||
|
||||
;;;###autoload
|
||||
(defun doom-buffer-frame-predicate (buf)
|
||||
"To be used as the default frame buffer-predicate parameter. Returns nil if
|
||||
BUF should be skipped over by functions like `next-buffer' and `other-buffer'."
|
||||
(or (doom-real-buffer-p buf)
|
||||
(eq buf (doom-fallback-buffer))))
|
||||
|
||||
;;;###autoload
|
||||
(defun doom-fallback-buffer ()
|
||||
"Returns the fallback buffer, creating it if necessary. By default this is the
|
||||
|
@ -279,17 +286,3 @@ processes killed."
|
|||
(delete-process p)
|
||||
(cl-incf n))))
|
||||
n))
|
||||
|
||||
;;;###autoload
|
||||
(defun doom/next-buffer ()
|
||||
"Switch to the next real buffer, skipping non-real buffers. See
|
||||
`doom-real-buffer-p' for what 'real' means."
|
||||
(interactive)
|
||||
(doom--cycle-real-buffers +1))
|
||||
|
||||
;;;###autoload
|
||||
(defun doom/previous-buffer ()
|
||||
"Switch to the previous real buffer, skipping non-real buffers. See
|
||||
`doom-real-buffer-p' for what 'real' means."
|
||||
(interactive)
|
||||
(doom--cycle-real-buffers -1))
|
||||
|
|
|
@ -481,6 +481,8 @@ character that looks like a space that `whitespace-mode' won't affect.")
|
|||
(global-eldoc-mode -1)
|
||||
;; simple name in frame title
|
||||
(setq-default frame-title-format '("DOOM Emacs"))
|
||||
;; make `next-buffer', `other-buffer', etc. ignore unreal buffers
|
||||
(push '(buffer-predicate . doom-buffer-frame-predicate) default-frame-alist)
|
||||
;; draw me like one of your French editors
|
||||
(tooltip-mode -1) ; relegate tooltips to echo area only
|
||||
(menu-bar-mode -1)
|
||||
|
@ -538,9 +540,8 @@ instead)."
|
|||
(let ((buf (current-buffer)))
|
||||
(cond ((window-dedicated-p)
|
||||
(delete-window))
|
||||
((eq buf (doom-fallback-buffer))
|
||||
(doom--cycle-real-buffers -1))
|
||||
((doom-real-buffer-p buf)
|
||||
(previous-buffer)
|
||||
(doom--cycle-real-buffers
|
||||
(if (delq buf (doom-real-buffer-list)) -1))
|
||||
(kill-buffer buf))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue