Function: claude-code-ide-mcp--track-selection

claude-code-ide-mcp--track-selection is a natively compiled function defined in claude-code-ide-mcp.el.

Signature

(claude-code-ide-mcp--track-selection)

Documentation

Track selection changes and notify Claude for the current buffer's project.

Source Code

;; Defined in /nix/store/yjvbhwl7p6zrbw9xlnni7y4hra8sa3pl-emacs-packages-deps/share/emacs/site-lisp/claude-code-ide-mcp.el
;;; Selection and Buffer Tracking

(defun claude-code-ide-mcp--track-selection ()
  "Track selection changes and notify Claude for the current buffer's project."
  ;; Early exit for non-file buffers
  (when (buffer-file-name)
    (when-let* ((project-dir (claude-code-ide-mcp--get-buffer-project)))
      ;; Only proceed if the project has sessions
      (when (claude-code-ide-mcp--sessions-for-project project-dir)
        ;; One debounce timer per project; when it fires the selection is
        ;; fanned out to every session of the project.
        (when-let* ((timer (gethash project-dir claude-code-ide-mcp--selection-timers)))
          (cancel-timer timer))
        (let ((current-buffer (current-buffer)))
          (puthash project-dir
                   (run-with-timer claude-code-ide-mcp-selection-delay nil
                                   (lambda ()
                                     ;; Make sure we're in the right buffer context when timer fires
                                     (when (buffer-live-p current-buffer)
                                       (with-current-buffer current-buffer
                                         (claude-code-ide-mcp--send-selection-for-project project-dir)))))
                   claude-code-ide-mcp--selection-timers))))))