aboutsummaryrefslogtreecommitdiff
path: root/modules/dev-fkeys.el
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-28 03:39:46 -0400
committerCraig Jennings <c@cjennings.net>2026-06-28 03:39:46 -0400
commit5600947e3c07ecc4cba99eb2e97d9f902d41fd33 (patch)
tree0a422a82e8105b126de03f80fa0a0f3e14f86682 /modules/dev-fkeys.el
parent9b3438d21ecc1b0527ec4bd298a61a8b124ce1c6 (diff)
downloaddotemacs-5600947e3c07ecc4cba99eb2e97d9f902d41fd33.tar.gz
dotemacs-5600947e3c07ecc4cba99eb2e97d9f902d41fd33.zip
docs: condense module commentaries to the terse header contract
22 module headers carried long user-manual commentaries (quick-starts, keybinding matrices, setup walkthroughs) that belong in user docs, not source. Each now states the purpose, load contract, and entry points tersely. ai-term also drops its stale F9 keybinding references (the scheme is C-; a plus M-SPC now) and a header line claiming a vertical-split that's really host-aware.
Diffstat (limited to 'modules/dev-fkeys.el')
-rw-r--r--modules/dev-fkeys.el47
1 files changed, 8 insertions, 39 deletions
diff --git a/modules/dev-fkeys.el b/modules/dev-fkeys.el
index 9fdfa5b3f..80b43600b 100644
--- a/modules/dev-fkeys.el
+++ b/modules/dev-fkeys.el
@@ -5,48 +5,17 @@
;; 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.
+;; Eager reason: binds the F4/F6 developer command entry points.
+;; Top-level side effects: global F-key bindings and optional C-; P binding.
;; Runtime requires: cl-lib, system-lib, keybindings.
-;; Direct test load: yes (requires keybindings explicitly).
+;; Direct test load: yes.
;;
-;; Project-aware F-key block for developer workflows:
+;; Project-aware F-key dispatchers. F4 chooses compile/run/clean commands by
+;; project markers; C-F4 and M-F4 are fast paths. F6 runs all project tests or
+;; the current file's tests using language-specific command builders.
;;
-;; F4 completing-read of compile/run candidates filtered by project type
-;; C-F4 fast path: compile only (no-op on interpreted projects)
-;; M-F4 fast path: clean + rebuild (no-op on interpreted projects)
-;; S-F4 recompile (built-in)
-;; F6 completing-read of test candidates: All tests / Current file's tests
-;; C-F6 fast path: current file's tests
-;;
-;; F4 project-type detection runs against the projectile root and falls back
-;; to \\='unknown when no marker matches. Interpreted markers are checked
-;; before compiled markers, so a Python or Node project that also has a
-;; Makefile for tasks classifies as interpreted.
-;;
-;; F6 \"All tests\" delegates to `projectile-test-project'. F6 \"Current
-;; file's tests\" detects the language by extension, derives the runner
-;; command (elisp via the project Makefile, Python via pytest, Go via the
-;; package), and pipes through `compile' from the projectile root.
-;; TypeScript / JavaScript are detected but punted for v1 — the function
-;; signals a user-error rather than guessing a runner.
-;;
-;; M-F6 is reserved for Phase 2b (\"Run a test...\" menu entry with
-;; per-language test-name discovery). Phase 2b also adds buffer-local
-;; last-test memory and tree-sitter-based discovery for Python / Go /
-;; TypeScript. The tree-sitter discovery uses a capture-then-filter pattern
-;; (queries without `:match' / `:equal' / `:pred' predicates, with the
-;; pattern filter applied in Elisp) to sidestep Emacs bug #79687 — Emacs
-;; 30.2 emits unsuffixed `#match' predicates that libtree-sitter 0.26
-;; rejects. The fix lives on Emacs master (commit b0143530) and is
-;; targeted at Emacs 31; it has not been backported to the emacs-30
-;; branch as of 2026-05-03. See Mike Olson's writeup at
-;; https://mwolson.org/blog/emacs/2026-04-20-fixing-typescript-ts-mode-in-emacs-30-2/
-;; for the same workaround applied to font-lock.
-;;
-;; F7 (coverage) is wired in coverage-core.el. F5 is reserved for the debug
-;; ticket and intentionally left unbound here.
+;; Interpreted markers win over compiled markers so task Makefiles do not turn
+;; Python/Node projects into compile-first projects.
;;; Code: