aboutsummaryrefslogtreecommitdiff
path: root/modules
Commit message (Collapse)AuthorAgeFilesLines
* feat:org-webclipper: Add smart heading adjustmentCraig Jennings2025-10-261-17/+29
| | | | | | | 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.
* chore:org-agenda: Remove outdated test file and unused codeCraig Jennings2025-10-261-2/+0
| | | | | | Deleted `test-custom-org-agenda-functions.el.disabled` as it was obsolete. Removed commented-out global keybinding in `org-agenda-config.el` for clarity.
* feat:org-roam-config: Add new utilities and testsCraig Jennings2025-10-261-31/+57
| | | | | | | | | | 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.
* feat:text-enclose): Enhance text enclosure: new functions and testsCraig Jennings2025-10-261-52/+243
| | | | | | | | 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.
* feat+test: custom-ordering: line manipulation utils + testsCraig Jennings2025-10-261-1/+95
| | | | | | | | | 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.
* feat+test:ordering: add prefix/suffix to arrayify/convenience funcsCraig Jennings2025-10-261-34/+100
| | | | | | | | | | | | | | | | | 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')
* test+fix:custom-misc: add tests and fix fraction glyph bugCraig Jennings2025-10-261-31/+59
| | | | | | | | | | | | | | | | | | | | | 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.
* test+feat:custom-whitespace: add 37 tests + 2 new functionsCraig Jennings2025-10-261-1/+62
| | | | | | | | 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.
* fix:webclipper:fixed org-web-tools not loading when neededCraig Jennings2025-10-261-25/+9
|
* test+refactor:custom-whitespace: add comprehensive testing with 73 testsCraig Jennings2025-10-261-44/+89
| | | | | | | | 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.
* fix: config-utilities: remove duplicate keymap bindingCraig Jennings2025-10-261-1/+0
| | | | | Removed a duplicate keymap binding for 'cj/delete-emacs-home-compiled-files'
* docs:custom-line-paragraph: Update author info, enhance commentaryCraig Jennings2025-10-261-6/+5
| | | | | | Add author information and improve commentary to detail line and paragraph manipulation utilities more clearly, enhancing the module's documentation.
* feat+test:comments: add 7 comment generation functions and testsCraig Jennings2025-10-261-113/+551
| | | | | | | | | 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.
* test+fix:comments: add tests for cj/comment-reformat; fix arg issueCraig Jennings2025-10-261-1/+1
| | | | | | | | | | 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
* test+fix:custom-file-buffer: add tests, fix linter warningCraig Jennings2025-10-261-1/+1
| | | | | | | | | | | | | | | 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
* feat+test:custom-file-buffer: add tests and safety refactoringCraig Jennings2025-10-261-16/+63
| | | | | | | | | | | | | | | | | 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.
* fix:custom-line-paragraph:missing forward declarationsCraig Jennings2025-10-261-0/+3
|
* feat:custom-line-paragraph: add keybinding for duplicate-and-commentCraig Jennings2025-10-261-2/+4
| | | | | | - 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)
* fix+test:custom-line-paragraph:infinite loop remove-lines-containingCraig Jennings2025-10-261-21/+23
| | | | | | | - 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
* test:custom-line-paragraph: add tests and fix region deactivationCraig Jennings2025-10-261-1/+2
| | | | | | - 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)
* feat: chime: make chime start immediatelyCraig Jennings2025-10-261-1/+1
|
* fix:org-roam: copy completed tasks to dailies on state transitionsCraig Jennings2025-10-261-14/+20
| | | | | | | | | | | | | | | | | | | | | | | | | 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)
* refactor:dirvish: Remove redundant nerd-icons setupCraig Jennings2025-10-252-5/+6
| | | | | Move the `nerd-icons` setup from `dirvish-config.el` to `font-config.el` to consolidate icon configurations.
* refactor:dirvish: remove unused dired sidebar codeCraig Jennings2025-10-252-26/+0
| | | | | | | 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.
* feat:erc-config: add image inline support and simplify hooksCraig Jennings2025-10-251-22/+5
| | | | | | 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.
* refactor:keymaps: Replace define-prefix-command with defvar-keymapCraig Jennings2025-10-258-72/+93
| | | | | | | | | | 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.
* feat:erc: Enable IRC client in dashboard and update keybindingsCraig Jennings2025-10-252-28/+21
| | | | | | | | | | Uncommented ERC client initialization in `init.el`. Replaced "cj/erc-start-or-switch" with "cj/erc-switch-to-buffer-with-completion" in dashboard. Altered keybindings to use "C-; E" instead of "C-c e" for ERC commands. Defined a new keymap "cj/erc-keymap" for better command organization. Removed deprecated `locate-library` checks and `cj/erc-command-map`. Refined code layout for clarity.
* feat(dirvish-config): Add sidebar attribute settingCraig Jennings2025-10-251-1/+2
| | | | Add `dirvish-side-attributes` for explicit sidebar configuration.
* refactor:video-audio-recording: remove unused autoload cookiesCraig Jennings2025-10-251-6/+1
| | | | | | Remove unnecessary `;;;###autoload` comments from function definitions. This cleanup clarifies the code and has no functional impact as these autoload cookies were not utilized.
* feat:org-config: Add function to clear org-element cacheCraig Jennings2025-10-251-0/+18
| | | | | | | | | 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.
* fix:dwim-shell: ensure dirvish starts dwim-shellCraig Jennings2025-10-251-1/+1
| | | | | | Update `use-package` to load `dwim-shell-command` after both `dired` and `dirvish`, ensuring proper integration and compatibility with the additional package.
* refactor: org-agenda: add chimeCraig Jennings2025-10-251-19/+32
| | | | | | Add chime for managing agenda notifications. Update configuration settings for chime, including notification times and modeline display. Enable chime-mode by default.
* feat:org-drill: Add cj/drill-start command to autoloadCraig Jennings2025-10-251-1/+1
| | | | | Extend the use-package setup to include the new command `cj/drill-start` in addition to `org-drill`.
* feat:org-gcal: Add function to clear sync lock and bindingCraig Jennings2025-10-251-20/+22
| | | | | | | | | Add `cj/org-gcal-clear-sync-lock` function to allow clearing the `org-gcal` sync lock. This is useful when a sync fails and leaves the lock in place, preventing future syncs. This function can be invoked with the keybinding "C-; G". Additionally, ensure credentials are retrieved from `authinfo.gpg` before loading `org-gcal`.
* feat:dirvish: shortcuts for Google Drive, remote git:cjennings.netCraig Jennings2025-10-251-2/+4
| | | | | Include shortcuts for Google Drive in documents and add a remote access path for git at cjennings.net in the dirvish configuration.
* chore: music: remove eradio-config and update music-configCraig Jennings2025-10-252-111/+54
| | | | | | | | | Deleted eradio-config.el file as it is no longer needed. Refactored music-config.el to improve readability and maintainability by removing unused autoload directives, unnecessary eval-when-compile blocks, adjusting indentation, and enhancing the setup function for EMMS. Additionally, removed duplicate code and ensured playlist handling is more robust.
* feat:browser: Add browser configuration moduleCraig Jennings2025-10-231-0/+132
| | | | | | | Introduce `browser-config.el` to handle browser selection and configuration within Emacs. This module discovers available browsers, allows user selection through `M-x cj/choose-browser`, and persists the choice while supporting all link types.
* feat:dirvish-config: Add absolute path copy functionalityCraig Jennings2025-10-231-2/+10
| | | | | | | | Introduce the 'L' key binding to copy the absolute file path in Dirvish. Extend `cj/dired-copy-path-as-kill` function to support force copying of absolute paths with the new `force-absolute` argument. This enhances the path copying capabilities by allowing users to directly copy absolute paths when needed.
* refactor: unify and simplify key binding setupsCraig Jennings2025-10-2315-347/+330
| | | | | | | | Optimized key binding configurations across modules for consistency and reduced redundancy. Improved conditional requiring to handle errors gracefully in `music-config.el`, ensuring robustness across different machine environments. Eliminated comments clutter and adjusted function definitions to adhere to revised standards.
* refactor:org-contacts-config: Update template and keymap bindingsCraig Jennings2025-10-231-23/+23
| | | | | | | | Add birthday and website fields to the contact template while removing duplicate template code. Comment out unused org-roam linking function. Replace `define-key` and `global-set-key` with `keymap-set` and `keymap-global-set` for cleaner keymap definitions and bindings.
* refactor:org-modules: Improve org-mode configurationCraig Jennings2025-10-236-578/+293
| | | | | | | | 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.
* refactor:help-config: update keybinding functionsCraig Jennings2025-10-231-5/+2
| | | | | | Replace `global-set-key` with `keymap-global-set` for consistency and readability. Remove deferring in `helpful` and `man` use-package configurations as it's unnecessary.
* chore:keybindings: update comments and remove unused codeCraig Jennings2025-10-231-16/+2
| | | | | | Update comments in keybindings.el for clarity by removing tilde markers around key sequences. Remove unused code related to which-key initialization to streamline the configuration.
* style:host-environment: Fix quoting in docstringsCraig Jennings2025-10-231-2/+3
| | | | | Correct the quoting style in docstrings for commands using backticks instead of incorrect characters.
* refactor:font-config: update font settings and keybindingsCraig Jennings2025-10-231-9/+10
| | | | | | Add EBook font setting with specified weight and height. Change global keybinding functions to keymap-global-set for better clarity and maintainability.
* refactor:mail-config: update command declarations and keymap bindingCraig Jennings2025-10-231-2/+2
| | | | | | Change the use-package command specification for `mu4e` to use :commands for lazy loading. Update keymap binding from `define-key` to `keymap-set` for readability and maintainability.
* refactor:eshell-vterm-config): update keymap and eshell loadingCraig Jennings2025-10-231-5/+4
| | | | | | | Replace `define-key` with `keymap-set` for better key binding clarity and reliability. Switch eshell loading from `:defer .5` to `:commands (eshell)` for on-demand loading. Remove unnecessary `:defer` from `xterm-color`.
* refactor:help-utils: keymap bindings for devdocs and cj/local-archCraig Jennings2025-10-231-12/+11
| | | | | | | Replace `global-set-key` with `keymap-global-set` for consistency and improved readability. Additionally, transition devdocs commands from deferred loading to command-based setup, enhancing initialization control.
* style:media-utils: Fix indentation and change default playerCraig Jennings2025-10-231-5/+4
| | | | Correct indentation for readability. Change default player to VLC.
* docs:games-config: Update commentary on game packagesCraig Jennings2025-10-231-5/+1
| | | | | | Streamline the commentary section by removing redundant descriptions and instructions for accessing games. Focus on configuring game packages instead of listing individual games.