aboutsummaryrefslogtreecommitdiff
path: root/modules/dev-fkeys.el
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-24 18:36:19 -0500
committerCraig Jennings <c@cjennings.net>2026-05-24 18:36:19 -0500
commit36a453d2c1237b49f594b23433858a0146dbf31e (patch)
tree2aa337a8bae309933e350a7120325b00b0b259ac /modules/dev-fkeys.el
parent63c60fefd4d03ba22d3a36f793fe466daae43c7e (diff)
downloaddotemacs-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/dev-fkeys.el')
-rw-r--r--modules/dev-fkeys.el14
1 files changed, 4 insertions, 10 deletions
diff --git a/modules/dev-fkeys.el b/modules/dev-fkeys.el
index 02e8a72e..00bb91ad 100644
--- a/modules/dev-fkeys.el
+++ b/modules/dev-fkeys.el
@@ -8,10 +8,8 @@
;; Eager reason: the F4/F6 developer command entry points.
;; Top-level side effects: six global F-key bindings; conditionally registers a
;; C-; P binding.
-;; Runtime requires: cl-lib, system-lib. keybindings is needed for the C-; P
-;; binding but is declared only via eval-when-compile and guarded by `boundp',
-;; so that binding silently drops standalone. Phase 2 fix.
-;; Direct test load: conditional (C-; P registration skipped without keybindings).
+;; Runtime requires: cl-lib, system-lib, keybindings.
+;; Direct test load: yes (requires keybindings explicitly).
;;
;; Project-aware F-key block for developer workflows:
;;
@@ -54,6 +52,7 @@
(require 'cl-lib)
(require 'system-lib)
+(require 'keybindings) ;; provides cj/custom-keymap
(declare-function projectile-compile-project "projectile" (arg))
(declare-function projectile-run-project "projectile" (arg))
@@ -531,12 +530,7 @@ message."
;; ---------- Bindings ----------
-(eval-when-compile (defvar cj/custom-keymap)) ;; defined in keybindings.el
-
-;; Skip the binding if cj/custom-keymap isn't loaded yet (e.g. when this
-;; module is required directly in batch tests).
-(when (boundp 'cj/custom-keymap)
- (keymap-set cj/custom-keymap "P" #'cj/projectile-reset-cmds))
+(keymap-set cj/custom-keymap "P" #'cj/projectile-reset-cmds)
(keymap-global-set "<f4>" #'cj/f4-compile-and-run)
(keymap-global-set "C-<f4>" #'cj/f4-compile-only)