Round 170: Marginalia, Orderless, Prescient, Hotfuzz commands

ober

5e8294cb6d7e50352b7d562a355bc98b6becdc9c

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 66241b7..19928a2 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | ebib-import-file | :orange_circle: | Import file into Ebib |
 | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer |
 
+### Round 170 — Marginalia, Orderless, Prescient, Hotfuzz
+
+| Feature | Status | Notes |
+|---|---|---|
+| marginalia-mode | :orange_circle: | Toggle rich annotations in minibuffer |
+| marginalia-cycle | :orange_circle: | Cycle marginalia annotation style |
+| marginalia-classify-by-command-name | :orange_circle: | Classify candidates by command name |
+| marginalia-classify-by-prompt | :orange_circle: | Classify candidates by prompt text |
+| orderless-define-completion-style | :orange_circle: | Define orderless completion style |
+| orderless-compile | :orange_circle: | Compile orderless pattern |
+| orderless-highlight-matches | :orange_circle: | Highlight orderless matches |
+| orderless-filter | :orange_circle: | Filter candidates with orderless |
+| prescient-persist-mode | :orange_circle: | Persist prescient frequency data |
+| prescient-toggle-fuzzy | :orange_circle: | Toggle fuzzy matching in prescient |
+| prescient-sort-full-match | :orange_circle: | Sort by full match in prescient |
+| prescient-reset-frequency | :orange_circle: | Reset prescient frequency data |
+| hotfuzz-mode | :orange_circle: | Toggle hotfuzz completion |
+| hotfuzz-highlight | :orange_circle: | Highlight hotfuzz matches |
+| hotfuzz-all-completions | :orange_circle: | Compute all hotfuzz completions |
+| hotfuzz-filter | :orange_circle: | Filter with hotfuzz algorithm |
+| fussy-mode | :orange_circle: | Toggle fussy completion scoring |
+| fussy-score | :orange_circle: | Compute fussy score |
+| flx-score | :orange_circle: | Compute flx flex score |
+| flx-ido-mode | :orange_circle: | Toggle flx scoring in ido |
+
 ### Round 169 — Nerd-icons, All-the-icons, SVG-lib, Ligature
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 84d410b..07ffe45 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -16724,3 +16724,53 @@
     (if (mode-enabled? app 'global-ligature)
       (echo-message! echo "Global ligature mode enabled")
       (echo-message! echo "Global ligature mode disabled"))))
