aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/design/module-inventory.org37
-rw-r--r--modules/coverage-core.el9
-rw-r--r--modules/coverage-elisp.el9
-rw-r--r--modules/dev-fkeys.el12
-rw-r--r--modules/diff-config.el11
-rw-r--r--modules/flycheck-config.el13
-rw-r--r--modules/help-config.el9
-rw-r--r--modules/help-utils.el9
-rw-r--r--modules/test-runner.el10
-rw-r--r--modules/vc-config.el10
-rw-r--r--tests/test-init-module-headers.el12
11 files changed, 126 insertions, 15 deletions
diff --git a/docs/design/module-inventory.org b/docs/design/module-inventory.org
index 9a6a147f..dbde1557 100644
--- a/docs/design/module-inventory.org
+++ b/docs/design/module-inventory.org
@@ -27,7 +27,8 @@ This inventory is independent from the helper inventory owned by
- Batch 2 (Text/editing command modules, Layer 2): classified. 9 modules.
- Batch 3 (Core libraries and command modules): classified. 7 modules.
- Batch 4 (UI / core-UX modules, Layer 2): classified. 10 modules.
-- 33 of 102 modules classified.
+- Batch 5 (Dev entry-points, diff, help, lint, VC, Layer 2): classified. 9 modules.
+- 42 of 102 modules classified.
- No load-order changes have been made; =init.el= keeps its current eager order.
* Legend
@@ -118,6 +119,23 @@ eager reason and stay eager.
| =dashboard-config= | 2 | C/S | eager | eager | none | builds/opens dashboard buffer at startup | conditional |
| =nerd-icons-config= | 2 | C/P | eager | eager | none | package config | yes |
+** Batch 5 — Dev entry-points, diff, help, lint, VC (Layer 2)
+
+Command entry points and package config for the development workflow: coverage
+(F7), F-keys (F4/F6), diff, help, lint, the ERT runner, and Magit.
+
+| Module | Layer | Cat | Current | Target | Runtime requires | Top-level side effects | Direct load |
+|--------+-------+-----+---------+--------+------------------+------------------------+-------------|
+| =coverage-core= | 2 | C/L | eager | eager | seq, subr-x, system-lib | 1 global key (F7) | yes |
+| =coverage-elisp= | 2 | C/P | eager | eager | coverage-core | backend registration | yes |
+| =dev-fkeys= | 2 | C | eager | eager | cl-lib, system-lib | 6 F-key bindings; C-; P boundp-guarded | conditional |
+| =diff-config= | 2 | C/P | eager | eager | none | package config | yes |
+| =help-config= | 2 | C/P | eager | eager | none | 2 global keys, package config | yes |
+| =help-utils= | 2 | L/D | eager | command | none | 1 global key, package config | yes |
+| =flycheck-config= | 2 | C/P | eager | hook | none (needs keybindings for :map) | package config; cj/custom-keymap :map binding | conditional |
+| =test-runner= | 2 | C/L | eager | eager | ert, cl-lib, keybindings | test keymap under cj/custom-keymap | yes |
+| =vc-config= | 2 | C/P | eager | eager | user-constants, keybindings | 2 keymaps under cj/custom-keymap, package config | yes |
+
* Hidden dependencies found
Discoveries that belong to Phase 2 (make dependencies explicit). Recorded here,
@@ -137,10 +155,16 @@ not fixed here.
is nil and the binding silently drops. That guard is the
"define-if-not-present" shim the spec warns against. Phase 2/3 fix: require
keybindings (or use the registration API once it exists) and drop the guard.
+- =dev-fkeys= uses the same =(when (boundp 'cj/custom-keymap) ...)= shim plus an
+ =eval-when-compile= declaration for its =C-; P= binding, so the binding
+ silently drops when loaded without keybindings. Same Phase 2/3 fix.
+- =flycheck-config= binds =(:map cj/custom-keymap ...)= through use-package but
+ does not require keybindings, so the binding fails when the module loads
+ standalone. Phase 2 fix: require keybindings (or move to the registration API).
* Pending classification
-The remaining 69 modules required by =init.el=, awaiting per-module inspection.
+The remaining 60 modules required by =init.el=, awaiting per-module inspection.
Each batch reads these against their source and moves them into [[*Classified
modules][Classified modules]] with a load-graph header. Suggested batch order
follows the spec: text/editing command modules, then UI, then programming, then
@@ -152,22 +176,15 @@ Org, then optional integrations.
- [ ] calendar-sync
- [ ] calibredb-epub-config
- [ ] chrono-tools
-- [ ] coverage-core
-- [ ] coverage-elisp
-- [ ] dev-fkeys
-- [ ] diff-config
- [ ] dirvish-config
- [ ] dwim-shell-config
- [ ] elfeed-config
- [ ] erc-config
- [ ] eshell-config
- [ ] eww-config
-- [ ] flycheck-config
- [ ] flyspell-and-abbrev
- [ ] games-config
- [ ] gloss-config
-- [ ] help-config
-- [ ] help-utils
- [ ] httpd-config
- [ ] hugo-config
- [ ] jumper
@@ -207,10 +224,8 @@ Org, then optional integrations.
- [ ] slack-config
- [ ] system-commands
- [ ] telega-config
-- [ ] test-runner
- [ ] tramp-config
- [ ] transcription-config
-- [ ] vc-config
- [ ] video-audio-recording
- [ ] vterm-config
- [ ] weather-config
diff --git a/modules/coverage-core.el b/modules/coverage-core.el
index 47e891e6..0a8b2464 100644
--- a/modules/coverage-core.el
+++ b/modules/coverage-core.el
@@ -2,6 +2,15 @@
;; author: Craig Jennings <c@cjennings.net>
;;; Commentary:
+;;
+;; Layer: 2 (Core UX).
+;; Category: C/L.
+;; Load shape: eager.
+;; Eager reason: the F7 coverage entry point and the backend registry.
+;; Top-level side effects: one global key (F7).
+;; Runtime requires: seq, subr-x, system-lib.
+;; Direct test load: yes.
+;;
;; Language-agnostic core for diff-aware coverage reporting.
;;
;; Reads an LCOV file, invokes git diff at a selectable scope,
diff --git a/modules/coverage-elisp.el b/modules/coverage-elisp.el
index 048c81dd..0c640c50 100644
--- a/modules/coverage-elisp.el
+++ b/modules/coverage-elisp.el
@@ -2,6 +2,15 @@
;; author: Craig Jennings <c@cjennings.net>
;;; Commentary:
+;;
+;; Layer: 2 (Core UX).
+;; Category: C/P.
+;; Load shape: eager.
+;; Eager reason: registers the elisp coverage backend after coverage-core; cheap.
+;; Top-level side effects: backend registration via use-package.
+;; Runtime requires: coverage-core.
+;; Direct test load: yes.
+;;
;; Registers the `elisp' coverage backend with `coverage-core'.
;;
;; Detection: a project root with a Makefile / Eask / Cask plus any
diff --git a/modules/dev-fkeys.el b/modules/dev-fkeys.el
index 3b0a818c..02e8a72e 100644
--- a/modules/dev-fkeys.el
+++ b/modules/dev-fkeys.el
@@ -1,6 +1,18 @@
;;; dev-fkeys.el --- Developer F-key dispatchers -*- lexical-binding: t -*-
;;; Commentary:
+;;
+;; Layer: 2 (Core UX).
+;; Category: C.
+;; Load shape: eager.
+;; 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).
+;;
;; Project-aware F-key block for developer workflows:
;;
;; F4 completing-read of compile/run candidates filtered by project type
diff --git a/modules/diff-config.el b/modules/diff-config.el
index 45c2a778..75869a73 100644
--- a/modules/diff-config.el
+++ b/modules/diff-config.el
@@ -2,7 +2,16 @@
;; author Craig Jennings <c@cjennings.net>
;;; Commentary:
-
+;;
+;; Layer: 2 (Core UX).
+;; Category: C/P.
+;; Load shape: eager.
+;; Eager reason: Ediff and diff UX defaults; eager only by init order, a
+;; package-load deferral candidate.
+;; Top-level side effects: package configuration via use-package.
+;; Runtime requires: none.
+;; Direct test load: yes.
+;;
;; I've configured Ediff for a clean and efficient diff experience.
;; • Ediff will use a plain control window, horizontal splits, ignore whitespace, and only highlight the current change.
diff --git a/modules/flycheck-config.el b/modules/flycheck-config.el
index f064cb13..8932a3ac 100644
--- a/modules/flycheck-config.el
+++ b/modules/flycheck-config.el
@@ -2,7 +2,18 @@
;; author Craig Jennings <c@cjennings.net>
;;; Commentary:
-
+;;
+;; Layer: 2 (Core UX).
+;; Category: C/P.
+;; Load shape: eager.
+;; Eager reason: general linting setup; spec target is hook-loaded, a deferral
+;; candidate.
+;; Top-level side effects: package configuration via use-package, binds into
+;; cj/custom-keymap through use-package :map.
+;; Runtime requires: keybindings is needed for the cj/custom-keymap :map binding
+;; but is not required here; the binding fails standalone. Phase 2 fix.
+;; Direct test load: conditional (needs cj/custom-keymap for the :map binding).
+;;
;; This file configures Flycheck for on-demand syntax and grammar checking.
;; - Flycheck starts automatically only in sh-mode and emacs-lisp-mode
diff --git a/modules/help-config.el b/modules/help-config.el
index cfe67bf0..ce9fd861 100644
--- a/modules/help-config.el
+++ b/modules/help-config.el
@@ -3,6 +3,15 @@
;;; Commentary:
;;
+;; Layer: 2 (Core UX).
+;; Category: C/P.
+;; Load shape: eager.
+;; Eager reason: help/info/man configuration and its keybindings; eager only by
+;; init order, a deferral candidate.
+;; Top-level side effects: two global keys, package configuration via use-package.
+;; Runtime requires: none.
+;; Direct test load: yes.
+;;
;; This module enhances Emacs' built-in help system and documentation features.
;; It configures:
;;
diff --git a/modules/help-utils.el b/modules/help-utils.el
index 91ac8947..f9f5d142 100644
--- a/modules/help-utils.el
+++ b/modules/help-utils.el
@@ -3,6 +3,15 @@
;;
;;; Commentary:
;;
+;; Layer: 2 (Core UX).
+;; Category: L/D.
+;; Load shape: eager.
+;; Eager reason: documentation-search commands; eager only by init order, a
+;; deferral candidate (autoload commands) for Phase 4.
+;; Top-level side effects: one global key, package configuration via use-package.
+;; Runtime requires: none.
+;; Direct test load: yes.
+;;
;; This module provides various utilities for accessing documentation and help resources
;; directly within Emacs.
;; DevDocs for programming documentation
diff --git a/modules/test-runner.el b/modules/test-runner.el
index 1c993446..2a6f25e7 100644
--- a/modules/test-runner.el
+++ b/modules/test-runner.el
@@ -2,7 +2,15 @@
;; author: Craig Jennings <c@cjennings.net>
;;
;;; Commentary:
-
+;;
+;; Layer: 2 (Core UX).
+;; Category: C/L.
+;; Load shape: eager.
+;; Eager reason: the test keymap entry point and project-scoped runner state.
+;; Top-level side effects: defines a test keymap, registers it under cj/custom-keymap.
+;; Runtime requires: ert, cl-lib, keybindings.
+;; Direct test load: yes (requires keybindings explicitly).
+;;
;; This module provides a powerful ERT test runner with focus/unfocus workflow
;; for efficient test-driven development in Emacs Lisp projects.
;;
diff --git a/modules/vc-config.el b/modules/vc-config.el
index 45aec73b..8b82b4cc 100644
--- a/modules/vc-config.el
+++ b/modules/vc-config.el
@@ -1,6 +1,16 @@
;;; vc-config.el --- Version Control Configuration -*- lexical-binding: t; coding: utf-8; -*-
;; author: Craig Jennings <c@cjennings.net>
;;; Commentary:
+;;
+;; Layer: 2 (Core UX).
+;; Category: C/P.
+;; Load shape: eager.
+;; Eager reason: the C-x g Magit entry point and the git keymap.
+;; Top-level side effects: defines two keymaps, registers under cj/custom-keymap,
+;; package configuration via use-package.
+;; Runtime requires: user-constants, keybindings.
+;; Direct test load: yes (requires keybindings explicitly).
+;;
;; C-x g is my general entry to Magit's version control via the status page.
;; Navigating changes in file happens via git gutter
diff --git a/tests/test-init-module-headers.el b/tests/test-init-module-headers.el
index df3df728..f6c8e7ba 100644
--- a/tests/test-init-module-headers.el
+++ b/tests/test-init-module-headers.el
@@ -57,7 +57,17 @@
"mousetrap-mode"
"popper-config"
"dashboard-config"
- "nerd-icons-config")
+ "nerd-icons-config"
+ ;; Batch 5 — Dev entry-points, diff, help, lint, VC (Layer 2)
+ "coverage-core"
+ "coverage-elisp"
+ "dev-fkeys"
+ "diff-config"
+ "help-config"
+ "help-utils"
+ "flycheck-config"
+ "test-runner"
+ "vc-config")
"Modules annotated with the load-graph header contract.
Grows one batch at a time. Parity with the init.el require set is the
Phase 1 exit criterion.")