diff options
| author | Craig Jennings <c@cjennings.net> | 2025-11-14 02:25:19 -0600 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2025-11-14 02:25:19 -0600 |
| commit | 7b982b1984dd37af42a2dfc9f4c3e52b27102860 (patch) | |
| tree | 95ff3ba5c3ab2da2a889530432d75e69ed993efa /modules/dashboard-config.el | |
| parent | fd1a5d308e730bad2936adb2384897bb620458be (diff) | |
fix(ui): Fix cursor color updates with post-command-hook
The cursor color was not updating correctly when switching buffers
or modifying files. The original implementation used window-buffer-change
and other specific hooks, but these were insufficient and internal
buffers were interfering with cursor color updates.
Root cause:
- Cursor color is global (one cursor for all of Emacs)
- Previous hooks fired in internal buffer contexts (*Echo Area*, *temp*)
- This caused cursor to be set to white (unmodified) even when in
read-only buffers like dashboard
Solution:
- Use post-command-hook which runs after every command in current buffer
- Ignore internal buffers (names starting with space)
- Cache optimization prevents redundant set-cursor-color calls
Behavior now:
- Dashboard (read-only): Red cursor
- Unmodified file: White cursor
- Modified file: Green cursor
- After save: White cursor
Tests:
- Added 9 integration tests in test-ui-cursor-color-integration.el
- Tests verify hook installation, buffer switching, modification tracking
- All 27 tests passing (18 unit + 9 integration)
Integration tests catch issues that unit tests miss:
- Unit tests verified state detection logic (✓)
- Integration tests verify hooks fire at right times (✓ now)
- Integration tests verify real buffer switching behavior (✓ now)
Cleanup:
- Removed debug code from init.el
- Removed debug-cursor-color.el temporary file
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Diffstat (limited to 'modules/dashboard-config.el')
0 files changed, 0 insertions, 0 deletions
