<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/modules/custom-whitespace.el, branch load-graph-classify-start</title>
<subtitle>My Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs/atom?h=load-graph-classify-start</id>
<link rel='self' href='https://git.cjennings.net/dotemacs/atom?h=load-graph-classify-start'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/'/>
<updated>2026-05-08T00:25:29+00:00</updated>
<entry>
<title>chore(modules): pass validate-modules in batch by adding requires</title>
<updated>2026-05-08T00:25:29+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-08T00:25:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=a41ef9774f6550da446a3ae8fbbcbcd5bf6c23c4'/>
<id>urn:sha1:a41ef9774f6550da446a3ae8fbbcbcd5bf6c23c4</id>
<content type='text'>
`make validate-modules` had 19 module-load failures, all the same shape: a module references a symbol or feature owned by another module without saying so. Production was fine because init.el orders requires correctly. The batch target loads each module in isolation, though, and surfaces the gap.

I added explicit `(require 'keybindings)` or `(require 'user-constants)` to each affected module. The requires are idempotent at runtime, so production load order is unchanged. For three optional packages (elpa-mirror, mu4e, org-contacts), I switched to `(require 'X nil t)` so the modules load cleanly when those packages aren't installed. The activation calls become no-ops in that case.

`make validate-modules` now reports 0 failures.
</content>
</entry>
<entry>
<title>feat:which-key: Add descriptive labels for custom keymaps</title>
<updated>2025-10-27T23:45:23+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-27T23:45:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=87034eab17625165b884128d8058c1158fc2f50f'/>
<id>urn:sha1:87034eab17625165b884128d8058c1158fc2f50f</id>
<content type='text'>
Enhance which-key integration by providing detailed descriptions for
new key bindings across multiple modules. This improves the
usability of custom keymaps by clarifying the purpose of each
keybinding, making it easier for users to navigate and understand
different menus and options available within the configuration.

This update ensures that all custom keymaps now display a
descriptive label in the which-key popup to explain their
functionality, aiding users in identifying keymap purposes promptly.
</content>
</entry>
<entry>
<title> test+feat:custom-whitespace: add 37 tests + 2 new functions</title>
<updated>2025-10-27T02:05:01+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-27T02:05:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=220efbbecd366bc3337c73ad4d902716a9733dae'/>
<id>urn:sha1:220efbbecd366bc3337c73ad4d902716a9733dae</id>
<content type='text'>
  Refactor all 4 existing whitespace functions to use interactive/non-interactive
  pattern and add comprehensive testing (73 tests). Implement 2 new functions:
  delete-all-whitespace (removes all whitespace) and ensure-single-blank-line
  (collapses consecutive blanks to one). Add keybindings for untabify/tabify.
  Total: 110 tests, 100% pass rate, 0 linter warnings.
</content>
</entry>
<entry>
<title> test+refactor:custom-whitespace: add comprehensive testing with 73 tests</title>
<updated>2025-10-27T01:48:20+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-27T01:48:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=1066d0410660d1820064c757abe7b5aad6e6070f'/>
<id>urn:sha1:1066d0410660d1820064c757abe7b5aad6e6070f</id>
<content type='text'>
  Refactor 4 whitespace manipulation functions (remove-leading-trailing,
  collapse-whitespace, delete-blank-lines, hyphenate-whitespace) to use
  interactive/non-interactive pattern for testability. Add 73 tests across
  4 test files covering normal, boundary, and error cases. Fix linter warnings
  and add proper input validation.
</content>
</entry>
<entry>
<title>refactor:keymaps: Replace define-prefix-command with defvar-keymap</title>
<updated>2025-10-26T00:56:40+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-26T00:56:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=746cefd4d674bfc6dd9fdfe4aeb79c7e760ec268'/>
<id>urn:sha1:746cefd4d674bfc6dd9fdfe4aeb79c7e760ec268</id>
<content type='text'>
Refactor the keymap definitions across multiple modules by replacing
`define-prefix-command` with `defvar-keymap`. This simplifies the
keymap setup and integrates better with the `which-key` package for
enhanced documentation and usability. Updated modules include
custom-ordering, custom-text-enclose, custom-whitespace,
mail-config, music-config, org-drill-config, test-runner, and
vc-config.
</content>
</entry>
<entry>
<title>docs: custom-whitespace: Add detailed module commentary</title>
<updated>2025-10-20T14:52:47+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-20T14:52:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=72c219b7056282f97d58f419686da80514fc90a6'/>
<id>urn:sha1:72c219b7056282f97d58f419686da80514fc90a6</id>
<content type='text'>
Enhance the commentary section with descriptions of whitespace
operations.
</content>
</entry>
<entry>
<title>maint: remaining custom functions grouped into separate modules</title>
<updated>2025-10-12T19:42:29+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-12T19:41:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=147d5c265edf0615d2aa1d65319963d7399711de'/>
<id>urn:sha1:147d5c265edf0615d2aa1d65319963d7399711de</id>
<content type='text'>
</content>
</entry>
</feed>
