summaryrefslogtreecommitdiff
path: root/modules/org-config.el
AgeCommit message (Collapse)Author
2025-11-16feat: Add toggle for org-appear mode (C-c C-a)Craig Jennings
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 <noreply@anthropic.com>
2025-11-08feat: Fix modeline lag and add org multi-level sort with comprehensive testsCraig Jennings
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 <noreply@anthropic.com>
2025-11-03feat: Add org-appear and enable org emphasis renderingCraig Jennings
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 <noreply@anthropic.com>
2025-11-02fix: Resolve void-variable and void-function errors on first launchCraig Jennings
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 <noreply@anthropic.com>
2025-10-27feat:which-key: Add descriptive labels for custom keymapsCraig Jennings
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.
2025-10-25feat:org-config: Add function to clear org-element cacheCraig Jennings
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.
2025-10-23refactor:org-modules: Improve org-mode configurationCraig Jennings
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.
2025-10-20refactor:org: improve forward declarations and update key bindingsCraig Jennings
Add forward declarations for org-mode variables and functions to improve code clarity and organization. Update key binding methods to use keymap-unset and keymap-global-set for better compatibility. Group org-mode settings more logically and remove unnecessary custom-set-variables call. Enable org-superstar mode using a hook for cleaner initialization.
2025-10-18refactor: created specific org-dir variable for ~/sync/orgCraig Jennings
2025-10-16refactor: org-store-link: move keybinding to org-configCraig Jennings
2025-10-12changing repositoriesCraig Jennings