GNU bug report logs - #8897
`completion--insert-strings' clobbers user-added text properties

Previous Next

Package: emacs;

Reported by: Štěpán Němec <stepnem <at> gmail.com>

Date: Sun, 19 Jun 2011 18:28:02 UTC

Severity: normal

Tags: fixed

Fixed in version 28.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


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

From: Štěpán Němec <stepnem <at> gmail.com>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 8897 <at> debbugs.gnu.org
Subject: Re: bug#8897: `completion--insert-strings' clobbers user-added text
	properties
Date: Mon, 20 Jun 2011 10:07:41 +0200
Stefan Monnier <monnier <at> iro.umontreal.ca> writes:

>> In my particular case I define annotations as buttons (which display
>> even more detail about a completion value upon activation), so a visual
>> indication of clickability is very important for me.
>
> Currently, the completion-list-mode uses the `mouse-face' text-property
> to determine what is a completion item and what i something else (blank
> space, annotation, you name it).  So as it stands, any mouse-face you'd
> add to an annotation would confuse completion-list-mode into thinking it
> is a completion item.
>
> Maybe you could try to use the `category' text-property instead.

Well I do use the `category' property, but the button functions seem to
set up the button face automatically, which is then clobbered by
`completion--insert-strings' (which is the problem). Here's how I set up
an annotation, `n' being the number of a pull request as a string (i.e.,
the completion value itself):

#+begin_src elisp
(let ((req (assoc-default n minibuffer-completion-table)))
  (concat " "
          (propertize (plist-get req :title)
                      'fontified t
                      'button '(t)
                      'category 'default-button
                      'help-echo "RET or mouse-2 for details"
                      'pr-data req
                      'action (lambda (b) (magithub-pull-request-details
                                           (button-get b 'pr-data))))))
#+end_src

With my patch I haven't noticed any problems you mention -- clicking
or RET on the completion itself selects it, clicking or RET on the
annotation displays further details, the button face is preserved.

  Štěpán




This bug report was last modified 4 years and 271 days ago.

Previous Next


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