Subject: 24.0.92; completion candidates consisting of newline chars

From: Michael Heerdegen <[email-masked]>
Date: Fri, 27 Jan 2012 02:55:24 +0100

Hello,

this is an enhancement request concerning the appearance of completion
candidates including newline characters, especially those consisting of
only newlines, in the *Completions* buffer.

This issue was discussed in gmane.emacs.devel in 2012/01.

Try this for example:

(completing-read "foo: " '(("aaaa") ("bbbb") ("\n") ("cccc")))

The "\n" candidate is appearing as an empty line in *Completions*, which
is confusing for the user.  The "\n" candidate also gets no visible
mouse-face when you move the mouse over "it" in *Completions*, so the
user doesn't see where to click to select it.

If you try that:

(completing-read "foo: " '("xxx" ("a\n\nb")))

the whole area between a and b gets a mouse-face (from the left to the
right border of the window), but only if the mouse is exactly over the a
or the b. 

There is a discrepancy between what gets highlighted, and where the
mouse pointer must be to get the highlighting shown.  In the
first example, you can select the newline candidate when you
click near the end of the line.  So, also the space where the
highlighting is "activated" doesn't correspond to the space where
the candidate can be selected.

To sum up, such problematic selectable newlines probably need to be
displayed specially, using some meaningful character glyph (that needs
to be displayable on all TTYs, btw).

Thanks,

Michael.

In GNU Emacs 24.0.92.1 (i486-pc-linux-gnu, GTK+ Version 3.2.3)
 of 2012-01-26 on zelenka, modified by Debian
 (emacs-snapshot package, version 2:20120126-1)
Windowing system distributor `The X.Org Foundation', version 11.0.11103901
configured using `configure  '--build' 'i486-linux-gnu' '--host' 'i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/24.0.92/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.0.92/site-lisp:/usr/share/emacs/site-lisp' '--without-compress-info' '--with-crt-dir=/usr/lib/i386-linux-gnu/' '--with-x=yes' '--with-x-toolkit=gtk3' '--with-imagemagick=yes' 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2''