Function: eca-chat--context->str
eca-chat--context->str is a natively compiled function defined in
eca-chat-context.el.
Signature
(eca-chat--context->str CONTEXT &optional STATIC?)
Documentation
Convert CONTEXT to a presentable str in buffer.
If STATIC? return strs with no dynamic values.
Source Code
;; Defined in /nix/store/jklqzw6pzz6j4jrbv8wy0iwgi7jlrbld-emacs-packages-deps/share/emacs/site-lisp/elpa/eca-20260928.1827/eca-chat-context.el
(defun eca-chat--context->str (context &optional static?)
"Convert CONTEXT to a presentable str in buffer.
If STATIC? return strs with no dynamic values."
(-let* (((&plist :type type) context)
(context-str
(pcase type
("file" (let ((path (plist-get context :path))
(lines-range (plist-get context :linesRange)))
(propertize (concat eca-chat-context-prefix
(eca-chat--context-presentable-path path)
(-when-let ((&plist :start start :end end) lines-range)
(format "(%d-%d)" start end)))
'eca-chat-expanded-item-str (concat eca-chat-context-prefix path
(-when-let ((&plist :start start :end end) lines-range)
(format ":L%d-L%d" start end)))
'font-lock-face 'eca-chat-context-file-face)))
("directory" (propertize (concat eca-chat-context-prefix (eca-chat--context-presentable-path (plist-get context :path)))
'eca-chat-expanded-item-str (concat eca-chat-context-prefix (plist-get context :path))
'font-lock-face 'eca-chat-context-file-face))
("repoMap" (propertize (concat eca-chat-context-prefix "repoMap")
'eca-chat-expanded-item-str (concat eca-chat-context-prefix "repoMap")
'font-lock-face 'eca-chat-context-repo-map-face))
("mcpResource" (propertize (concat eca-chat-context-prefix (plist-get context :server) ":" (plist-get context :name))
'eca-chat-expanded-item-str (concat eca-chat-context-prefix (plist-get context :server) ":" (plist-get context :name))
'font-lock-face 'eca-chat-context-mcp-resource-face))
("cursor" (propertize (cond
(static? (concat eca-chat-context-prefix "cursor"))
((not eca-chat--cursor-context)
(concat eca-chat-context-prefix "cursor" "(no file)"))
(t (concat eca-chat-context-prefix "cursor"
"("
(-some-> (plist-get eca-chat--cursor-context :path)
(f-filename))
" "
(-some->>
(-> eca-chat--cursor-context
(plist-get :position)
(plist-get :start)
(plist-get :line))
(funcall #'number-to-string))
":"
(-some->>
(-> eca-chat--cursor-context
(plist-get :position)
(plist-get :start)
(plist-get :character))
(funcall #'number-to-string))
")")))
'eca-chat-expanded-item-str (concat eca-chat-context-prefix "cursor")
'font-lock-face 'eca-chat-context-cursor-face))
("text" (let ((label (plist-get context :label))
(lines-range (plist-get context :linesRange)))
(propertize (concat eca-chat-context-prefix
label
(-when-let ((&plist :start start :end end) lines-range)
(format "(%d-%d)" start end)))
'eca-chat-expanded-item-str (concat eca-chat-context-prefix label
(-when-let ((&plist :start start :end end) lines-range)
(format ":L%d-L%d" start end)))
'font-lock-face 'eca-chat-context-buffer-face)))
(_ (concat eca-chat-context-prefix "unknown:" type)))))
(eca-chat--propertize-image-mention
(propertize context-str
'eca-chat-item-type 'context
'eca-chat-item-str-length (length context-str)
'eca-chat-context-item context)
(and (equal type "file") (plist-get context :path)))))