+
+;; Round 170 — Marginalia, Orderless, Prescient, Hotfuzz (batch 2)
+(def (cmd-prescient-sort-full-match app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Prescient: sorting by full match")))
+
+(def (cmd-prescient-reset-frequency app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Prescient: frequency data reset")))
+
+(def (cmd-hotfuzz-mode app)
+  (let* ((echo (app-state-echo app)))
+    (toggle-mode! app 'hotfuzz)
+    (if (mode-enabled? app 'hotfuzz)
+      (echo-message! echo "Hotfuzz mode enabled")
+      (echo-message! echo "Hotfuzz mode disabled"))))
+
+(def (cmd-hotfuzz-highlight app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Hotfuzz: highlighting matches")))
+
+(def (cmd-hotfuzz-all-completions app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Hotfuzz: computing all completions")))
+
+(def (cmd-hotfuzz-filter app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Hotfuzz: filtering candidates")))
+
+(def (cmd-fussy-mode app)
+  (let* ((echo (app-state-echo app)))
+    (toggle-mode! app 'fussy)
+    (if (mode-enabled? app 'fussy)
+      (echo-message! echo "Fussy mode enabled")
+      (echo-message! echo "Fussy mode disabled"))))
+
+(def (cmd-fussy-score app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Fussy: computing score")))
+
+(def (cmd-flx-score app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Flx: computing flex score")))
+
+(def (cmd-flx-ido-mode app)
+  (let* ((echo (app-state-echo app)))
+    (toggle-mode! app 'flx-ido)
+    (if (mode-enabled? app 'flx-ido)
+      (echo-message! echo "Flx-ido mode enabled")
+      (echo-message! echo "Flx-ido mode disabled"))))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 10df513..1aedec7 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -17341,3 +17341,50 @@
 (def (cmd-all-the-icons-icon-for-buffer app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "All-the-icons: showing icon for buffer")))
+
+;; Round 170 — Marginalia, Orderless, Prescient, Hotfuzz (batch 1)
+(def (cmd-marginalia-mode app)
+  (let* ((echo (app-state-echo app)))
+    (toggle-mode! app 'marginalia)
+    (if (mode-enabled? app 'marginalia)
+      (echo-message! echo "Marginalia mode enabled")
+      (echo-message! echo "Marginalia mode disabled"))))
+
+(def (cmd-marginalia-cycle app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Marginalia: cycling annotation style")))
+
+(def (cmd-marginalia-classify-by-command-name app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Marginalia: classifying by command name")))
+
+(def (cmd-marginalia-classify-by-prompt app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Marginalia: classifying by prompt")))
+
+(def (cmd-orderless-define-completion-style app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Orderless: completion style defined")))
+
+(def (cmd-orderless-compile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Orderless: compiling pattern")))
+
+(def (cmd-orderless-highlight-matches app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Orderless: highlighting matches")))
+
+(def (cmd-orderless-filter app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Orderless: filtering candidates")))
+
+(def (cmd-prescient-persist-mode app)
+  (let* ((echo (app-state-echo app)))
+    (toggle-mode! app 'prescient-persist)
+    (if (mode-enabled? app 'prescient-persist)
+      (echo-message! echo "Prescient persist mode enabled")
+      (echo-message! echo "Prescient persist mode disabled"))))
+
+(def (cmd-prescient-toggle-fuzzy app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Prescient: toggled fuzzy matching")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 4ca9c63..17e1594 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -5003,4 +5003,25 @@
   (register-command! 'nerd-icons-ibuffer-mode cmd-nerd-icons-ibuffer-mode)
   (register-command! 'all-the-icons-completion-mode cmd-all-the-icons-completion-mode)
   (register-command! 'global-ligature-mode cmd-global-ligature-mode)
+  ;; Round 170 — Marginalia, Orderless, Prescient, Hotfuzz
+  (register-command! 'marginalia-mode cmd-marginalia-mode)
+  (register-command! 'marginalia-cycle cmd-marginalia-cycle)
+  (register-command! 'marginalia-classify-by-command-name cmd-marginalia-classify-by-command-name)
+  (register-command! 'marginalia-classify-by-prompt cmd-marginalia-classify-by-prompt)
+  (register-command! 'orderless-define-completion-style cmd-orderless-define-completion-style)
+  (register-command! 'orderless-compile cmd-orderless-compile)
+  (register-command! 'orderless-highlight-matches cmd-orderless-highlight-matches)
+  (register-command! 'orderless-filter cmd-orderless-filter)
+  (register-command! 'prescient-persist-mode cmd-prescient-persist-mode)
+  (register-command! 'prescient-toggle-fuzzy cmd-prescient-toggle-fuzzy)
+  (register-command! 'prescient-sort-full-match cmd-prescient-sort-full-match)
+  (register-command! 'prescient-reset-frequency cmd-prescient-reset-frequency)
+  (register-command! 'hotfuzz-mode cmd-hotfuzz-mode)
+  (register-command! 'hotfuzz-highlight cmd-hotfuzz-highlight)
+  (register-command! 'hotfuzz-all-completions cmd-hotfuzz-all-completions)
+  (register-command! 'hotfuzz-filter cmd-hotfuzz-filter)
+  (register-command! 'fussy-mode cmd-fussy-mode)
+  (register-command! 'fussy-score cmd-fussy-score)
+  (register-command! 'flx-score cmd-flx-score)
+  (register-command! 'flx-ido-mode cmd-flx-ido-mode)
 )