Subject: 24.3.50; FR: insert-char must(?) show characters visually in completion buffer

From: Jambunathan K <[email-masked]>
Date: Mon, 17 Dec 2012 19:10:34 +0530

(My NIC card went down during earlier sent.  Apologies if it results in
duplicate bug)

It will be wonderful if ucs-insert shows the characters visually in the
completion buffer.

Here is a proof-of-concept.  Install an annotation function. 

    (setq completion-extra-properties
          (list :annotation-function 'annotate-ucs-names))

    (defun annotate-ucs-names (name)
      (format "(%s)" (char-to-string (cdr (assoc-string name (ucs-names) t)))))

M-x insert-char RET will give screenshot 1.  Note the presence of
characters visually next to char names.  I would have wised to place the
the glyphs come before the description.

Now let us install a small /hack/ to minibuffer as shown below. The
result is as shown in screenshot 2, which I would much prefer.
(Ofcourse, the insertion itself wouldn't work)

Following two things emerge from this experiment.

    1. Annotation may go infront of the candidate.
    2. Annotation may provide a substitution for visual feedback etc etc.

=== modified file 'lisp/minibuffer.el'
--- lisp/minibuffer.el	2012-11-29 21:32:24 +0000
+++ lisp/minibuffer.el	2012-12-17 13:20:32 +0000
@@ -1690,7 +1690,9 @@ variables.")
             (setq completions
                   (mapcar (lambda (s)
                             (let ((ann (funcall afun s)))
-                              (if ann (list s ann) s)))
+                              ;; (if ann (list s ann) s)
+			      ann
+			      ))
                           completions)))
 
           (with-current-buffer standard-output

In GNU Emacs 24.3.50.5 (i686-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2012-12-15 on debian-6.05
Bzr revision: 111244 [email-masked]
Windowing system distributor `The X.Org Foundation', version 11.0.10707000
Important settings:
  value of $LANG: en_IN
  locale-coding-system: iso-latin-1-unix
  default enable-multibyte-characters: t