Function: vertico-buffer--setup
vertico-buffer--setup is a byte-compiled function defined in
vertico-buffer.el.
Signature
(vertico-buffer--setup)
Documentation
Setup buffer display.
Source Code
;; Defined in ~/.emacs.d/elpa/vertico-20260811.1003/vertico-buffer.el
(defun vertico-buffer--setup ()
"Setup buffer display."
(let* ((action vertico-buffer-display-action)
(old-wins (mapcar (lambda (w) (cons w (window-buffer w))) (window-list)))
win old-buf tmp-buf
(_ (unwind-protect
(progn
(with-current-buffer
(setq tmp-buf (generate-new-buffer "*vertico-buffer*"))
;; Set a fake major mode such that
;; `display-buffer-reuse-mode-window' does not take over!
(setq major-mode 'vertico-buffer-mode))
;; Temporarily select the original window such that
;; `display-buffer-same-window' works.
(setq win (with-minibuffer-selected-window
(display-buffer tmp-buf action))
old-buf (alist-get win old-wins))
(set-window-buffer win (current-buffer)))
(kill-buffer tmp-buf)))
(old-no-other (window-parameter win 'no-other-window))
(old-no-delete (window-parameter win 'no-delete-other-windows))
(old-state (buffer-local-set-state
cursor-in-non-selected-windows cursor-in-non-selected-windows
show-trailing-whitespace nil
truncate-lines t
face-remapping-alist (copy-tree `((mode-line-inactive mode-line)
,@face-remapping-alist))
mode-line-format
(when mode-line-format ;; Do not override if nil
(list (format #(" %s%s " 1 3 (face mode-line-buffer-id))
(replace-regexp-in-string ":? *\\'" ""
(minibuffer-prompt))
(let ((depth (recursion-depth)))
(if (< depth 2) "" (format " [%s]" depth))))))
vertico-count (- (/ (window-pixel-height win)
(default-line-height))
(if mode-line-format 2 1)))))
(set-window-parameter win 'no-other-window t)
(set-window-parameter win 'no-delete-other-windows t)
(set-window-dedicated-p win t)
(overlay-put vertico--candidates-ov 'window win)
(when (and vertico-buffer-hide-prompt vertico--count-ov)
(overlay-put vertico--count-ov 'window win))
(setq-local vertico-buffer--restore (make-symbol "vertico-buffer--restore"))
(fset vertico-buffer--restore
(lambda ()
(with-selected-window (active-minibuffer-window)
(when vertico-buffer--restore
(when transient-mark-mode
(with-silent-modifications
(vertico--remove-face (point-min) (point-max) 'region)))
(remove-hook 'pre-redisplay-functions #'vertico-buffer--redisplay 'local)
(remove-hook 'minibuffer-exit-hook vertico-buffer--restore 'local)
(fset vertico-buffer--restore nil)
(kill-local-variable 'vertico-buffer--restore)
(buffer-local-restore-state old-state)
(overlay-put vertico--candidates-ov 'window nil)
(when vertico--count-ov (overlay-put vertico--count-ov 'window nil))
(cond
((and (window-live-p win) (buffer-live-p old-buf))
(set-window-parameter win 'no-other-window old-no-other)
(set-window-parameter win 'no-delete-other-windows old-no-delete)
(set-window-dedicated-p win nil)
(set-window-buffer win old-buf))
;; Check `window-parent' since the window may be a sole window
;; (gh:minad/vertico#496).
((and (window-live-p win) (window-parent win))
(delete-window win)))
(when vertico-buffer-hide-prompt
(set-window-vscroll nil 0))))))
(add-hook 'minibuffer-exit-hook vertico-buffer--restore nil 'local)
(add-hook 'pre-redisplay-functions #'vertico-buffer--redisplay nil 'local)))