From: Simen Heggestøyl <simenheg@gmail.com>
Date: Sun, 11 Jun 2017 15:41:09 +0000 (+0200)
Subject: Fix highlighting of CSS selectors with double hyphens
X-Git-Tag: emacs-26.0.90~521^2~128
X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ee051688c18b3bd7bb7c7a01100f09f7dd402ba6;p=emacs.git

Fix highlighting of CSS selectors with double hyphens

* lisp/textmodes/css-mode.el (css--font-lock-keywords): Fix
highlighting of selectors that contain double hyphens.  They would be
mistaken for a variable.
---

diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el
index 45d750af755..0beaaaa32f1 100644
--- a/lisp/textmodes/css-mode.el
+++ b/lisp/textmodes/css-mode.el
@@ -852,8 +852,6 @@ cannot be completed sensibly: `custom-ident',
     ;; Since "An at-rule consists of everything up to and including the next
     ;; semicolon (;) or the next block, whichever comes first."
     (,(concat "@" css-ident-re) (0 font-lock-builtin-face))
-    ;; Variables.
-    (,(concat "--" css-ident-re) (0 font-lock-variable-name-face))
     ;; Selectors.
     ;; Allow plain ":root" as a selector.
     ("^[ \t]*\\(:root\\)\\(?:[\n \t]*\\)*{" (1 'css-selector keep))
@@ -898,6 +896,8 @@ cannot be completed sensibly: `custom-ident',
                                         'font-lock-multiline t)
                      ;; No face.
                      nil)))
+    ;; Variables.
+    (,(concat "--" css-ident-re) (0 font-lock-variable-name-face))
     ;; Properties.  Again, we don't limit ourselves to css-property-ids.
     (,(concat "\\(?:[{;]\\|^\\)[ \t]*\\("
               "\\(?:\\(" css-proprietary-nmstart-re "\\)\\|"
diff --git a/test/manual/indent/css-mode.css b/test/manual/indent/css-mode.css
index 79b082188f5..bf612b53a14 100644
--- a/test/manual/indent/css-mode.css
+++ b/test/manual/indent/css-mode.css
@@ -77,3 +77,8 @@ div::before {
         url("Sans-Regular.eot") format("eot"),
         url("Sans-Regular.woff") format("woff");
 }
+
+.foo-bar--baz {
+    --foo-variable: 5px;
+    margin: var(--foo-variable);
+}