<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs.git/modules/org-config.el, branch v0.7.2</title>
<subtitle>my Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs.git/atom?h=v0.7.2</id>
<link rel='self' href='https://git.cjennings.net/dotemacs.git/atom?h=v0.7.2'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/'/>
<updated>2026-03-16T17:27:42+00:00</updated>
<entry>
<title>fix(slack): disable emojify in lui buffers, add org cache reset command</title>
<updated>2026-03-16T17:27:42+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-03-16T17:27:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/commit/?id=0d55edecf82b32b75780f24751dfa8d693b72708'/>
<id>urn:sha1:0d55edecf82b32b75780f24751dfa8d693b72708</id>
<content type='text'>
Disable slack-buffer-emojify to prevent wrong-type-argument listp errors
on emoji characters during lui-scroll-post-command recenter. Add C-; O c
to reset org-element cache across all org-mode buffers.
</content>
</entry>
<entry>
<title>fix(org): remap date picker keys — . for today, &lt;&gt; for days, M-,/. for months</title>
<updated>2026-02-18T07:13:30+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-18T07:13:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/commit/?id=6bf2688d0b3e4fef82671fb70e1aa883b0c90018'/>
<id>urn:sha1:6bf2688d0b3e4fef82671fb70e1aa883b0c90018</id>
<content type='text'>
Unbind comma, restore . to goto-today, use angle brackets for day
navigation, and M-comma/M-dot for month navigation.
</content>
</entry>
<entry>
<title>feat: add org keymap under C-; O with cache clear binding</title>
<updated>2025-11-17T22:06:48+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-17T22:06:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/commit/?id=342e7df14b688ca995c831a68531550ad59e2cc2'/>
<id>urn:sha1:342e7df14b688ca995c831a68531550ad59e2cc2</id>
<content type='text'>
Created general org operations keymap at C-; O separate from specialized
org-table and org-drill keymaps. Added C-; O c binding for clearing
org-element cache to fix org-todo state change errors.
</content>
</entry>
<entry>
<title>feat: Add toggle for org-appear mode (C-c C-a)</title>
<updated>2025-11-17T04:11:11+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-17T04:11:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/commit/?id=6255c1ace910278f327de80eafc14389564ce4a0'/>
<id>urn:sha1:6255c1ace910278f327de80eafc14389564ce4a0</id>
<content type='text'>
Implemented cj/org-appear-toggle to control when emphasis markers and
link URLs are revealed. Useful for editing links while keeping tables
readable when long URLs would otherwise expand and break layout.

Changes:
- Enabled org-appear package (removed :disabled flag)
- Removed auto-enable hook (default: OFF for cleaner reading)
- Added cj/org-appear-toggle function with clear user feedback
- Bound to C-c C-a in org-mode-map
- C-c C-a was unbound (no conflict with org-attach or other commands)

Usage:
- Default: OFF (links and emphasis markers stay hidden)
- Press C-c C-a: Turn ON (markers show when cursor is on them)
- Press C-c C-a again: Turn OFF (back to hidden)

Closes todo.org line 29: "Toggle org-appear on/off"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat: Fix modeline lag and add org multi-level sort with comprehensive tests</title>
<updated>2025-11-08T22:11:58+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-08T22:11:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/commit/?id=8176eff73b826f7fec9d7f458f7d2f36f4d12e58'/>
<id>urn:sha1:8176eff73b826f7fec9d7f458f7d2f36f4d12e58</id>
<content type='text'>
Performance improvement and new feature with full test coverage.

## Changes

### 1. Fix modeline line/column position lag (#A priority)
- Replace expensive line-number-at-pos with cached %l/%c format specifiers
- Enable line-number-mode explicitly for caching
- Result: Instant modeline updates, zero performance overhead
- Files: modules/modeline-config.el:81-83, modules/ui-config.el:53

### 2. Implement multi-level org sorting
- New function: cj/org-sort-by-todo-and-priority
- Sorts by TODO status (TODO before DONE) AND priority (A→B→C→D)
- Uses stable sorting: priority first, then TODO state
- Gracefully handles empty sections (no error)
- Bound to C-; o o (ordering → org sort)
- Files: modules/org-config.el:278-299, modules/custom-ordering.el:253,267

