]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix bad interaction between icomplete and completion inline help (Bug#5849).
authorChong Yidong <cyd@stupidchicken.com>
Sun, 10 Apr 2011 21:31:14 +0000 (17:31 -0400)
committerChong Yidong <cyd@stupidchicken.com>
Sun, 10 Apr 2011 21:31:14 +0000 (17:31 -0400)
* lisp/minibuffer.el (completion-show-inline-help): New var.
(completion--do-completion, minibuffer-complete)
(minibuffer-force-complete, minibuffer-complete-word): Inhibit
minibuffer messages if completion-show-inline-help is nil.

* lisp/icomplete.el (icomplete-mode): Bind completion-show-inline-help
to avoid interference from inline help.

lisp/ChangeLog
lisp/icomplete.el
lisp/minibuffer.el

index 51f8066077db602726ca99bc2d71ec144192d094..8de276b8480d980bb59902f3c6150b4ec4ca113a 100644 (file)
@@ -1,3 +1,13 @@
+2011-04-10  Chong Yidong  <cyd@stupidchicken.com>
+
+       * minibuffer.el (completion-show-inline-help): New var.
+       (completion--do-completion, minibuffer-complete)
+       (minibuffer-force-complete, minibuffer-complete-word): Inhibit
+       minibuffer messages if completion-show-inline-help is nil.
+
+       * icomplete.el (icomplete-mode): Bind completion-show-inline-help
+       to avoid interference from inline help (Bug#5849).
+
 2011-04-10  Leo Liu  <sdl.web@gmail.com>
 
        * emacs-lisp/tabulated-list.el (tabulated-list-print-entry): Fix
index 490b2b2ebfc8c5fddc3ff1ba808ad03ea82e1d4b..ab67fcfcdfddcedefff9b2be92915e770f506833 100644 (file)
@@ -179,8 +179,11 @@ otherwise turn it off."
   (if icomplete-mode
       ;; The following is not really necessary after first time -
       ;; no great loss.
-      (add-hook 'minibuffer-setup-hook 'icomplete-minibuffer-setup)
-    (remove-hook 'minibuffer-setup-hook 'icomplete-minibuffer-setup)))
+      (progn
+       (setq completion-show-inline-help nil)
+       (add-hook 'minibuffer-setup-hook 'icomplete-minibuffer-setup))
+    (remove-hook 'minibuffer-setup-hook 'icomplete-minibuffer-setup)
+    (setq completion-show-inline-help t)))
 
 ;;;_ > icomplete-simple-completing-p ()
 (defun icomplete-simple-completing-p ()
index 19084aad5d689e5e50ae469ef2d6e38f2bc939b4..d6e11b5a7c5a4b8beca35c6b590b36002772fc90 100644 (file)
@@ -381,6 +381,9 @@ If the current buffer is not a minibuffer, erase its entire contents."
   ;; is on, the field doesn't cover the entire minibuffer contents.
   (delete-region (minibuffer-prompt-end) (point-max)))
 
+(defvar completion-show-inline-help t
+  "If non-nil, print helpful inline messages during completion.")
+
 (defcustom completion-auto-help t
   "Non-nil means automatically provide help for invalid completion input.
 If the value is t the *Completion* buffer is displayed whenever completion
@@ -568,8 +571,9 @@ E = after completion we now have an Exact match.
     (cond
      ((null comp)
       (minibuffer-hide-completions)
-      (unless completion-fail-discreetly
-        (ding) (minibuffer-message "No match"))
+      (when (and (not completion-fail-discreetly) completion-show-inline-help)
+       (ding)
+       (minibuffer-message "No match"))
       (minibuffer--bitset nil nil nil))
      ((eq t comp)
       (minibuffer-hide-completions)
@@ -639,9 +643,10 @@ E = after completion we now have an Exact match.
               (minibuffer-hide-completions))
              ;; Show the completion table, if requested.
              ((not exact)
-              (if (case completion-auto-help
-                    (lazy (eq this-command last-command))
-                    (t completion-auto-help))
+             (if (cond ((null completion-show-inline-help) t)
+                       ((eq completion-auto-help 'lazy)
+                        (eq this-command last-command))
+                       (t completion-auto-help))
                   (minibuffer-completion-help)
                 (minibuffer-message "Next char not unique")))
              ;; If the last exact completion and this one were the same, it
@@ -683,9 +688,11 @@ scroll the window of possible completions."
     t)
    (t (case (completion--do-completion)
         (#b000 nil)
-        (#b001 (minibuffer-message "Sole completion")
+        (#b001 (if completion-show-inline-help
+                  (minibuffer-message "Sole completion"))
                t)
-        (#b011 (minibuffer-message "Complete, but not unique")
+        (#b011 (if completion-show-inline-help
+                  (minibuffer-message "Complete, but not unique"))
                t)
         (t     t)))))
 
@@ -743,7 +750,9 @@ Repeated uses step through the possible completions."
          (end (field-end))
          (all (completion-all-sorted-completions)))
     (if (not (consp all))
-        (minibuffer-message (if all "No more completions" "No completions"))
+       (if completion-show-inline-help
+           (minibuffer-message
+            (if all "No more completions" "No completions")))
       (setq completion-cycling t)
       (goto-char end)
       (insert (car all))
@@ -931,9 +940,11 @@ Return nil if there is no valid completion, else t."
   (interactive)
   (case (completion--do-completion 'completion--try-word-completion)
     (#b000 nil)
-    (#b001 (minibuffer-message "Sole completion")
+    (#b001 (if completion-show-inline-help
+              (minibuffer-message "Sole completion"))
            t)
-    (#b011 (minibuffer-message "Complete, but not unique")
+    (#b011 (if completion-show-inline-help
+              (minibuffer-message "Complete, but not unique"))
            t)
     (t     t)))