Function: eca-chat--track-cursor

eca-chat--track-cursor is a natively compiled function defined in eca-chat-context.el.

Signature

(eca-chat--track-cursor &rest ARGS)

Documentation

Change chat context considering current open file and point.

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--track-cursor (&rest _args)
  "Change chat context considering current open file and point."
  (when-let* ((buffer (eca-chat--get-last-visited-buffer))
              (path (buffer-file-name buffer))
              (session (eca-chat--session-for-path path)))
    (with-current-buffer buffer
      (when-let (chat-buffer (eca-chat--get-last-buffer session))
        (when (buffer-live-p chat-buffer)
          (-let* (((start . end) (eca-chat--cur-position))
                  ((start-line . start-character) start)
                  ((end-line . end-character) end))
            (eca-chat--with-current-buffer chat-buffer
              (let ((new-context (list :path path
                                       :position (list :start (list :line start-line :character start-character)
                                                       :end (list :line end-line :character end-character)))))
                (when (not (eca-plist-equal eca-chat--cursor-context new-context))
                  (setq eca-chat--cursor-context new-context)
                  (eca-chat--refresh-context))))))))))