aboutsummaryrefslogtreecommitdiff
path: root/modules/org-contacts-config.el
Commit message (Collapse)AuthorAgeFilesLines
* feat(ui): name the operation in completing-read promptsCraig Jennings3 days1-2/+2
| | | | | | | | A picker prompt is the last thing shown before a command commits, so a bare noun leaves a mis-keyed command ambiguous. Hitting C-f8 (project agenda) instead of C-f9 (AI-vterm picker) gave the same "Project:" prompt with no signal which one was about to run. Reworded 17 prompts across 8 modules so each names the operation rather than just the thing being chosen: "Project:" becomes "Show agenda for project:", "F6:" becomes "Run tests:", the dwim-shell sub-prompts gain their context (checksum algorithm, PDF compression quality, text-to-speech voice, run dwim-shell command), the two contact pickers split into "Find contact:" and "Insert contact email:", and the dirvish ediff, org finalize, and custom-comments length/box-style prompts get the same treatment. I audited all ~124 completing-read / read-* call sites; the rest already named their operation and were left alone. These are prompt-string changes only, no logic touched.
* docs(load-graph): classify Org modulesCraig Jennings12 days1-0/+10
| | | | | | Seventh classification batch: the thirteen Org modules — config, agenda, babel, capture, contacts, drill, export, noter, refile, reveal, roam, webclipper, hugo. I annotated each header, added a Batch 7 table to the inventory, and extended the validation allowlist. 65 of 102 modules are now classified. The daily workflows (config, agenda, capture, refile, roam) keep their eager reason per the spec's Phase 6 target. Babel and contacts move to after-load; export, reveal, drill, noter, webclipper, and hugo become command-loaded. The agenda and refile idle-timer caches are recorded as the side effects the spec already tracks for cache-lifecycle work. No new hidden dependencies.
* fix(org-contacts): set org-contacts-files eagerly so launch doesn't errorCraig Jennings2026-05-211-4/+18
| | | | | | | | At startup the agenda-finalize hook ran cj/org-contacts-anniversaries-safe, which calls org-contacts-anniversaries, which calls org-contacts-files. That function messages "[org-contacts] ERROR: Your custom variable `org-contacts-files' is nil." when the variable is nil, and at that point it was nil. The value was set via the use-package :custom, which only applies when org-contacts loads, and that load is deferred behind :after (org mu4e) — later than the first agenda finalize. I set org-contacts-files eagerly at require time instead, so it's never nil by the time the hook fires. I also guarded the wrapper: org-contacts-files emits a message rather than signaling, so ignore-errors couldn't suppress it on its own. Now the call only runs when the variable is set. Three tests cover the eager set, the guard skipping when files are nil, and the wrapper running when they're set. Full suite green.
* refactor(org-contacts): remove dead boundp branchesCraig Jennings2026-04-191-16/+12
| | | | | | | | cj/org-contacts-template-name and cj/org-contacts-template-email each opened with (when (boundp 'cj/contact-name) ...) / (boundp 'cj/contact-email) to pick up a caller-supplied preset. Neither variable is ever defined, set, or let-bound anywhere in the config — the branches never ran. The (or ...) fallbacks always took over, so behavior is unchanged.
* feat: Add org-gcal dependencies and org-contacts birthday automationCraig Jennings2025-11-011-3/+41
| | | | | | | | | | | | | | | | org-gcal-config.el: - Add use-package declarations for deferred and oauth2-auto - Ensures dependencies are automatically installed on fresh systems - Fixes "Cannot open load file" errors when syncing org-contacts-config.el: - Add automatic birthday timestamp insertion via capture template - Parse YYYY-MM-DD or MM-DD birthday formats - Insert yearly repeating timestamps after properties drawer - Add NICKNAME and NOTE fields to capture template org-agenda-config.el: - Enable chime-debug mode for troubleshooting
* feat:which-key: Add descriptive labels for custom keymapsCraig Jennings2025-10-271-0/+9
| | | | | | | | | | | | 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.
* feat:org-contacts: Enhance email parsing and add testsCraig Jennings2025-10-261-80/+75
| | | | | | | | 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.
* 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.
* add missing capture template for org-contactCraig Jennings2025-10-151-2/+18
|
* changing repositoriesCraig Jennings2025-10-121-0/+205