emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/lisp ChangeLog minibuffer.el


From: Stefan Monnier
Subject: [Emacs-diffs] emacs/lisp ChangeLog minibuffer.el
Date: Sun, 06 Dec 2009 01:25:47 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Stefan Monnier <monnier>        09/12/06 01:25:46

Modified files:
        lisp           : ChangeLog minibuffer.el 

Log message:
        (minibuffer-complete-and-exit): Don't replace the
        minibuffer's content with itself.
        Fold the confirm-after-completion case into the `confirm' case.
        (completion-pcm-word-delimiters): Add : and / to the delimiters.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/ChangeLog?cvsroot=emacs&r1=1.16837&r2=1.16838
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/minibuffer.el?cvsroot=emacs&r1=1.102&r2=1.103

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/lisp/ChangeLog,v
retrieving revision 1.16837
retrieving revision 1.16838
diff -u -b -r1.16837 -r1.16838
--- ChangeLog   6 Dec 2009 00:42:19 -0000       1.16837
+++ ChangeLog   6 Dec 2009 01:25:41 -0000       1.16838
@@ -1,3 +1,10 @@
+2009-12-06  Stefan Monnier  <address@hidden>
+
+       * minibuffer.el (minibuffer-complete-and-exit): Don't replace the
+       minibuffer's content with itself.
+       Fold the confirm-after-completion case into the `confirm' case.
+       (completion-pcm-word-delimiters): Add : and / to the delimiters.
+
 2009-12-06  Kevin Ryde  <address@hidden>
 
        * ffap.el (ffap-rfc-path): Make this a defcustom since
@@ -22,8 +29,8 @@
        * bindings.el (complete-symbol): Call semantic-ia-complete-symbol
        if possible.
 
-       * cedet/semantic/ia.el (semantic-ia-complete-symbol): Make
-       argument optional.
+       * cedet/semantic/ia.el (semantic-ia-complete-symbol):
+       Make argument optional.
 
        * shell.el (shell): Require ansi-color (Bug#5113).
 
@@ -82,12 +89,11 @@
        (bibtex-field-braces-alist, bibtex-field-strings-alist)
        (bibtex-field-re-init): Replace only space characters by regexp
        for whitespace.
-       (bibtex-generate-url-list, bibtex-cite-matcher-alist): Fix
-       docstring.
+       (bibtex-generate-url-list, bibtex-cite-matcher-alist): Fix docstring.
        (bibtex-initialize): Also update bibtex-strings.
        (bibtex-kill-field): Preserve white space at end of entry.
-       (bibtex-kill-entry, bibtex-yank-pop, bibtex-insert-kill): Update
-       bibtex-reference-keys.
+       (bibtex-kill-entry, bibtex-yank-pop, bibtex-insert-kill):
+       Update bibtex-reference-keys.
 
 2009-12-05  Stefan Monnier  <address@hidden>
 

Index: minibuffer.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/minibuffer.el,v
retrieving revision 1.102
retrieving revision 1.103
diff -u -b -r1.102 -r1.103
--- minibuffer.el       6 Dec 2009 00:58:40 -0000       1.102
+++ minibuffer.el       6 Dec 2009 01:25:46 -0000       1.103
@@ -57,7 +57,25 @@
 
 ;;; Todo:
 
-;; - make partial-complete-mode obsolete:
+;; - extend `boundaries' to provide various other meta-data about the
+;;   output of `all-completions':
+;;   - quoting/unquoting (so we can complete files names with envvars
+;;     and backslashes, and all-completion can list names without
+;;     quoting backslashes and dollars).
+;;   - indicate how to turn all-completion's output into
+;;     try-completion's output: e.g. completion-ignored-extensions.
+;;     maybe that could be merged with the "quote" operation above.
+;;   - completion hook to run when the completion is
+;;     selected/inserted (maybe this should be provided some other
+;;     way, e.g. as text-property, so `try-completion can also return it?)
+;;     both for when it's inserted via TAB or via choose-completion.
+;;   - indicate that `all-completions' doesn't do prefix-completion
+;;     but just returns some list that relates in some other way to
+;;     the provided string (as is the case in filecache.el), in which
+;;     case partial-completion (for example) doesn't make any sense
+;;     and neither does the completions-first-difference highlight.
+
+;; - make partial-completion-mode obsolete:
 ;;   - (?) <foo.h> style completion for file names.
 ;;     This can't be done identically just by tweaking completion,
 ;;     because partial-completion-mode's behavior is to expand <string.h>
@@ -414,8 +432,8 @@
 POINT is the position of point within STRING.
 The return value is a list of completions and may contain the base-size
 in the last `cdr'."
-  ;; FIXME: We need to additionally return completion-extra-size (similar
-  ;; to completion-base-size but for the text after point).
+  ;; FIXME: We need to additionally return the info needed for the
+  ;; second part of completion-base-position.
   (completion--some (lambda (style)
                       (funcall (nth 2 (assq style completion-styles-alist))
                                string table pred point))
@@ -626,6 +644,12 @@
      ((test-completion (buffer-substring beg end)
                        minibuffer-completion-table
                        minibuffer-completion-predicate)
+      ;; FIXME: completion-ignore-case has various slightly
+      ;; incompatible meanings.  E.g. it can reflect whether the user
+      ;; wants completion to pay attention to case, or whether the
+      ;; string will be used in a context where case is significant.
+      ;; E.g. usually try-completion should obey the first, whereas
+      ;; test-completion should obey the second.
       (when completion-ignore-case
         ;; Fixup case of the field, if necessary.
         (let* ((string (buffer-substring beg end))
@@ -633,7 +657,7 @@
                        string
                        minibuffer-completion-table
                        minibuffer-completion-predicate)))
-          (when (and (stringp compl)
+          (when (and (stringp compl) (not (equal string compl))
                      ;; If it weren't for this piece of paranoia, I'd replace
                      ;; the whole thing with a call to do-completion.
                      ;; This is important, e.g. when the current minibuffer's
@@ -646,22 +670,19 @@
             (delete-region beg end))))
       (exit-minibuffer))
 
-     ((eq minibuffer-completion-confirm 'confirm)
+     ((memq minibuffer-completion-confirm '(confirm confirm-after-completion))
       ;; The user is permitted to exit with an input that's rejected
       ;; by test-completion, after confirming her choice.
-      (if (eq last-command this-command)
+      (if (or (eq last-command this-command)
+              ;; For `confirm-after-completion' we only ask for confirmation
+              ;; if trying to exit immediately after typing TAB (this
+              ;; catches most minibuffer typos).
+              (and (eq minibuffer-completion-confirm 'confirm-after-completion)
+                   (not (memq last-command minibuffer-confirm-exit-commands))))
           (exit-minibuffer)
         (minibuffer-message "Confirm")
         nil))
 
