Package: emacs;
Reported by: Eli Barzilay <eli <at> barzilay.org>
Date: Mon, 17 Aug 2009 14:35:04 UTC
Severity: normal
Done: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: help-debbugs <at> gnu.org (Emacs bug Tracking System) To: Eli Barzilay <eli <at> barzilay.org> Subject: bug#4176 closed by Stefan Monnier <monnier <at> IRO.UMontreal.CA> (Re: bug#4176: 23.1; partial completions) Date: Thu, 20 Aug 2009 20:30:29 +0000
[Message part 1 (text/plain, inline)]
This is an automatic notification regarding your bug report which was filed against the emacs package: #4176: 23.1; partial completions It has been closed by Stefan Monnier <monnier <at> IRO.UMontreal.CA>. Their explanation is attached below along with your original report. If this explanation is unsatisfactory and you have not received a better one in a separate message then please contact Stefan Monnier <monnier <at> IRO.UMontreal.CA> by replying to this email. -- 4176: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=4176 Emacs Bug Tracking System Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Stefan Monnier <monnier <at> IRO.UMontreal.CA> To: Eli Barzilay <eli <at> barzilay.org> Subject: Re: bug#4176: 23.1; partial completions Date: Tue, 18 Aug 2009 15:11:54 -0400>>>>> "Eli" == Eli Barzilay <eli <at> barzilay.org> writes: > 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. Removing the second (goto-char (field-end)) in minibuffer-complete was indeed a correct solution, in the end. I've installed a sligtly different patch so that the point-motion is consolidated inside completion--do-completion. See below the patch I installed. > 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. The "sole completion" message is correct, given the default value of completion-styles. > Another related problem -- the doc string for `completion-styles' > doesn't say anything about what's allowed (should mention > `completion-styles-alist'). Thanks, it does mention it now. > 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. The functions are low-level, so the user shouldn't be expected to look at them and/or their docstrings to find out what the style does. The name of the style should hopefully be sufficient. Stefan --- minibuffer.el.~1.77.~ 2009-08-04 14:03:35.000000000 -0400 +++ minibuffer.el 2009-08-18 15:07:35.000000000 -0400 @@ -308,7 +308,8 @@ ALL-COMPLETIONS is the function that lists the completions.") (defcustom completion-styles '(basic partial-completion emacs22) - "List of completion styles to use." + "List of completion styles to use. +The available styles are listed in `completion-styles-alist'." :type `(repeat (choice ,@(mapcar (lambda (x) (list 'const (car x))) completion-styles-alist))) :group 'minibuffer @@ -388,7 +389,9 @@ (cond ((null comp) (ding) (minibuffer-message "No match") (minibuffer--bitset nil nil nil)) - ((eq t comp) (minibuffer--bitset nil nil t)) ;Exact and unique match. + ((eq t comp) + (goto-char (field-end)) + (minibuffer--bitset nil nil t)) ;Exact and unique match. (t ;; `completed' should be t if some completion was done, which doesn't ;; include simply changing the case of the entered string. However, @@ -462,11 +465,9 @@ (case (completion--do-completion) (#b000 nil) - (#b001 (goto-char (field-end)) - (minibuffer-message "Sole completion") + (#b001 (minibuffer-message "Sole completion") t) - (#b011 (goto-char (field-end)) - (minibuffer-message "Complete, but not unique") + (#b011 (minibuffer-message "Complete, but not unique") t) (t t))))) @@ -694,11 +695,9 @@ (interactive) (case (completion--do-completion 'completion--try-word-completion) (#b000 nil) - (#b001 (goto-char (field-end)) - (minibuffer-message "Sole completion") + (#b001 (minibuffer-message "Sole completion") t) - (#b011 (goto-char (field-end)) - (minibuffer-message "Complete, but not unique") + (#b011 (minibuffer-message "Complete, but not unique") t) (t t)))
[Message part 3 (message/rfc822, inline)]
From: Eli Barzilay <eli <at> barzilay.org> To: bug-gnu-emacs <at> gnu.org Subject: 23.1; partial completions Date: Mon, 17 Aug 2009 10:30:10 -0400With 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>
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.