aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorSpencer Baugh2024-08-26 10:12:51 -0400
committerEli Zaretskii2024-09-14 12:24:08 +0300
commit3cda1fdc3b755dd329617cabc266e2b86894d0cb (patch)
tree4e575f4fdbacb5a47f351a418fc21e94cdd33958 /test
parent57d93d0259a3cc9a180b1bcb3cec3f670485f82c (diff)
downloademacs-3cda1fdc3b755dd329617cabc266e2b86894d0cb.tar.gz
emacs-3cda1fdc3b755dd329617cabc266e2b86894d0cb.zip
Correctly include fixed strings before a prefix wildcard in PCM
In 03ac16ece40ba3e3ba805d6a61cc457d84bf3792 I fixed a bug with the PCM implementation of substring completion, relating to the handling of PCM wildcards. However, this fix was incomplete. This change completes the fix by also including a fixed string if it appears before a 'prefix' wildcard, even if 'try-completion' doesn't discover that fixed string grows to a unique completion. I discovered this bug while working on enhancements to PCM completion related to 'completion-pcm-leading-wildcard'. * lisp/minibuffer.el (completion-pcm--merge-completions): Include fixed strings before 'prefix wildcard. (Bug#72819) * test/lisp/minibuffer-tests.el (completion-substring-test-5): Add a test for this behavior.
Diffstat (limited to 'test')
-rw-r--r--test/lisp/minibuffer-tests.el17
1 files changed, 12 insertions, 5 deletions
diff --git a/test/lisp/minibuffer-tests.el b/test/lisp/minibuffer-tests.el
index df36bce4634..38c2b8c4552 100644
--- a/test/lisp/minibuffer-tests.el
+++ b/test/lisp/minibuffer-tests.el
@@ -306,13 +306,20 @@
306 6))) 306 6)))
307 307
308(ert-deftest completion-substring-test-5 () 308(ert-deftest completion-substring-test-5 ()
309 ;; merge-completions needs to work correctly when 309 ;; Normally a `prefix' wildcard ignores the common prefix to its
310 ;; left, since it only grows the common suffix; but if that common
311 ;; prefix is also a common suffix, it should be included.
310 (should (equal 312 (should (equal
311 (completion-pcm--merge-completions '("ab" "sab") '(prefix "b")) 313 (completion-pcm--merge-try '(prefix "b") '("ab" "sab") "" "")
312 '("b" "a" prefix))) 314 '("ab" . 2)))
313 (should (equal 315 (should (equal
314 (completion-pcm--merge-completions '("ab" "ab") '(prefix "b")) 316 (completion-pcm--merge-try '(prefix "b") '("ab" "ab") "" "")
315 '("b" "a"))) 317 '("ab" . 2)))
318 ;; When there's a fixed string before `prefix', that fixed string
319 ;; should always be included.
320 (should (equal
321 (completion-pcm--merge-try '("a" prefix "b") '("axb" "ayb") "" "")
322 '("ab" . 2)))
316 ;; substring completion should successfully complete the entire string 323 ;; substring completion should successfully complete the entire string
317 (should (equal 324 (should (equal
318 (completion-substring-try-completion "b" '("ab" "ab") nil 0) 325 (completion-substring-try-completion "b" '("ab" "ab") nil 0)