]> code.delx.au - gnu-emacs-elpa/commitdiff
Suppress unavailable messages in minibuffer.
authorJackson Ray Hamilton <jackson@jacksonrayhamilton.com>
Sun, 21 Jun 2015 20:56:03 +0000 (13:56 -0700)
committerJackson Ray Hamilton <jackson@jacksonrayhamilton.com>
Sun, 21 Jun 2015 21:06:38 +0000 (14:06 -0700)
context-coloring.el
test/context-coloring-test.el

index 1967cdf4cea590c7820c7d136ba8da2f56359b8f..5b5eb28d6d272b8c3063e99ea72506a7633f3219 100644 (file)
@@ -1186,6 +1186,22 @@ override `context-coloring-default-delay'.
  :setup #'context-coloring-setup-idle-change-detection
  :teardown #'context-coloring-teardown-idle-change-detection)
 
+(defvar context-coloring-ignore-unavailable-predicates
+  (list
+   #'minibufferp)
+  "Cases when \"unavailable\" messages are silenced.
+Necessary in editing states where coloring is only sometimes
+permissible.")
+
+(defun context-coloring-ignore-unavailable-message-p ()
+  "Determine if the unavailable message should be silenced."
+  (let ((predicates context-coloring-ignore-unavailable-predicates)
+        (ignore-p nil))
+    (while (and predicates
+                (not ignore-p))
+      (setq ignore-p (funcall (pop predicates))))
+    ignore-p))
+
 
 ;;; Minor mode
 
@@ -1233,8 +1249,8 @@ Feature inspired by Douglas Crockford."
           ;; Colorize once initially.
           (let ((context-coloring-parse-interruptable-p nil))
             (context-coloring-colorize))))
-       (t
-        (message "Context coloring is not available for this major mode")))))
+       ((not (context-coloring-ignore-unavailable-message-p))
+        (message "Context coloring is unavailable here")))))
    (t
     (let ((dispatch (context-coloring-get-current-dispatch)))
       (when dispatch
index afacbecb3817323da1d1436324633cf3cc12dc92..f5633b86e682cd750e797b6d573c2d7a35bb67ee 100644 (file)
@@ -259,7 +259,7 @@ signaled."
   (lambda ()
     (context-coloring-mode)
     (context-coloring-test-assert-message
-     "Context coloring is not available for this major mode"
+     "Context coloring is unavailable here"
      "*Messages*")))
 
 (context-coloring-test-deftest derived-mode
@@ -267,9 +267,22 @@ signaled."
     (lisp-interaction-mode)
     (context-coloring-mode)
     (context-coloring-test-assert-not-message
-     "Context coloring is not available for this major mode"
+     "Context coloring is unavailable here"
      "*Messages*")))
 
+(context-coloring-test-deftest unavailable-message-ignored
+  (lambda ()
+    (minibuffer-with-setup-hook
+        (lambda ()
+          (context-coloring-mode)
+          (context-coloring-test-assert-not-message
+           "Context coloring is unavailable here"
+           "*Messages*"))
+      (execute-kbd-macro
+       (vconcat
+        [?\C-u]
+        [?\M-!])))))
+
 (context-coloring-test-define-derived-mode define-dispatch-error)
 
 (context-coloring-test-deftest define-dispatch-error