Function: eca-chat-timeline
eca-chat-timeline is an interactive and natively compiled function
defined in eca-chat.el.
Signature
(eca-chat-timeline)
Documentation
Navigate to a user message or flag via completion.
Key Bindings
eca-chat-mode-map C-c C-S-h
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-timeline ()
"Navigate to a user message or flag via completion."
(interactive)
(let* ((messages (or (eca-chat--get-user-messages) '()))
(flags (or (eca-chat--get-flags) '()))
(all-entries (append messages flags)))
(if (null all-entries)
(message "No user messages or flags found")
(let ((table (make-hash-table :test 'equal)))
(dolist (entry (sort all-entries
(lambda (a b) (< (plist-get a :start) (plist-get b :start)))))
(puthash (eca-chat--format-message-for-completion entry) entry table))
(when-let* ((choice (completing-read
"Timeline: "
(lambda (string pred action)
(if (eq action 'metadata)
`(metadata (display-sort-function . identity))
(complete-with-action action (hash-table-keys table) string pred)))
nil t))
(selected (gethash choice table))
(pos (plist-get selected :start))
(chat-buffer (eca-chat--get-last-buffer (eca-session))))
(eca-chat--display-buffer chat-buffer)
(with-current-buffer chat-buffer
(goto-char pos)
(recenter)))))))