GNU bug report logs - #67112
30.0.50; [PATCH] Fix completion annotations when using 'pcomplete-here-using-help'

Previous Next

Package: emacs;

Reported by: Jim Porter <jporterbugs <at> gmail.com>

Date: Sat, 11 Nov 2023 21:44:02 UTC

Severity: normal

Tags: patch

Found in version 30.0.50

Done: Jim Porter <jporterbugs <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Jim Porter <jporterbugs <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.0.50; [PATCH] Fix completion annotations when using
 'pcomplete-here-using-help'
Date: Sat, 11 Nov 2023 13:43:04 -0800
[Message part 1 (text/plain, inline)]
X-Debbugs-Cc: monnier <at> iro.umontreal.ca

Starting from "emacs -Q -f shell" (or eshell, doesn't matter) on a 
GNU/Linux system, type "cp -" and then press TAB. The completions buffer 
shows a list of completions. However, they don't show the annotations, 
which in this case should be a helpful string for any option taking an 
argument.

For example, one completion is "--backup". This takes an optional 
"CONTROL" argument, which should show in the completions list. However, 
it doesn't. With the attached patch, the completions list now correctly 
shows "--backup[=CONTROL]".

This was happening because 'pcomplete-here-using-help' passes along the 
annotation as a text property on the first character of each completion 
candidate. That property failed to propagate through 
'completion-table-with-quoting' though. So the fix is to propagate text 
properties on the first character of the candidate, since that's already 
a convention in a couple places with completion tables.

(There's a larger question about whether 'pcomplete-here-using-help' is 
doing this in the right way. Maybe instead of returning a list of 
candidates with text properties for annotations and such, it should 
instead return a programmed completion table that specifies an 
'annotation-function' for the table's metadata. However, that's both a 
much more invasive change, and I think we'd still want this patch to 
help improve other parts of completion tables. For example, with this 
patch, 'completion-table-merge' could annotate which table each 
candidate is from, and then we could resolve the FIXME in that function.)
[0001-Forward-completion-text-properties-when-using-comple.patch (text/plain, attachment)]

This bug report was last modified 1 year and 222 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.