summaryrefslogtreecommitdiff
path: root/test/lisp/textmodes
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2017-01-25 00:53:49 -0700
committerTom Tromey <tom@tromey.com>2017-05-03 16:00:25 -0600
commitf0708fc5e424a2b5b814c59be0ec7234a739a500 (patch)
treef1a077727478a429dba954242dd84c5ab5960733 /test/lisp/textmodes
parenta26e33a1a776affcbf8cdd012297d48999ba8e80 (diff)
downloademacs-f0708fc5e424a2b5b814c59be0ec7234a739a500.tar.gz
Add color highlighting to css-mode
Bug#25525 * lisp/textmodes/css-mode.el (css--color-map): New constant. (css-value-class-alist): Use css--color-map. (css--number-regexp, css--percent-regexp) (css--number-or-percent-regexp, css--angle-regexp): New constants. (css--color-skip-blanks, css--rgb-color, css--hsl-color): New functions. (css--colors-regexp): New constant. (css--hex-color, css--named-color, css--compute-color) (css--contrasty-color, css--fontify-colors) (css--fontify-region): New functions. (css-mode): Set font-lock-fontify-region-function. (css-mode-syntax-table): Set syntax on more characters. (css-fontify-colors): New defcustom. (scss-mode-syntax-table): Define syntax for ?$ and ?%. * test/lisp/textmodes/css-mode-tests.el (css-test-property-values): Update. (css-test-rgb-parser, css-test-hsl-parser) (css-test-named-color): New tests. * etc/NEWS: Add entry.
Diffstat (limited to 'test/lisp/textmodes')
-rw-r--r--test/lisp/textmodes/css-mode-tests.el46
1 files changed, 45 insertions, 1 deletions
diff --git a/test/lisp/textmodes/css-mode-tests.el b/test/lisp/textmodes/css-mode-tests.el
index d601f43002a..b4666ae72d7 100644
--- a/test/lisp/textmodes/css-mode-tests.el
+++ b/test/lisp/textmodes/css-mode-tests.el
@@ -58,7 +58,7 @@
;; Check that the `color' property doesn't cause infinite recursion
;; because it refers to the value class of the same name.
- (should (= (length (css--property-values "color")) 147)))
+ (should (= (length (css--property-values "color")) 152)))
(ert-deftest css-test-property-value-cache ()
"Test that `css--property-value-cache' is in use."
@@ -234,5 +234,49 @@
(save-excursion (insert (nth 1 item)))
(should (equal (nth 2 item) (css--mdn-find-symbol))))))
+(ert-deftest css-test-rgb-parser ()
+ (with-temp-buffer
+ (css-mode)
+ (dolist (input '("255, 0, 127"
+ "255, /* comment */ 0, 127"
+ "255 0 127"
+ "255, 0, 127, 0.75"
+ "255 0 127 / 0.75"
+ "100%, 0%, 50%"
+ "100%, 0%, 50%, 0.115"
+ "100% 0% 50%"
+ "100% 0% 50% / 0.115"))
+ (erase-buffer)
+ (save-excursion
+ (insert input ")"))
+ (should (equal (css--rgb-color) "#ff007f")))))
+
+(ert-deftest css-test-hsl-parser ()
+ (with-temp-buffer
+ (css-mode)
+ (dolist (input '("0, 100%, 50%"
+ "0 100% 50%"
+ "0 /* two */ /* comments */100% 50%"
+ "0, 100%, 50%, 0.75"
+ "0 100% 50% / 0.75"
+ "0deg 100% 50%"
+ "360deg 100% 50%"
+ "0rad, 100%, 50%, 0.115"
+ "0grad, 100%, 50%, 0.115"
+ "1turn 100% 50% / 0.115"))
+ (erase-buffer)
+ (save-excursion
+ (insert input ")"))
+ (should (equal (css--hsl-color) "#ff0000")))))
+
+(ert-deftest css-test-named-color ()
+ (dolist (text '("@mixin black" "@include black"))
+ (with-temp-buffer
+ (insert text)
+ (should-not (css--named-color (save-excursion
+ (backward-word)
+ (point))
+ "black")))))
+
(provide 'css-mode-tests)
;;; css-mode-tests.el ends here