diff options
| author | Luke Hoersten <[email protected]> | 2026-04-29 07:09:34 -0500 |
|---|---|---|
| committer | Luke Hoersten <[email protected]> | 2026-04-29 07:09:34 -0500 |
| commit | 9e9d47d52b342cb488dfd6aa4fba33f5cac44ca6 (patch) | |
| tree | e98af8c1eccd3503dc543c8745fef5f74e8a0f1c /claude-code-context.el | |
| parent | aa90be67b0dc8ae0e72b6a24d739234254e02360 (diff) | |
Added optimization to not rewrite file if no change occurred.main
Diffstat (limited to 'claude-code-context.el')
| -rw-r--r-- | claude-code-context.el | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/claude-code-context.el b/claude-code-context.el index b7cf31b..f61a6f5 100644 --- a/claude-code-context.el +++ b/claude-code-context.el @@ -86,6 +86,9 @@ (defvar claude-code-context-timer nil "Timer for updating Claude Code context.") +(defvar claude-code-context--last-written nil + "Last JSON string written to context file, used to skip redundant writes.") + (defun claude-code-context--get-current-context () "Get current buffer context as an alist." (unless (minibufferp) @@ -120,10 +123,13 @@ (interactive) (let ((context (claude-code-context--get-current-context))) (when context - (with-temp-file claude-code-context-file - (insert (json-encode context))) - (when (called-interactively-p 'interactive) - (message "Claude Code context updated"))))) + (let ((json (json-encode context))) + (unless (equal json claude-code-context--last-written) + (setq claude-code-context--last-written json) + (with-temp-file claude-code-context-file + (insert json))) + (when (called-interactively-p 'interactive) + (message "Claude Code context updated")))))) (defun claude-code-context-add-diagnostics () "Add flymake diagnostics to Claude Code context file." @@ -140,6 +146,7 @@ (defun claude-code-context-clear-context () "Clear the Claude Code context file." (interactive) + (setq claude-code-context--last-written nil) (when (file-exists-p claude-code-context-file) (delete-file claude-code-context-file) (message "Claude Code context cleared"))) |
