GNU bug report logs -
#53012
28.0.90; completion--nth-completion: Throw a meaningful error
Previous Next
Reported by: Daniel Mendler <mail <at> daniel-mendler.de>
Date: Tue, 4 Jan 2022 20:14:02 UTC
Severity: normal
Found in version 28.0.90
Done: Stefan Kangas <stefan <at> marxist.se>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#53012: 28.0.90; completion--nth-completion: Throw a meaningful error
which was filed against the emacs package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 53012 <at> debbugs.gnu.org.
--
53012: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=53012
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Daniel Mendler <mail <at> daniel-mendler.de> writes:
> On 1/5/22 1:19 AM, Stefan Monnier wrote:
>> Daniel Mendler [2022-01-04 21:12:47] wrote:
>>> In the context of the GNU ELPA Vertico/Mct/Orderless/Embark ecosystem we
>>> teach users to adjust the completion style. Unfortunately
>>> completion--nth-completion is not very robust against misconfiguration.
>>> I propose to throw a more meaningful error instead of the nil error.
>>
>> Thanks, looks good.
>> Pushed to `master`.
>
> Thanks!
I'm therefore closing this bug report.
[Message part 3 (message/rfc822, inline)]
In the context of the GNU ELPA Vertico/Mct/Orderless/Embark ecosystem we
teach users to adjust the completion style. Unfortunately
completion--nth-completion is not very robust against misconfiguration.
I propose to throw a more meaningful error instead of the nil error.
Patch follows.
---
From da92169572e375facabb28b6d3c14cb2158ab1c9 Mon Sep 17 00:00:00 2001
From: Daniel Mendler <mail <at> daniel-mendler.de>
Date: Tue, 4 Jan 2022 21:08:04 +0100
Subject: [PATCH] completion--nth-completion: Throw meaningful error
If a configured completion style does not exist, throw a meaningful
error. Also make completion-styles-alist a defvar, since completion
styles like orderless extend it.
---
lisp/minibuffer.el | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 1d596694e4..ab760a42d1 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -900,7 +900,7 @@ completion-auto-help
the second failed attempt to complete."
:type '(choice (const nil) (const t) (const lazy)))
-(defconst completion-styles-alist
+(defvar completion-styles-alist
'((emacs21
completion-emacs21-try-completion completion-emacs21-all-completions
"Simple prefix-based completion.
@@ -1076,9 +1076,10 @@ completion--nth-completion
(result-and-style
(completion--some
(lambda (style)
- (let ((probe (funcall (nth n (assq style
- completion-styles-alist))
- string table pred point)))
+ (let ((probe (funcall
+ (or (nth n (assq style completion-styles-alist))
+ (error "Invalid completion style %s" style))
+ string table pred point)))
(and probe (cons probe style))))
(completion--styles md)))
(adjust-fn (get (cdr result-and-style)
'completion--adjust-metadata)))
--
2.20.1
This bug report was last modified 3 years and 133 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.