### 3. Comprehensive ERT test suite (12/12 passing)
- Normal cases: Mixed TODO/DONE, multiple of same type, same priority
- Boundary cases: Empty sections, single entries, no priorities
- Error cases: Non-org-mode buffer
- Test file: tests/test-org-sort-by-todo-and-priority.el

### 4. Testing improvements discovered
- Disable org-mode hooks to avoid package dependencies in batch mode
- org-sort-entries must be called from parent heading
- Preserve priority cookie in org-get-heading (t t nil t)
- Add condition-case to handle "Nothing to sort" gracefully

### 5. Minor cleanup
- Comment out chime-debug setting (org-agenda-config.el:267)
- Mark modeline lag task as DONE in todo.org

## Technical Details

Modeline optimization:
- line-number-at-pos is O(n) where n = current line
- %l and %c are O(1) lookups from cached values

Org sorting algorithm uses stable sort:
1. Sort by priority (A, B, C, D, unprioritized)
2. Sort by TODO status (preserves priority order within groups)
Result: TODO [#A], TODO [#B], DONE [#A], DONE [#B], etc.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat: Add org-appear and enable org emphasis rendering</title>
<updated>2025-11-03T22:26:54+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-03T22:26:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/commit/?id=9e75fea0cf16c72dfd490b0dcb726e6c7bd023bb'/>
<id>urn:sha1:9e75fea0cf16c72dfd490b0dcb726e6c7bd023bb</id>
<content type='text'>
Changes:
- Added org-appear package to show emphasis markers only when editing
- Changed org-fontify-emphasized-text from nil to t to render bold/italic
- Updated comment for org-hide-emphasis-markers to reference org-appear
- org-appear reveals markers (* / _) only when cursor is on them
- Also shows link markup and sub/superscripts when editing
- Updated todo.org to mark org-appear task as DONE (Method 2: 3/5)

Result: Cleaner org-mode editing experience with visual emphasis while
maintaining clean appearance when not editing.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>fix: Resolve void-variable and void-function errors on first launch</title>
<updated>2025-11-02T05:14:24+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-02T05:14:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/commit/?id=196b289774607d62f83a6a00717039fc9fc21671'/>
<id>urn:sha1:196b289774607d62f83a6a00717039fc9fc21671</id>
<content type='text'>
Fixed two critical bugs preventing Emacs from launching after fresh clone:

1. prog-go.el: Moved go-ts-mode-map keybinding from :bind clause
   - The :bind macro tried to reference go-ts-mode-map before it was loaded
   - Moved "C-; f" gofmt binding into cj/go-mode-keybindings function
   - Function executes via hook after mode loads, ensuring keymap exists

2. org-config.el: Moved function definitions before use-package block
   - cj/org-general-settings, cj/org-appearance-settings, and
     cj/org-todo-settings were called in :config but defined after
   - Moved all three function definitions before (use-package org)
   - Functions now defined before :config section tries to call them

Both fixes follow the pattern of ensuring dependencies exist before use.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;
</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.git/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>feat:org-config: Add function to clear org-element cache</title>
<updated>2025-10-25T21:40:09+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-25T21:40:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/commit/?id=e15b62f0b27ac2dd730fadbf83803f9a5f0af092'/>
<id>urn:sha1:e15b62f0b27ac2dd730fadbf83803f9a5f0af092</id>
<content type='text'>
Introduce `cj/org-clear-element-cache` to clear the org-element
cache for the current buffer or all buffers. This is useful for
resolving parsing errors encountered during agenda generation, such
as 'wrong-type-argument stringp nil'. The function can be triggered
with a prefix argument to clear the cache for all org buffers, or
without it to clear only the current buffer's cache.
</content>
</entry>
<entry>
<title>refactor:org-modules: Improve org-mode configuration</title>
<updated>2025-10-23T05:12:41+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-23T05:12:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs.git/commit/?id=f499ea3bf76fa552bccefbacf2644331f655fb29'/>
<id>urn:sha1:f499ea3bf76fa552bccefbacf2644331f655fb29</id>
<content type='text'>
Remove redundant declarations and reorganize settings for clarity.
Centralize org-mode customizations and use `use-package` for
streamlined loading and configuration. Remove backward-compatible
safeguards and reduce inline comments for cleaner code. Optimize key
mappings and simplify the setup of org-related packages.
</content>
</entry>
</feed>
