Deprecate rainbow-delimiters-delimiter-blacklist.

rainbow-delimiters-pick-face-function offers a superset of its
functionality.
master
Fanael Linithien 11 years ago
parent 3d1e204f04
commit cc829473be
  1. 36
      rainbow-delimiters-test.el
  2. 22
      rainbow-delimiters.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

@ -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.

Loading…
Cancel
Save