Function: eca-chat-select-variant
eca-chat-select-variant is an interactive and natively compiled
function defined in eca-chat.el.
Signature
(eca-chat-select-variant)
Documentation
Select which variant to use in the active chat.
Key Bindings
eca-chat-mode-map C-c C-v
Source Code
;; Defined in /nix/store/jklqzw6pzz6j4jrbv8wy0iwgi7jlrbld-emacs-packages-deps/share/emacs/site-lisp/elpa/eca-20260928.1827/eca-chat.el
;;;###autoload
(defun eca-chat-select-variant ()
"Select which variant to use in the active chat."
(interactive)
(let* ((session (eca-session))
(target (and session
(eca-chat--get-active-buffer session))))
(eca-assert-session-running session)
(unless (buffer-live-p target)
(user-error "No active chat"))
(let* ((variants
(with-current-buffer target
(if (local-variable-p 'eca-chat--available-variants)
(copy-sequence eca-chat--available-variants)
(append (eca--session-chat-variants session) nil))))
(candidates (cons "-" (sort variants #'string-lessp)))
(table (lambda (string pred action)
(if (eq action 'metadata)
`(metadata
(display-sort-function . ,#'identity)
(cycle-sort-function . ,#'identity))
(complete-with-action action candidates string pred)))))
(when-let* ((variant (completing-read
"Select a variant: " table nil t)))
(let ((normalized-variant
(eca-chat--normalize-variant variant)))
(eca-chat--with-current-buffer target
(setq-local eca-chat--selected-variant normalized-variant))
(setf (eca--session-chat-default-variant session)
normalized-variant)
(eca-chat--notify-status-changed session))))))