aboutsummaryrefslogtreecommitdiff
path: root/tests/test-org-sort-by-todo-and-priority.el
Commit message (Collapse)AuthorAgeFilesLines
* Clean up Org keymap ownershipCraig Jennings2026-05-101-0/+4
| | | | Remove the duplicate Org cache keymap and keep C-; O owned by the shared Org map. The cache clear command now clears all Org buffers by default, with a prefix argument for the current buffer.
* fix(tests): fix failing tests across multiple modulesCraig Jennings2026-01-241-0/+6
| | | | | | | | - test-org-noter: add org-id require for org-id-uuid - test-org-agenda: update to expect 4 base files (pcal added) - test-org-refile: fix lambda signatures for directory-files-recursively - test-org-sort: stub cj/custom-keymap, cj/org-map, org-dir - test-calendar-sync: mark Saturday weekday test as expected-fail (timezone issue)
* Revert "checking in modified/removed tests and other misc changes"Craig Jennings2025-11-141-0/+283
| | | | This reverts commit 1218bae708a6755e3628f15fef58e6806ac81039.
* checking in modified/removed tests and other misc changesCraig Jennings2025-11-141-283/+0
|
* feat: Fix modeline lag and add org multi-level sort with comprehensive testsCraig Jennings2025-11-081-0/+283
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.