-     ((eq minibuffer-completion-confirm 'confirm-after-completion)
-      ;; Similar to the above, but only if trying to exit immediately
-      ;; after typing TAB (this catches most minibuffer typos).
-      (if (memq last-command minibuffer-confirm-exit-commands)
-         (progn (minibuffer-message "Confirm")
-                nil)
-       (exit-minibuffer)))
-
      (t
       ;; Call do-completion, but ignore errors.
       (case (condition-case nil
@@ -1080,9 +1101,6 @@
   "Complete the text between START and END using COLLECTION.
 Return nil if there is no valid completion, else t.
 Point needs to be somewhere between START and END."
-  ;; FIXME: some callers need to setup completion-ignore-case,
-  ;; completion-ignored-extensions.  The latter can be embedded in the
-  ;; completion tables, but the first cannot (actually, maybe it should).
   (assert (<= start (point)) (<= (point) end))
   ;; FIXME: undisplay the *Completions* buffer once the completion is done.
   (with-wrapper-hook
@@ -1247,6 +1265,8 @@
     ;; substitute-in-file-name turns "fo-$TO-ba" into "fo-o/b-ba", there's
     ;; no way for us to return proper boundaries info, because the
     ;; boundary is not (yet) in `string'.
+    ;; FIXME: Actually there is a way to return correct boundaries info,
+    ;; at the condition of modifying the all-completions return accordingly.
     (let ((start (length (file-name-directory string)))
           (end (string-match-p "/" (cdr action))))
       (list* 'boundaries start end)))
@@ -1644,7 +1664,7 @@
 (defun completion-pcm--prepare-delim-re (delims)
   (setq completion-pcm--delim-wild-regex (concat "[" delims "*]")))
 
-(defcustom completion-pcm-word-delimiters "-_. "
+(defcustom completion-pcm-word-delimiters "-_./: "
   "A string of characters treated as word delimiters for completion.
 Some arcane rules:
 If `]' is in this string, it must come first.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]