aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-13 12:17:58 -0500
committerCraig Jennings <c@cjennings.net>2026-06-13 12:17:58 -0500
commit2427916c7fb1b65b89b9a3200d067413c85f94e8 (patch)
treec5bbf55c4a35b80d01898e63b26b265debe57d85
parentcd9e1dd61e53c13e2a6f56633fbaa43853932ab8 (diff)
downloaddotemacs-2427916c7fb1b65b89b9a3200d067413c85f94e8.tar.gz
dotemacs-2427916c7fb1b65b89b9a3200d067413c85f94e8.zip
fix(completion): let orderless match, prescient sort
vertico-prescient-mode defaulted vertico-prescient-enable-filtering to t, which overrode completion-styles to prescient inside vertico sessions and left the orderless config dead where it mattered. Setting it nil restores orderless space-separated out-of-order matching while prescient keeps doing the sorting.
-rw-r--r--modules/selection-framework.el5
-rw-r--r--todo.org9
2 files changed, 13 insertions, 1 deletions
diff --git a/modules/selection-framework.el b/modules/selection-framework.el
index 1f5d6dfc5..b136ad154 100644
--- a/modules/selection-framework.el
+++ b/modules/selection-framework.el
@@ -251,6 +251,11 @@
(use-package vertico-prescient
:demand t
+ :custom
+ ;; orderless does the matching; prescient only sorts. Without this,
+ ;; vertico-prescient-mode's default filtering overrides completion-styles to
+ ;; prescient inside vertico sessions, leaving the orderless config above dead.
+ (vertico-prescient-enable-filtering nil)
:config
(vertico-prescient-mode))
diff --git a/todo.org b/todo.org
index 7f1054036..2a12cadaa 100644
--- a/todo.org
+++ b/todo.org
@@ -950,8 +950,10 @@ From the 2026-06 config audit, =modules/help-config.el=:
** TODO [#B] Stale elpa gptel shadows the local fork — likely the gptel-magit root :bug:quick:solo:
=elpa/gptel-0.9.8.5= is still installed alongside the =~/code/gptel= fork (=ai-config.el:383=); package activation puts the elpa dir + autoloads on load-path, so which copy wins depends on ordering, and a mixed load (fork .el + elpa .elc) produces "impossible" bugs. =gptel-magit= (elpa) declares gptel as a dependency, so IT may be pulling the stale copy — check this first when working the open "[#B] Investigate gptel-magit not working properly" task. Fix: =package-delete= the elpa gptel + remove from .localrepo so the fork is the only copy on disk. From the 2026-06 config audit.
-** TODO [#B] vertico-prescient clobbers orderless filtering :bug:quick:solo:
+** DONE [#B] vertico-prescient clobbers orderless filtering :bug:quick:solo:
+CLOSED: [2026-06-13 Sat]
=modules/selection-framework.el:250= — =vertico-prescient-mode= defaults =vertico-prescient-enable-filtering t=, overriding =completion-styles= to prescient inside vertico sessions; the orderless config at :151 is dead exactly where it matters. Set =vertico-prescient-enable-filtering nil= — orderless matches, prescient sorts (and this resolves the dead =vertico-sort-function= finding in the buffer/window-libs child the other way around). From the 2026-06 config audit.
+Fixed 2026-06-13: added =:custom (vertico-prescient-enable-filtering nil)= to the vertico-prescient use-package. Live daemon confirmed filtering nil + =completion-styles (orderless basic)= with the mode re-enabled — orderless matches, prescient sorts. No ERT test (framework defcustom, unexercisable in the stubbed-use-package harness); the in-session matching check is a VERIFY under Manual testing and validation.
** TODO [#B] 2026-06 full config audit — findings backlog :refactor:
Module-by-module review of all 121 modules + init/early-init, holistic passes (startup/perf, stability, UX consistency, package strategy), and spin-offs into pearl, chime, emacs-wttrin. Method: parallel read-only review agents per module group; key claims spot-verified (incl. against the live daemon) before filing. Run 2026-06-11/12, COMPLETE. Tally: ~165 module findings + ~40 holistic + 30 spin-off ≈ 235 total; 40 high-impact bugs filed as standalone tasks above this parent; the rest live in the group children below. Spin-off findings delivered as inbox handoffs to pearl, chime, and emacs-wttrin (2026-06-12-0057). Start with the synthesis child below for the recommended attack order.
@@ -4338,6 +4340,11 @@ From the 2026-06-11 messenger-unification brainstorm. Google Voice has no offici
** TODO Manual testing and validation
Exercised once the phases above land.
+*** VERIFY orderless matching works inside a vertico session
+What we're verifying: vertico-prescient no longer overrides completion-styles, so orderless's space-separated, out-of-order matching is live in the minibuffer (prescient still sorts). Fixed in modules/selection-framework.el, applied live in the daemon.
+- Run a command with a vertico minibuffer (e.g. M-x, or C-x b)
+- Type two space-separated fragments out of order, e.g. "mode buf" to match "switch-to-buffer-other-... mode" style candidates
+Expected: candidates match on both fragments regardless of order (orderless), and the ordering still reflects prescient frecency. Before the fix, space-separated out-of-order input would not match.
*** VERIFY C-; b d diffs, C-; b D deletes
What we're verifying: the buffer-and-file keymap now puts diff on the easy lowercase key and the destructive delete on the capital. Swapped in modules/custom-buffer-file.el and re-bound live in the daemon.
- Open a file buffer and edit it without saving