Mercurial > emacs
changeset 102958:ca1d2b3eaecc
(completion--try-word-completion): Don't disable
`partial-completion' any more. Mark the added char instead.
(completion-pcm--string->pattern): Notice chars added by
completion--try-word-completion and treat them specially.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Tue, 14 Apr 2009 02:02:30 +0000 |
parents | b145ec03f378 |
children | 08bab694065d |
files | lisp/ChangeLog lisp/minibuffer.el |
diffstat | 2 files changed, 29 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Tue Apr 14 01:27:02 2009 +0000 +++ b/lisp/ChangeLog Tue Apr 14 02:02:30 2009 +0000 @@ -1,3 +1,10 @@ +2009-04-14 Stefan Monnier <monnier@iro.umontreal.ca> + + * minibuffer.el (completion--try-word-completion): Don't disable + `partial-completion' any more. Mark the added char instead. + (completion-pcm--string->pattern): Notice chars added by + completion--try-word-completion and treat them specially. + 2009-04-13 Jason Rumney <jasonr@gnu.org> * faces.el (frame-set-background-mode): Window system frames @@ -6,13 +13,12 @@ 2009-04-13 Kenichi Handa <handa@m17n.org> - * language/japanese.el (cp932): Delete alias for - japanese-shift-jis. + * language/japanese.el (cp932): Delete alias for japanese-shift-jis. 2009-04-12 Michael Albinus <michael.albinus@gmx.de> - * net/tramp.el (tramp-do-copy-or-rename-file-directly): Overwrite - always the tmpfile. (Bug#2962). + * net/tramp.el (tramp-do-copy-or-rename-file-directly): + Overwrite always the tmpfile. (Bug#2962). 2009-04-11 Chong Yidong <cyd@stupidchicken.com> @@ -25,8 +31,8 @@ (hack-dir-local-variables): Adapt to new dir-locals-directory-cache entry format. - * international/mule-diag.el (describe-font-internal): Change - ignored argument to IGNORED. + * international/mule-diag.el (describe-font-internal): + Rename ignored argument to IGNORED. (describe-font): Elide unnecessary argument to describe-font-internal (Bug#2945). @@ -85,8 +91,7 @@ 2009-04-09 Michael Albinus <michael.albinus@gmx.de> - * net/tramp.el (tramp-file-name-handler-alist): Add - `vc-registered'. + * net/tramp.el (tramp-file-name-handler-alist): Add `vc-registered'. (tramp-handle-vc-registered ): New defun. (Bug#1741). * net/tramp-cache.el (tramp-flush-directory-property): Use the
--- a/lisp/minibuffer.el Tue Apr 14 01:27:02 2009 +0000 +++ b/lisp/minibuffer.el Tue Apr 14 02:02:30 2009 +0000 @@ -607,13 +607,17 @@ ;; If completion finds next char not unique, ;; consider adding a space or a hyphen. (when (= (length string) (length (car comp))) - (let ((exts '(" " "-")) + ;; Mark the added char with the `completion-word' property, so it + ;; can be handled specially by completion styles such as + ;; partial-completion. + ;; We used to remove `partial-completion' from completion-styles + ;; instead, but it was too blunt, leading to situations where SPC + ;; was the only insertable char at point but minibuffer-complete-word + ;; refused inserting it. + (let ((exts (mapcar (lambda (str) (propertize str 'completion-try-word t)) + '(" " "-"))) (before (substring string 0 point)) (after (substring string point)) - ;; Disable partial-completion for this. - (completion-styles - (or (remove 'partial-completion completion-styles) - completion-styles)) tem) (while (and exts (not (consp tem))) (setq tem (completion-try-completion @@ -1381,7 +1385,13 @@ (p 0) (p0 0)) - (while (setq p (string-match-p completion-pcm--delim-wild-regex string p)) + (while (and (setq p (string-match-p completion-pcm--delim-wild-regex + string p)) + ;; If the char was added by minibuffer-complete-word, then + ;; don't treat it as a delimiter, otherwise "M-x SPC" + ;; ends up inserting a "-" rather than listing + ;; all completions. + (not (get-text-property p 'completion-try-word string))) (push (substring string p0 p) pattern) (if (eq (aref string p) ?*) (progn