Function: eca--chat-buffer-candidates-for-session

eca--chat-buffer-candidates-for-session is a natively compiled function defined in eca.el.

Signature

(eca--chat-buffer-candidates-for-session SESSION SEEN)

Documentation

Return completion candidates for SESSION.

SEEN is a hash table tracking previously used candidate names. Returns a list of (NAME . PLIST) entries.

Source Code

;; Defined in /nix/store/jklqzw6pzz6j4jrbv8wy0iwgi7jlrbld-emacs-packages-deps/share/emacs/site-lisp/elpa/eca-20260928.1827/eca.el
(defun eca--chat-buffer-candidates-for-session (session seen)
  "Return completion candidates for SESSION.

SEEN is a hash table tracking previously used candidate names.
Returns a list of (NAME . PLIST) entries."
  (cl-loop
   for chat-by-id in (eca--session-chats session)
   for buf = (cdr chat-by-id)
   when (buffer-live-p buf)
   collect
   (with-current-buffer buf
     (let* ((title (substring-no-properties (eca-chat-title)))
            (project (eca--session-project-name session))
            (base (format "%s: %s" project title))
            (n (gethash base seen 0))
            (name (if (zerop n)
                      base
                    (format "%s (%s)" base (buffer-name buf)))))
       (puthash base (1+ n) seen)
       (cons name
             (list :buffer buf
                   :session session))))))