Function: eca-chat--display-buffer
eca-chat--display-buffer is a natively compiled function defined in
eca-chat.el.
Signature
(eca-chat--display-buffer BUFFER)
Documentation
Display BUFFER according to customization.
When eca-chat-window-side is nil, display BUFFER in the selected
window unless it is already visible on the selected frame. Otherwise,
display it on the configured side using either a side window or a
regular directional window. If eca-chat-focus-on-open is non-nil,
select the resulting window.
Source Code
;; Defined in /nix/store/jklqzw6pzz6j4jrbv8wy0iwgi7jlrbld-emacs-packages-deps/share/emacs/site-lisp/elpa/eca-20260928.1827/eca-chat.el
(defun eca-chat--display-buffer (buffer)
"Display BUFFER according to customization.
When `eca-chat-window-side' is nil, display BUFFER in the selected
window unless it is already visible on the selected frame. Otherwise,
display it on the configured side using either a side window or a
regular directional window. If `eca-chat-focus-on-open' is non-nil,
select the resulting window."
(let* ((side eca-chat-window-side)
(size (when side
(if (memq side '(left right))
`((window-width . ,eca-chat-window-width))
`((window-height . ,eca-chat-window-height)))))
(display-action
(when side
(if eca-chat-use-side-window
`((display-buffer-in-side-window)
(side . ,side)
(slot . 0)
(dedicated . side)
,@size
(window-parameters . ((no-delete-other-windows . t))))
`((display-buffer-in-direction)
(direction . ,(pcase side
('top 'above)
('bottom 'below)
(_ side)))
,@size))))
(window
(or
;; Already visible: keep it where it is.
(get-buffer-window buffer)
;; Side-based modes reuse a visible chat (new-tab behavior).
(when side
(when-let* ((win
(if (buffer-local-value
'eca-chat--id
(window-buffer (selected-window)))
(selected-window)
(get-window-with-predicate
(lambda (w)
(buffer-local-value
'eca-chat--id (window-buffer w)))))))
(set-window-buffer win buffer)
win))
;; Nothing to reuse: open according to the configured mode.
(if side
(display-buffer buffer display-action)
(eca-chat--display-in-selected-window buffer)))))
;; Select the window to give it focus if configured to do so.
(when (and window eca-chat-focus-on-open)
(select-window window))
window))