diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-15 15:11:02 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-15 15:11:02 -0500 |
| commit | 5cc281261f521b1f78a32be584164d09aa0a0cd3 (patch) | |
| tree | 4872e69a03b7dc672c1c202d5c4479710f19acee | |
| parent | ebbab7a7e2f9e8a1e989879499f8cfc2101dca8d (diff) | |
| download | dotemacs-5cc281261f521b1f78a32be584164d09aa0a0cd3.tar.gz dotemacs-5cc281261f521b1f78a32be584164d09aa0a0cd3.zip | |
chore(todo): close <cj universal yasnippet project
All four sub-tasks complete, parent advances to DONE + CLOSED:
- Wired yasnippet for universal availability (yas-global-mode + the fundamental-mode extras hook).
- Created the <cj snippet at snippets/fundamental-mode/.
- Removed the org-tempo cj entry.
- Audited existing per-mode snippets — all 28 are correctly mode-scoped, no movers.
Sub-task headings landed as dated event-log entries per todo-format.md's depth-based completion rule. The parent stays task-shaped at level-2 for agenda visibility.
| -rw-r--r-- | todo.org | 13 |
1 files changed, 7 insertions, 6 deletions
@@ -472,7 +472,8 @@ Per-language test discovery: **Ordering:** Do this after the coverage-config work ships. No churn mid-flight. -** TODO [#B] Convert <cj structure template to universal yasnippet :feature:refactor: +** DONE [#B] Convert <cj structure template to universal yasnippet :feature:refactor: +CLOSED: [2026-05-15 Fri] Today =<cj= + TAB only expands in org-mode, via =org-structure-template-alist= in =modules/org-babel-config.el:144=. The expansion is the literal text: @@ -484,7 +485,7 @@ Today =<cj= + TAB only expands in org-mode, via =org-structure-template-alist= i A Claude skill scans for this exact marker across files using a Python helper, so the marker needs to be insertable identically in any buffer (elisp, shell, plain text, anything) regardless of major mode. Language-aware variants (per-mode comment syntax) would break the script. -*** TODO [#B] Wire yasnippet for universal availability :refactor: +*** 2026-05-15 Fri @ 12:58:08 -0500 Wired yasnippet for universal availability In =modules/prog-general.el= replace =:hook (prog-mode . yas-minor-mode)= with =(yas-global-mode 1)= in =:config=, so yasnippet activates in every buffer rather than only =prog-mode= ones. Also add a hook that turns on =fundamental-mode= as an extra mode in every buffer so the universal snippet table is always consulted: @@ -495,7 +496,7 @@ In =modules/prog-general.el= replace =:hook (prog-mode . yas-minor-mode)= with = Acceptance: =M-: yas-minor-mode= returns =t= in =org-mode=, =text-mode=, =fundamental-mode=, and any =prog-mode= buffer. =yas-extra-modes= contains =fundamental-mode= in every buffer. -*** TODO [#B] Create the <cj fundamental-mode snippet :feature: +*** 2026-05-15 Fri @ 12:58:08 -0500 Created the <cj fundamental-mode snippet Create =snippets/fundamental-mode/cj-comment-block= (or similar filename) with: @@ -511,7 +512,7 @@ $0 Acceptance: in a scratch buffer, in a =.el= buffer, in a =.sh= buffer, in an =org= buffer — typing =<cj= and hitting TAB expands to the three-line block with the cursor on the empty middle line. -*** TODO [#B] Remove the org-tempo cj entry :refactor: +*** 2026-05-15 Fri @ 12:58:08 -0500 Removed the org-tempo cj entry Once the yasnippet handles every mode, the =org-structure-template-alist= entry at =modules/org-babel-config.el:144= becomes redundant in org-mode and creates a TAB-handler ordering question. Remove the line: @@ -521,9 +522,9 @@ Once the yasnippet handles every mode, the =org-structure-template-alist= entry Verify =<cj= + TAB still expands in =org-mode= afterwards (now via yasnippet rather than org-tempo). -*** TODO [#C] Audit existing per-mode snippets for cross-mode use :refactor: +*** 2026-05-15 Fri @ 15:08:48 -0500 Audited existing per-mode snippets for cross-mode use -While the universal-yas plumbing is fresh, walk =snippets/*-mode/= and decide for each snippet: does this belong in =fundamental-mode/= instead? Likely candidates: =visibility-showall=, =org-export-md=, =org_filetag_topic= — these are arguably org-only. Most of the c-mode / sh-mode / emacs-lisp-mode snippets are correctly mode-scoped. Spend ≤30 minutes; don't over-engineer. +Walked =snippets/c-mode/=, =/emacs-lisp-mode/=, =/eshell-mode/=, =/html-ts-mode/=, =/org-mode/=, =/sh-mode/=. Read the body of every snippet. Conclusion: no movers — all 28 existing per-mode snippets contain mode-specific syntax (C =int main=, elisp =defun=, shell =printf= / =[ -f $1 ]=, HTML tags, org =#+STARTUP:= / =:PROPERTIES:= drawers, etc.) and belong where they are. =snippets/fundamental-mode/= correctly holds only the universal =cj-comment-block= marker. ** TODO [#B] Review and rebind M-S- keybindings :refactor: |
