aboutsummaryrefslogtreecommitdiff
path: root/modules/jumper.el
Commit message (Collapse)AuthorAgeFilesLines
* feat(ai-term): move keybindings to C-; a and M-SPC, retire F9Craig Jennings44 hours1-10/+6
| | | | | | | | I moved the ai-term family off the F9 keys onto the C-; a prefix, vacated when gptel was archived: a toggles the agent, s opens the project picker, n swaps to the next agent, k closes one. The frequent swap also gets M-SPC as a fast chord, bound in ghostel-mode-map and added to the semi-char exceptions so it reaches Emacs from inside an agent buffer. cj/ai-term-next now opens the project picker when no agent is running instead of erroring, so the swap key doubles as a "start an agent" key. To free M-SPC, I removed jumper's M-SPC binding. Jumper's commands stay reachable via M-x, with a cleverer home pending review.
* fix(jumper): free registers on removal, skip dead markers, toggle backCraig Jennings3 days1-10/+35
| | | | Three defects in the saved-location store: removal shifted the slot vector but never freed the dropped register, and a later store allocated by next-index — a char a surviving slot still held — so it silently overwrote that slot's marker. jumper--with-marker-at also guarded only markerp, so a location whose buffer was killed made store and jump signal wrong-type errors. And the single-location toggle never returned: its already-there branch did nothing. Store now takes the first unused register char in the live slice, removal clears the freed register so its marker stops pinning the buffer, the marker guard checks buffer liveness so dead entries are skipped, and the toggle jumps to the last-location register when one is set.
* refactor(jumper): extract marker-traversal and location-candidates helpersCraig Jennings5 days1-32/+41
| | | | jumper--location-exists-p and jumper--format-location both opened a marker with the same save-current-buffer/set-buffer/save-excursion/goto-char dance; jumper-jump-to-location and jumper-remove-location shared a verbatim candidate-list cl-loop. Extract jumper--with-marker-at (index fn) and jumper--location-candidates; the four callers delegate. Adds direct coverage of the candidate list.
* docs(load-graph): classify domain, integration, and optional modulesCraig Jennings2026-05-241-1/+9
| | | | | | | | | | Eighth classification batch: 17 domain/integration/optional modules — ai-config, ai-vterm, browser-config, calendar-sync, calibredb-epub-config, chrono-tools, dirvish-config, dwim-shell-config, erc-config, eshell-config, eww-config, flyspell-and-abbrev, games-config, gloss-config, httpd-config, jumper, latex-config. I annotated each header, added a Batch 8 table to the inventory, and extended the validation allowlist. 82 of 102 modules are now classified. Almost all are eager only by init order and become command/hook/mode-loaded. calendar-sync stays eager when its .local.el is present. One new hidden dependency: calendar-sync guards its C-; g registration with a boundp shim and doesn't require keybindings, so the binding drops standalone. I deferred elfeed-config rather than annotate it. Its header edit triggers byte-compilation, and the existing tests only pass when the module loads as interpreted source — the compiled cj/elfeed-process-entries inlines an elfeed struct accessor the stubs can't intercept, and the batch test environment has no elfeed package to build real structs. It needs its tests rewritten first, recorded in the inventory and a new todo task. Also made the header allowlist scoping test durable: it used games-config (now classified) as its unclassified example; switched to a sentinel name plus a duplicate-entry guard.
* feat:jumper: Integrate and enhance 'jumper' module with testsCraig Jennings2025-10-271-76/+176
| | | | | | | | | Enable 'jumper' module by uncommenting its require statement in init.el. Enhance 'jumper' by adding detailed documentation, refactoring logic into internal functions, and updating keybinding setup for better usability. Integrate 'which-key' for improved keybinding assistance. Add comprehensive unit tests for 'jumper' functionalities to ensure reliability.
* chore: Remove redundant autoload directives from modulesCraig Jennings2025-10-261-1/+0
| | | | | | | Remove unnecessary autoload directives from various functions across multiple modules, cleaning up the codebase and improving readability. These directives were redundant and not needed for the current project setup.
* refactor: unify and simplify key binding setupsCraig Jennings2025-10-231-1/+1
| | | | | | | | Optimized key binding configurations across modules for consistency and reduced redundancy. Improved conditional requiring to handle errors gracefully in `music-config.el`, ensuring robustness across different machine environments. Eliminated comments clutter and adjusted function definitions to adhere to revised standards.
* changing repositoriesCraig Jennings2025-10-121-0/+177