Function: eca-chat--mode-line-module
eca-chat--mode-line-module is a natively compiled function defined in
eca-chat.el.
Signature
(eca-chat--mode-line-module SESSION KEYWORD)
Documentation
Return mode-line string segment for module KEYWORD in SESSION.
Source Code
;; Defined in /nix/store/jklqzw6pzz6j4jrbv8wy0iwgi7jlrbld-emacs-packages-deps/share/emacs/site-lisp/elpa/eca-20260928.1827/eca-chat.el
(defun eca-chat--mode-line-module (session keyword)
"Return mode-line string segment for module KEYWORD in SESSION."
(pcase keyword
(:workspace-folders
(let ((home (expand-file-name "~")))
(string-join
(mapcar (lambda (f)
(if (string-prefix-p home f)
(concat "~" (substring f (length home)))
f))
(eca--session-workspace-folders session))
", ")))
(:add-workspace-button
(propertize " [+]"
'face 'shadow
'mouse-face 'highlight
'help-echo "Add workspace folder"
'local-map eca-chat--add-workspace-map))
(:remove-workspace-button
(when (> (length (eca--session-workspace-folders session)) 1)
(propertize " [-]"
'face 'shadow
'mouse-face 'highlight
'help-echo "Remove workspace folder"
'local-map eca-chat--remove-workspace-map)))
(:bg-jobs
(when-let* ((jobs (eca--session-jobs session))
(running (seq-count (lambda (j) (string= "running" (plist-get j :status))) jobs)))
(when (> running 0)
(propertize (format " [%d %s]" running (if (= running 1) "job" "jobs"))
'face 'shadow))))
(:title
(eca-chat-title))
(:elapsed-time
(when-let* ((str (eca-chat--turn-duration-str)))
(let ((icon (if (eca-chat--has-pending-approvals-p) "🚧" "⏱")))
(propertize (concat icon " " str)
'font-lock-face 'eca-chat-elapsed-time-face))))
(:context-bar
(when-let* ((bar (eca-chat--context-bar)))
(concat bar " ")))
(:usage
(eca-chat--usage-str))
(:server-version
(when eca-chat--server-version
(concat "ECA " eca-chat--server-version)))
(:init-progress
(eca-chat--init-progress-str session))
(:trust
(let* ((trust? (eca-chat--trust))
(graphic? (display-graphic-p))
(face (if trust?
'eca-chat-trust-on-face
'eca-chat-trust-off-face))
(help (if trust?
"Trust ON - auto-accepting tool calls"
"Trust OFF - not auto-accepting tool calls"))
(symbol (if trust?
(if graphic?
eca-chat-trust-on-symbol
eca-chat-trust-on-symbol-tty)
(if graphic?
eca-chat-trust-off-symbol
eca-chat-trust-off-symbol-tty))))
(propertize symbol
'face face
'mouse-face 'highlight
'help-echo help
'local-map eca-chat--trust-toggle-map)))
((pred stringp) keyword)
(_ "")))