Function: claude-code-ide--display-buffer-in-side-window
claude-code-ide--display-buffer-in-side-window is a natively compiled
function defined in claude-code-ide.el.
Signature
(claude-code-ide--display-buffer-in-side-window BUFFER)
Documentation
Display BUFFER in a side window according to customization.
The window is displayed on the side specified by
claude-code-ide-window-side with dimensions from
claude-code-ide-window-width or claude-code-ide-window-height.
If claude-code-ide-focus-on-open is non-nil, the window is selected.
Source Code
;; Defined in /nix/store/yjvbhwl7p6zrbw9xlnni7y4hra8sa3pl-emacs-packages-deps/share/emacs/site-lisp/claude-code-ide.el
(defun claude-code-ide--display-buffer-in-side-window (buffer)
"Display BUFFER in a side window according to customization.
The window is displayed on the side specified by
`claude-code-ide-window-side' with dimensions from
`claude-code-ide-window-width' or `claude-code-ide-window-height'.
If `claude-code-ide-focus-on-open' is non-nil, the window is selected."
(let ((window
(if claude-code-ide-use-side-window
;; Use side window
(let* ((side claude-code-ide-window-side)
;; Each instance owns a slot, so several instances can
;; be visible side by side instead of evicting each other
(slot (or (when-let* ((session (claude-code-ide--buffer-session buffer)))
(claude-code-ide-mcp-session-window-slot session))
0))
(window-parameters '((no-delete-other-windows . t)))
(display-buffer-alist
`((,(regexp-quote (buffer-name buffer))
(display-buffer-in-side-window)
(side . ,side)
(slot . ,slot)
,@(when (memq side '(left right))
`((window-width
. ,(lambda (win)
(let ((delta (- claude-code-ide-window-width
(window-body-width win))))
(unless (zerop delta)
(window-resize win delta t)))))))
,@(when (memq side '(top bottom))
`((window-height . ,claude-code-ide-window-height)))
(window-parameters . ,window-parameters)))))
(display-buffer buffer))
;; Use regular buffer
(display-buffer buffer))))
;; Update last accessed buffer whenever we display a Claude buffer
(setq claude-code-ide--last-accessed-buffer buffer)
(when-let* ((session (claude-code-ide--buffer-session buffer)))
(setf (claude-code-ide-mcp-session-last-used session) (float-time)))
;; Select the window to give it focus if configured to do so
(when (and window claude-code-ide-focus-on-open)
(select-window window))
;; For bottom/top windows, explicitly set and preserve the height
(when (and window
claude-code-ide-use-side-window
(memq claude-code-ide-window-side '(top bottom)))
(set-window-text-height window claude-code-ide-window-height))
;; Dedicate every Claude side window so unrelated display-buffer calls
;; don't reuse a visible instance's window
(when (and window claude-code-ide-use-side-window)
(set-window-dedicated-p window t))
;; Sync terminal dimensions with the actual window size
;; This is necessary because vterm/eat may have been created with
;; different dimensions before being displayed in this window
(when window
(claude-code-ide--sync-terminal-dimensions buffer window))
window))