summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
39 hourschore(init): remove test status comments from require statementsCraig Jennings
Removed comments indicating test status for required modules to clean up and simplify the init.el file.
39 hoursfeat:test-runner: Enhance ERT test runner with focus/unfocus supportCraig Jennings
Add comprehensive documentation and workflow details for the ERT test runner, including integration with Projectile projects for automatic test discovery. Refactor code to support focus/unfocus workflows, allowing developers to efficiently manage test execution by focusing on specific test files. Introduce internal utility functions `cj/test--do-*` to modularize logic for file operations and focus management, improving code maintainability. Add new tests in `test-test-runner.el` to validate the enhanced functionality, ensuring robust handling of focus operations and test execution scenarios.
39 hoursfeat:test-runner: Enhance ERT test runner with focus/unfocus supportCraig Jennings
Add comprehensive documentation and workflow details for the ERT test runner, including integration with Projectile projects for automatic test discovery. Refactor code to support focus/unfocus workflows, allowing developers to efficiently manage test execution by focusing on specific test files. Introduce internal utility functions `cj/test--do-*` to modularize logic for file operations and focus management, improving code maintainability. Add new tests in `test-test-runner.el` to validate the enhanced functionality, ensuring robust handling of focus operations and test execution scenarios.
39 hoursfeat:test-runner: Enhance ERT test runner with focus/unfocus supportCraig Jennings
Add comprehensive documentation and workflow details for the ERT test runner, including integration with Projectile projects for automatic test discovery. Refactor code to support focus/unfocus workflows, allowing developers to efficiently manage test execution by focusing on specific test files. Introduce internal utility functions `cj/test--do-*` to modularize logic for file operations and focus management, improving code maintainability. Add new tests in `test-test-runner.el` to validate the enhanced functionality, ensuring robust handling of focus operations and test execution scenarios.
40 hoursfeat:browser-config: Integrate browser configuration and add testsCraig Jennings
- Move `browser-config` from 'Modules In Test' to active modules - Refactor browser handling functions for better error handling: - Introduce `cj/--do-apply-browser-choice` and - `cj/--do-choose-browser` Return status symbols for success and - error cases Add comprehensive unit tests in - `tests/test-browser-config.el` Focus on internal `cj/--do-*` - functions and file I/O using temp files Validate return values and - ensure isolated tests with setup/teardown functions Ensure - consistent handling of browser configurations and improve - initialization logic
40 hoursfeat:jumper: Integrate and enhance 'jumper' module with testsCraig Jennings
Enable 'jumper' module by uncommenting its require statement in init.el. Enhance 'jumper' by adding detailed documentation, refactoring logic into internal functions, and updating keybinding setup for better usability. Integrate 'which-key' for improved keybinding assistance. Add comprehensive unit tests for 'jumper' functionalities to ensure reliability.
40 hoursfeat:text-generation: improve and rename lorem generatorCraig Jennings
Rename `lorem-generator.el` to `lorem-optimum.el` for fun. Enhance text tokenization, Markov chain learning, and text generation functions. Introduce new configuration variables for training files and improve efficiency with vectorized access. Add comprehensive benchmarks and unit tests under `tests/`. This improves performance and lays groundwork for further extensions.
41 hourschore: Remove redundant autoload directives from modulesCraig Jennings
Remove unnecessary autoload directives from various functions across multiple modules, cleaning up the codebase and improving readability. These directives were redundant and not needed for the current project setup.
41 hoursfeat:org-contacts: Enhance email parsing and add testsCraig Jennings
Add a new function `cj/--parse-email-string` to parse email strings with multiple formats and separators, ensuring robust handling of real-world email variations. This commit also includes extensive tests for the new parsing function, covering normal, edge, and special cases, ensuring comprehensive test coverage and reliability.
41 hoursfeat:org-webclipper: Add smart heading adjustmentCraig Jennings
Introduce `cj/--process-webclip-content` to enhance webclip processing by removing the first heading and demoting subsequent headings, preserving page structure. Includes tests for thorough validation of the new functionality.
42 hourschore:init.el: update comments and modules loading statusCraig Jennings
Refined comments to note completion of module tests. Removed outdated function and disabled a module. Adjusted 'org-roam-config' for test addition.
42 hourschore:org-agenda: Remove outdated test file and unused codeCraig Jennings
Deleted `test-custom-org-agenda-functions.el.disabled` as it was obsolete. Removed commented-out global keybinding in `org-agenda-config.el` for clarity.
42 hoursfeat:org-roam-config: Add new utilities and testsCraig Jennings
Introduce several utility functions for org-roam configuration, including `cj/--generate-roam-slug`, `cj/--demote-org-subtree`, and `cj/--format-roam-node`. These enhance title-to-slug conversion, subtree demotion, and node file formatting. Additionally, include comprehensive test cases for these functions to ensure correctness and reliability in various scenarios.
42 hoursfeat:text-enclose): Enhance text enclosure: new functions and testsCraig Jennings
Add line manipulation utilities: `append-to-lines`, `prepend-to-lines`, `indent-lines`, and `dedent-lines`. Add tests for these functions and improve existing text wrapping functionalities with `wrap`, `unwrap`, and `surround` implementations. Extend keymap for easier access to these functions.
42 hoursfeat+test: custom-ordering: line manipulation utils + testsCraig Jennings
Introduce new functions cj/toggle-quotes, cj/reverse-lines, and cj/number-lines for line manipulation. cj/toggle-quotes swaps quotes within a region, cj/reverse-lines reverse the line order, and cj/number-lines adds line numbers with a customizable format, supporting zero-padding. Update keymap with new bindings. Add comprehensive tests for each function.
43 hoursfeat+test:ordering: add prefix/suffix to arrayify/convenience funcsCraig Jennings
Enhanced cj/--arrayify with optional prefix/suffix parameters for flexible formatting: - prefix: string to prepend (e.g., "[" or "(") - suffix: string to append (e.g., "]" or ")") Added convenience functions: - cj/listify: unquoted list (a, b, c) - cj/arrayify-json: JSON array ["a", "b", "c"] - cj/arrayify-python: Python list ["a", "b", "c"] Updated keybindings: - C-; o l → cj/listify - C-; o j → cj/arrayify-json - C-; o p → cj/arrayify-python - C-; o L → cj/comma-separated-text-to-lines (moved from 'l')
43 hours test+fix:custom-misc: add tests and fix fraction glyph bugCraig Jennings
Add test coverage for 4 functions in custom-misc.el: - cj/replace-fraction-glyphs (24 tests) - cj/format-region-or-buffer (17 tests) - cj/count-words-buffer-or-region (20 tests) - cj/jump-to-matching-paren (18 tests) Refactored functions using internal/interactive split pattern: - Internal functions (cj/--function-name) contain business logic with explicit parameters and validation - Interactive wrappers handle UI concerns (region detection, messages) - Tests call internal functions directly (no mocking required) Bug Fix: cj/--replace-fraction-glyphs Fixed "Invalid search bound" error when converting glyphs to text. Original code used fixed end position which became invalid when replacements changed buffer size. Fixed by using copy-marker for dynamic end position tracking.
43 hours test+feat:custom-whitespace: add 37 tests + 2 new functionsCraig Jennings
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.
43 hoursupdated tasksCraig Jennings
43 hoursfix:webclipper:fixed org-web-tools not loading when neededCraig Jennings
43 hoursbetter commentary for testsCraig Jennings
43 hourstest:removing old (now redundant) testsCraig Jennings
44 hours test+refactor:custom-whitespace: add comprehensive testing with 73 testsCraig Jennings
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.
44 hoursprompt: adding learnings from quality-engineer sessionsCraig Jennings
44 hoursfix: config-utilities: remove duplicate keymap bindingCraig Jennings
Removed a duplicate keymap binding for 'cj/delete-emacs-home-compiled-files'
44 hoursdocs:custom-line-paragraph: Update author info, enhance commentaryCraig Jennings
Add author information and improve commentary to detail line and paragraph manipulation utilities more clearly, enhancing the module's documentation.
44 hourschore: remove old redundant tests.Craig Jennings
44 hoursfeat+test:comments: add 7 comment generation functions and testsCraig Jennings
Implement 5 new comment styles (simple-divider, padded-divider, heavy-box, unicode-box, block-banner) and refactor 2 existing functions (inline-border, comment-box) to use interactive/non-interactive pattern for testability. Add 178 tests across 7 test files with validation for length constraints and cross-language support. Fix linter warnings for parameter shadowing and docstring formatting.
46 hourstest+fix:comments: add tests for cj/comment-reformat; fix arg issueCraig Jennings
Add 14 unit tests for cj/comment-reformat covering: - Emacs Lisp (12 tests): multiline joining, fill-column restoration, unicode, indentation, empty regions, read-only buffers - Python (1 test): hash-based comments - C (1 test): C-style comments (converted to block style by c-mode Fix issue where cj/comment-reformat was being called with args
46 hourstest+docs:custom-comments: add tests for cj/delete-buffer-commentsCraig Jennings
Add 20 unit tests for cj/delete-buffer-comments covering: - Emacs Lisp (14 tests): comprehensive coverage of normal/boundary/error cases - Python (3 tests): hash-based comments (#) - C (3 tests): C-style line (//) and block (/* */) comments
46 hours test+fix:custom-file-buffer: add tests, fix linter warningCraig Jennings
Add 58 unit tests for buffer/file utility functions: - cj/copy-link-to-buffer-file (12 tests) - cj/copy-path-to-buffer-file-as-kill (12 tests) - cj/copy-whole-buffer (14 tests) - cj/clear-to-bottom-of-buffer (10 tests) - cj/clear-to-top-of-buffer (10 tests) Tests cover normal cases, boundary cases (unicode, empty buffers, narrowing, read-only buffers), and error cases. Production code change: - Fix linter warning: unused variable 'err' → '_' in cj/move-buffer-and-file
46 hours test:custom-file-buffer: add tests for cj/delete-buffer-and-fileCraig Jennings
Add 36 unit tests for cj/delete-buffer-and-file covering: - Normal cases: VC vs non-VC file deletion, trash flag usage - Boundary cases: file content variations, naming edge cases, buffer states - Error cases: permission issues, VC failures, error propagation Key testing decisions documented in Commentary: - Mock delete-file errors for deterministic, portable tests - Test our code's behavior (branching logic, error propagation), not the underlying trash/filesystem implementations - Verify correct calls to vc-delete-file vs delete-file with trash flag All 36 tests passing.
47 hoursfeat+test:custom-file-buffer: add tests and safety refactoringCraig Jennings
Add 106 unit tests with full coverage for move-buffer-and-file (51 tests) and rename-buffer-and-file (55 tests). Refactor both functions using interactive/non-interactive split pattern for simpler testing and reusability. Changes: - Split cj/move-buffer-and-file and cj/rename-buffer-and-file into internal implementations (cj/--*) and interactive wrappers - Add ok-if-exists parameter with user confirmation to prevent data loss - Fix bugs: return values, path expansion, string-match arg order, regex - Add test utilities for proper buffer cleanup and isolation - Document interactive/non-interactive pattern in quality-engineer.org - Document error message testing guidelines in quality-engineer.org All 106 tests passing.
3 daysfix:custom-line-paragraph:missing forward declarationsCraig Jennings
3 dayschore:init:change marker identifying test progressionCraig Jennings
3 daysfeat:custom-line-paragraph: add keybinding for duplicate-and-commentCraig Jennings
- Add C-; l c keybinding to duplicate line/region with commenting - Add which-key description "duplicate and comment" for the new binding - Complements existing C-; l d (duplicate without comment)
3 daystest:custom-line-paragraph: add tests for underscore-lineCraig Jennings
- Add 26 tests covering normal cases, boundary cases, and error cases - Tests verify column width calculation with tabs, Unicode support, various underline characters - Mock read-char function for batch mode testing - All 26 tests passing on first run
3 daysfix+test:custom-line-paragraph:infinite loop remove-lines-containingCraig Jennings
- Add guard clause to handle empty string input gracefully (would cause infinite loop) - Add 33 comprehensive tests covering normal cases, boundary cases, and error cases - Tests verify Unicode support, regex character escaping, region vs buffer operations - All 33 tests passing
3 daystest:custom-line-paragraph: remove-duplicate-lines-region-or-bufferCraig Jennings
- Add 35 tests covering normal cases, boundary cases, and error cases - Tests verify duplicate removal with case-insensitive matching, region vs buffer operations, Unicode support - Discovered function requires trailing newlines for duplicate detection and uses case-insensitive matching - All 35 tests passing
3 days test:custom-line-paragraph: tests for duplicate-line-or-regionCraig Jennings
- Add 31 tests covering normal cases, boundary cases, and error cases - Tests verify duplication with/without comments, Unicode, RTL text, undo behavior, and edge cases - All 31 tests passing
3 daystest:custom-line-paragraph: add tests and fix region deactivationCraig Jennings
- Add 11 new tests for cj/join-line-or-region covering boundary cases, Unicode, stress testing, and undo behavior - Fix region deactivation in cj/join-line-or-region function - All 62 tests now passing (41 join-line-or-region + 21 join-paragraph)
3 daysupdated tasksCraig Jennings
3 daysfeat: chime: make chime start immediatelyCraig Jennings
3 daysqa prompt: better direction about when not to mock functionalityCraig Jennings
3 daysfix:org-roam: copy completed tasks to dailies on state transitionsCraig Jennings
Fixed and enhanced the org-roam hook that copies completed tasks to daily notes: - Fixed hook not triggering immediately after Emacs launch by moving it outside the lazy-loaded use-package org-roam :config block and into with-eval-after-load 'org - Changed hook to trigger for ANY org-done-keyword (DONE, CANCELLED, etc.) instead of just "DONE" - Updated hook to only trigger on non-done → done transitions using org-last-state, preventing duplicate copies when changing between done states (e.g., DONE → CANCELLED) - Added docstrings to org-roam helper functions to fix checkdoc linter warnings - Created comprehensive ERT test suite with 10 tests covering: * Hook registration before org-roam loads (lazy-loading fix) * Transitions to done states (nil→DONE, TODO→DONE, IN-PROGRESS→DONE, WAITING→CANCELLED) * Non-triggering cases (done→done, transitions to non-done states)
3 dayschore: ignoring flycheck temp filesCraig Jennings
3 daysrefactor:dirvish: Remove redundant nerd-icons setupCraig Jennings
Move the `nerd-icons` setup from `dirvish-config.el` to `font-config.el` to consolidate icon configurations.
3 daysrefactor:dirvish: remove unused dired sidebar codeCraig Jennings
Remove unused functions and configurations related to dired-sidebar and nerd-icons-dired. This cleans up the code and reduces unnecessary dependencies within the dashboard-config.el and dirvish-config.el modules.
3 daysfeat:erc-config: add image inline support and simplify hooksCraig Jennings
Enable inline image support in ERC by adding 'image' to erc-modules. Simplify hook usage by removing ERC colorization setup, leveraging built-in functionality for better color management.
3 daysrefactor:keymaps: Replace define-prefix-command with defvar-keymapCraig Jennings
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.