diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-24 18:36:19 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-24 18:36:19 -0500 |
| commit | 36a453d2c1237b49f594b23433858a0146dbf31e (patch) | |
| tree | 2aa337a8bae309933e350a7120325b00b0b259ac /modules/custom-buffer-file.el | |
| parent | 63c60fefd4d03ba22d3a36f793fe466daae43c7e (diff) | |
| download | dotemacs-36a453d2c1237b49f594b23433858a0146dbf31e.tar.gz dotemacs-36a453d2c1237b49f594b23433858a0146dbf31e.zip | |
refactor(load-graph): make hidden module dependencies explicit
Phase 2 of the load-graph project. I fixed the seven hidden dependencies the classification surfaced, so each module declares what it uses instead of relying on init order.
- system-defaults now requires host-environment and user-constants at runtime. They were eval-when-compile only, but env-bsd-p and user-home-dir are read at load, so the compiled module couldn't load standalone.
- custom-buffer-file, dev-fkeys, calendar-sync, and video-audio-recording require keybindings and drop their (when (boundp 'cj/custom-keymap) ...) shims. The shim silently dropped the C-; binding when the module loaded before keybindings. The explicit require makes the dependency real.
- flycheck-config and mail-config require keybindings for their cj/custom-keymap bindings (a use-package :map and a direct keymap-set).
- Removed a dead eval-when-compile (defvar cj/custom-keymap) in transcription-config; nothing there used the variable.
No init.el load-order change. keybindings and the foundation modules already load before these, so the requires are no-ops at startup and only fix standalone and test loading.
I verified each fix with a fresh emacs --batch (require 'X), then swept all modules standalone: every one loads or fails only with a clear missing-package message. Full make test, make validate-modules, and an init smoke all pass. Module headers and the inventory's hidden-dependency section are updated to mark the seven resolved.
Diffstat (limited to 'modules/custom-buffer-file.el')
| -rw-r--r-- | modules/custom-buffer-file.el | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/modules/custom-buffer-file.el b/modules/custom-buffer-file.el index 67191244..d24c66b9 100644 --- a/modules/custom-buffer-file.el +++ b/modules/custom-buffer-file.el @@ -9,10 +9,8 @@ ;; by init order; a deferral candidate for Phase 3/4. ;; Top-level side effects: defines cj/copy-buffer-content-map and ;; cj/buffer-and-file-map; conditionally registers the latter under C-; b. -;; Runtime requires: external-open, mm-decode, system-lib. keybindings is needed -;; for the C-; b registration but is declared only via eval-when-compile and -;; guarded by `boundp', so the binding silently drops standalone. Phase 2 fix. -;; Direct test load: conditional (C-; b registration skipped without keybindings). +;; Runtime requires: keybindings, external-open, mm-decode, system-lib. +;; Direct test load: yes (requires keybindings explicitly). ;; ;; This module provides custom buffer and file operations including PostScript ;; printing capabilities. @@ -42,8 +40,7 @@ ;; ;;; Code: -;; cj/custom-keymap defined in keybindings.el -(eval-when-compile (defvar cj/custom-keymap)) +(require 'keybindings) ;; provides cj/custom-keymap (eval-when-compile (require 'ps-print)) ;; for ps-print variables (declare-function ps-print-buffer-with-faces "ps-print") (declare-function ps-print-region-with-faces "ps-print") @@ -541,8 +538,7 @@ Signals an error if: "<right>" #'cj/window-resize-sticky "<up>" #'cj/window-resize-sticky "<down>" #'cj/window-resize-sticky) -(when (boundp 'cj/custom-keymap) - (keymap-set cj/custom-keymap "b" cj/buffer-and-file-map)) +(keymap-set cj/custom-keymap "b" cj/buffer-and-file-map) (with-eval-after-load 'which-key (which-key-add-key-based-replacements |
