Subject: bug#4176: 23.1; partial completions

From: Eli Barzilay <[email-masked]>
Date: Mon, 17 Aug 2009 10:30:10 -0400

With the default settings, enter

  C-h f select-window TAB

and Emacs will tell you that this is the only completion.

Trying this with `sele-wind TAB' does a partial completion to
`select-window' and moves the cursor to the right place -- a
second TAB pops up the completions (showing both functions) saying
"complete but not unique" *but* moves the cursor to the end.

It would be very nice if the cursor was always at the right place, and
it would not say that this is the only completion.  Doing

  (setq completion-styles '(partial-completion))

is fixes the message, but the cursor still moves to the end.

Another related problem -- the doc string for `completion-styles'
doesn't say anything about what's allowed (should mention
`completion-styles-alist').  Also, the functions that are used in
`completion-styles-alist' are not documented -- which leaves the user
with no explanation at all about the available completion styles.

In GNU Emacs 23.1.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.10.14)
 of 2009-08-01 on winooski.ccs.neu.edu
Windowing system distributor `The X.Org Foundation', version 11.0.10300000
configured using `configure  '--prefix=/home/eli/bin/local/emacs-dir''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: POSIX
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US
  value of $XMODIFIERS: nil
  locale-coding-system: iso-latin-1-unix
  default-enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  whitespace-mode: t
  cua-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  temp-buffer-resize-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
l e c t <tab> <tab> <tab> <tab> <tab> <tab> <backspace> 
<backspace> <backspace> <backspace> <backspace> <backspace> 
<backspace> <backspace> <backspace> <backspace> <backspace> 
- w i <tab> <tab> <C-left> <end> <tab> <tab> <tab> 
<tab> <tab> <tab> <C-left> <left> l <end> <tab> <tab> 
<tab> <tab> <tab> <tab> <tab> C-g C-g C-g <up> <left> 
<left> <delete> <up> ; <f2> <down> <down> <right> C-x 
C-e C-h f s e l e c <tab> - w i n <tab> <tab> <tab> 
<tab> <C-left> <C-left> <C-right> <tab> <C-left> <left> 
<tab> <tab> <tab> <tab> <tab> <tab> <tab> <tab> <tab> 
<C-left> <left> <tab> <tab> <tab> <tab> <tab> <tab> 
<tab> <tab> <tab> <tab> <C-left> <C-left> <C-right> 
<tab> <tab> <tab> <tab> <tab> <tab> C-g <up> <left> 
<left> ; <left> <up> <delete> <up> <delete> <f2> <down> 
<down> <down> <end> C-x C-e <up> C-h f s e l e - w 
i n d <tab> <tab> <tab> <tab> <tab> <tab> <tab> <tab> 
<tab> <tab> <tab> <tab> <tab> <tab> <tab> <tab> <tab> 
<tab> <tab> <C-left> <left> <tab> <tab> <tab> <tab> 
<tab> <tab> <tab> <tab> <tab> <tab> <tab> <tab> <tab> 
<tab> <left> <left> <C-left> <left> <tab> <tab> <tab> 
<tab> <tab> <tab> <tab> C-g C-g C-h f s e l - w i n 
<tab> <tab> <tab> <tab> <tab> <tab> <tab> <tab> C-g 
C-g <up> <C-left> <up> ; <f2> <down> <down> <down> 
<end> C-x C-e C-h f s e l e c t - w i n d o <C-left> 
<C-left> <C-right> <backspace> <backspace> <tab> <tab> 
<tab> <tab> <tab> <tab> <tab> <tab> <tab> <tab> <tab> 
<tab> <tab> <tab> <tab> <tab> <tab> C-g C-g C-h f s 
e l - w i n <tab> <tab> <tab> <tab> <tab> <tab> <tab> 
<tab> C-g C-g M-x r e p o r t - w i n <backspace> <backspace> 
e <backspace> <backspace> e m a - b u <tab> <retur
n>