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))))))