From cc829473bec2ed78cb1932ebea3626bd9cc53404 Mon Sep 17 00:00:00 2001 From: Fanael Linithien Date: Fri, 19 Dec 2014 14:39:11 +0100 Subject: [PATCH] Deprecate rainbow-delimiters-delimiter-blacklist. rainbow-delimiters-pick-face-function offers a superset of its functionality. --- rainbow-delimiters-test.el | 36 +++++++++++++++++++++--------------- rainbow-delimiters.el | 22 ++++++++++------------ 2 files changed, 31 insertions(+), 27 deletions(-) diff --git a/rainbow-delimiters-test.el b/rainbow-delimiters-test.el index af2e626..7f8ab7d 100644 --- a/rainbow-delimiters-test.el +++ b/rainbow-delimiters-test.el @@ -188,10 +188,6 @@ 0 1 (face (rainbow-delimiters-depth-1-face)) 1 2 (face (rainbow-delimiters-mismatched-face)))))))) -(ert-deftest doesnt-highlighlight-disabled-delimiters () - (let ((rainbow-delimiters-delimiter-blacklist '(?\( ?\)))) - (should-do-nothing 'text-mode "(((())))"))) - (ert-deftest doesnt-highlight-escaped-delimiters () (with-temp-buffer-in-mode 'emacs-lisp-mode (with-string (str "(bar ?\\( (foo?))") @@ -252,19 +248,9 @@ 7 8 (face (rainbow-delimiters-depth-1-face diff-added)) 8 9 (face diff-added))))))) -(ert-deftest blacklisted-contribute-to-depth () - (let ((rainbow-delimiters-delimiter-blacklist '(?\( ?\)))) - (with-temp-buffer-in-mode 'text-mode - (with-string (str "([])") - (should (ert-equal-including-properties - (buffer-string) - #("([])" - 1 2 (face (rainbow-delimiters-depth-2-face)) - 2 3 (face (rainbow-delimiters-depth-2-face))))))))) - (ert-deftest can-customize-face-picker () (let ((rainbow-delimiters-pick-face-function - (lambda (_depth _loc _match) + (lambda (_depth _match _loc) 'font-lock-keyword-face))) (with-temp-buffer-in-mode 'emacs-lisp-mode (with-string (str "(())") @@ -276,5 +262,25 @@ 2 3 (face (font-lock-keyword-face)) 3 4 (face (font-lock-keyword-face))))))))) +(ert-deftest face-picker-can-disable-highlighting () + (let ((rainbow-delimiters-pick-face-function + (lambda (depth match loc) + (unless (memq (char-after loc) '(?\( ?\))) + (rainbow-delimiters-default-pick-face depth match loc))))) + (should-do-nothing 'text-mode "(((())))"))) + +(ert-deftest delimiters-disabled-by-face-picker-contribute-to-depth () + (let ((rainbow-delimiters-pick-face-function + (lambda (depth match loc) + (unless (memq (char-after loc) '(?\( ?\))) + (rainbow-delimiters-default-pick-face depth match loc))))) + (with-temp-buffer-in-mode 'text-mode + (with-string (str "([])") + (should (ert-equal-including-properties + (buffer-string) + #("([])" + 1 2 (face (rainbow-delimiters-depth-2-face)) + 2 3 (face (rainbow-delimiters-depth-2-face))))))))) + (provide 'rainbow-delimiters-test) ;;; rainbow-delimiters-test.el ends here diff --git a/rainbow-delimiters.el b/rainbow-delimiters.el index 5608652..a919a1b 100644 --- a/rainbow-delimiters.el +++ b/rainbow-delimiters.el @@ -90,12 +90,13 @@ When depth exceeds innermost defined face, colors cycle back through." :prefix "rainbow-delimiters-") (defcustom rainbow-delimiters-delimiter-blacklist '() - "Disable highlighting of selected delimiters. - -Delimiters in this list are not highlighted." - :tag "Delimiter Blacklist" - :type '(repeat character) + "Unused variable pending removal. +To prevent highlighting of certain delimiters, use +`rainbow-delimiters-pick-face-function' instead." :group 'rainbow-delimiters) +(make-obsolete-variable 'rainbow-delimiters-delimiter-blacklist + 'rainbow-delimiters-pick-face-function + "2.1") (defcustom rainbow-delimiters-pick-face-function #'rainbow-delimiters-default-pick-face @@ -193,13 +194,10 @@ The returned value is either `rainbow-delimiters-unmatched-face', LOC is the location of the character to add text properties to. DEPTH is the nested depth at LOC, which determines the face to use. -MATCH is nil iff it's a mismatched closing delimiter. - -The delimiter is not highlighted if it's a blacklisted delimiter." - (unless (memq (char-after loc) rainbow-delimiters-delimiter-blacklist) - (let ((face (funcall rainbow-delimiters-pick-face-function depth match loc))) - (when face - (font-lock-prepend-text-property loc (1+ loc) 'face face))))) +MATCH is nil iff it's a mismatched closing delimiter." + (let ((face (funcall rainbow-delimiters-pick-face-function depth match loc))) + (when face + (font-lock-prepend-text-property loc (1+ loc) 'face face)))) (defun rainbow-delimiters--char-ineligible-p (loc ppss delim-syntax-code) "Return t if char at LOC should not be highlighted.