Function: sesman-ask-for-session
sesman-ask-for-session is a byte-compiled function defined in
sesman.el.
Signature
(sesman-ask-for-session SYSTEM PROMPT &optional SESSIONS ASK-NEW ASK-ALL)
Documentation
Ask for a SYSTEM session with PROMPT.
SESSIONS defaults to value returned from sesman-sessions. If
ASK-NEW is non-nil, offer *new* option to start a new session. If
ASK-ALL is non-nil offer *all* option. If ASK-ALL is non-nil,
return a list of sessions, otherwise a single session.
Source Code
;; Defined in ~/.emacs.d/elpa/sesman-20240417.1723/sesman.el
(defun sesman-ask-for-session (system prompt &optional sessions ask-new ask-all)
"Ask for a SYSTEM session with PROMPT.
SESSIONS defaults to value returned from `sesman-sessions'. If
ASK-NEW is non-nil, offer *new* option to start a new session. If
ASK-ALL is non-nil offer *all* option. If ASK-ALL is non-nil,
return a list of sessions, otherwise a single session."
(let* ((sessions (or sessions (sesman-sessions system)))
(name.syms (mapcar (lambda (s)
(let ((name (car s)))
(cons (if (symbolp name) (symbol-name name) name)
name)))
sessions))
(nr (length name.syms))
(syms (if (and (not ask-new) (= nr 0))
(error "No %s sessions found" system)
(append name.syms
(when ask-new '(("*new*")))
(when (and ask-all (> nr 1))
'(("*all*"))))))
(def (caar syms))
;; (def (if (assoc (car sesman--select-session-history) syms)
;; (car sesman--select-session-history)
;; (caar syms)))
(sel (completing-read
prompt (mapcar #'car syms) nil t nil 'sesman--select-session-history def)))
(cond
((string= sel "*new*")
(let ((ses (sesman-start-session system)))
(message "Started %s" (car ses))
(if ask-all (list ses) ses)))
((string= sel "*all*")
sessions)
(t
(let* ((sym (cdr (assoc sel syms)))
(ses (assoc sym sessions)))
(if ask-all (list ses) ses))))))