From unknown Fri Sep 05 18:57:44 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22211: [PATCH] Add a face for CSS/SCSS variables Resent-From: Simen =?UTF-8?Q?Heggest=C3=B8yl?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 19 Dec 2015 11:13:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 22211 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 22211@debbugs.gnu.org Cc: Stefan Monnier X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.145052356423131 (code B ref -1); Sat, 19 Dec 2015 11:13:02 +0000 Received: (at submit) by debbugs.gnu.org; 19 Dec 2015 11:12:44 +0000 Received: from localhost ([127.0.0.1]:56279 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aAFRM-000611-C0 for submit@debbugs.gnu.org; Sat, 19 Dec 2015 06:12:44 -0500 Received: from eggs.gnu.org ([208.118.235.92]:52157) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aAFRK-00060o-PN for submit@debbugs.gnu.org; Sat, 19 Dec 2015 06:12:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aAFRE-0007II-3Q for submit@debbugs.gnu.org; Sat, 19 Dec 2015 06:12:37 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:57982) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aAFRE-0007IC-01 for submit@debbugs.gnu.org; Sat, 19 Dec 2015 06:12:36 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43102) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aAFRC-0005mv-He for bug-gnu-emacs@gnu.org; Sat, 19 Dec 2015 06:12:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aAFR7-0007HV-44 for bug-gnu-emacs@gnu.org; Sat, 19 Dec 2015 06:12:34 -0500 Received: from mail-lf0-x234.google.com ([2a00:1450:4010:c07::234]:34479) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aAFR6-0007H9-Ns for bug-gnu-emacs@gnu.org; Sat, 19 Dec 2015 06:12:29 -0500 Received: by mail-lf0-x234.google.com with SMTP id y184so86922306lfc.1 for ; Sat, 19 Dec 2015 03:12:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:subject:to:cc:message-id:mime-version:content-type; bh=FFiCtFqhXNMMcuZUH/LyMD6cszL2vyBiCoe6G2c0bJg=; b=kXeCkeNAbFEiGajwCuu2k1pyKfUMAqEh1Kg2a3hHJHUBcGaIs8E8073xw1UOnnKhPn PWNRSh+huiCT4dTBDwGjWVwE6B8C4yHq9Y9CjeW2hnmVgT8ghMIfK8NXvX1UfjBFbupA 8K1Ikv4su1QLZ+DClDzLBGnhUhALqfwnxHpkPCpZX4SKrqB0OJugoSTL5Sg2H0kzFHAH WS7yWHhiiVgv4ZTMBSVGVvySenwnPhmdj2Lu2G+M07FFIs3j3MJ8BeHUZLaLz5VhUtcX QoYZxToDy5tnRiY8n2QoDRoXZiGaC/wbTTbIzjltNMKVTHyUb+S71kPum8VzTGbzD3AI e/NA== X-Received: by 10.25.85.78 with SMTP id j75mr3176984lfb.46.1450523547746; Sat, 19 Dec 2015 03:12:27 -0800 (PST) Received: from [192.168.1.104] (168.165.34.95.customer.cdi.no. [95.34.165.168]) by smtp.gmail.com with ESMTPSA id rm5sm3410621lbb.20.2015.12.19.03.12.26 (version=TLSv1/SSLv3 cipher=OTHER); Sat, 19 Dec 2015 03:12:27 -0800 (PST) Date: Sat, 19 Dec 2015 12:12:25 +0100 From: Simen =?UTF-8?Q?Heggest=C3=B8yl?= Message-Id: <1450523545.4477.0@smtp.gmail.com> X-Mailer: geary/0.10.0 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=-cpYEhbZedqWG1wfROJKK" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) --=-cpYEhbZedqWG1wfROJKK Content-Type: text/plain; charset=utf-8; format=flowed Hi, I'd like to propose the following patch, which introduces a new face to be used commonly for CSS and SCSS variable names. -- Simen From dd89467a604d85d7fd2194bfd1a97c6834806727 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simen=20Heggest=C3=B8yl?= Date: Fri, 18 Dec 2015 22:38:08 +0100 Subject: [PATCH] Add a face for CSS/SCSS variables * lisp/textmodes/css-mode.el (css-nmstart-re): Don't match variables. (css-variable): New face for variables. (css--font-lock-keywords): Highlight variables. (scss-font-lock-keywords): Use the new variable face. --- lisp/textmodes/css-mode.el | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el index 3e84b43..8c20df7 100644 --- a/lisp/textmodes/css-mode.el +++ b/lisp/textmodes/css-mode.el @@ -215,7 +215,7 @@ css-syntax-propertize-function (defconst css-escapes-re "\\\\\\(?:[^\000-\037\177]\\|[0-9a-fA-F]+[ \n\t\r\f]?\\)") (defconst css-nmchar-re (concat "\\(?:[-[:alnum:]]\\|" css-escapes-re "\\)")) -(defconst css-nmstart-re (concat "\\(?:--\\)?\\(?:[[:alpha:]]\\|" css-escapes-re "\\)")) +(defconst css-nmstart-re (concat "\\(?:[[:alpha:]]\\|" css-escapes-re "\\)")) (defconst css-ident-re ;; (concat css-nmstart-re css-nmchar-re "*") ;; Apparently, "at rules" names can start with a dash, e.g. @-moz-keyframes. (concat css-nmchar-re "+")) @@ -233,6 +233,8 @@ css-property :group 'css) (defface css-proprietary-property '((t :inherit (css-property italic))) "Face to use for vendor-specific properties.") +(defface css-variable '((t :inherit font-lock-variable-name-face)) + "Face to use for variables.") (defun css--font-lock-keywords (&optional sassy) `((,(concat "!\\s-*" @@ -246,6 +248,8 @@ css--font-lock-keywords ;; 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 'css-variable)) ;; Selectors. ;; FIXME: attribute selectors don't work well because they may contain ;; strings which have already been highlighted as f-l-string-face and @@ -525,7 +529,7 @@ scss-mode-syntax-table st)) (defvar scss-font-lock-keywords - (append `((,(concat "$" css-ident-re) (0 font-lock-variable-name-face))) + (append `((,(concat "$" css-ident-re) (0 'css-variable))) (css--font-lock-keywords 'sassy) `((,(concat "@mixin[ \t]+\\(" css-ident-re "\\)[ \t]*(") (1 font-lock-function-name-face))))) -- 2.6.4 --=-cpYEhbZedqWG1wfROJKK Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
Hi,

I'd like to propose the following patch, = which introduces a new face
to be used commonly for CSS and SCSS = variable names.

-- Simen

=
From dd89467a604d85d7fd2194bfd1a97c6834806727 Mon Sep 17 00:= 00:00 2001
From: =3D?UTF-8?q?Simen=3D20Heggest=3DC3=3DB8yl?=3D &l= t;simenheg@gmail.com>
Date: Fri, 18 Dec 2015 22:38:08 +0100
Subject: [PATCH] Add a face for CSS/SCSS variables

* lisp/textmodes/css-mode.el (css-nmstart-re): Don't match variabl= es.
(css-variable): New face for variables.
(css--font-= lock-keywords): Highlight variables.
(scss-font-lock-keywords): U= se the new variable face.
---
 lisp/textmodes/css-= mode.el | 8 ++++++--
 1 file changed, 6 insertions(+), 2 del= etions(-)

diff --git a/lisp/textmodes/css-mode.el = b/lisp/textmodes/css-mode.el
index 3e84b43..8c20df7 100644
<= div>--- a/lisp/textmodes/css-mode.el
+++ b/lisp/textmodes/css-mod= e.el
@@ -215,7 +215,7 @@ css-syntax-propertize-function
 (defconst css-escapes-re
   "\\\\\\(?:[^\000-\03= 7\177]\\|[0-9a-fA-F]+[ \n\t\r\f]?\\)")
 (defconst css-nmchar= -re (concat "\\(?:[-[:alnum:]]\\|" css-escapes-re "\\)"))
-(defco= nst css-nmstart-re (concat "\\(?:--\\)?\\(?:[[:alpha:]]\\|" css-escapes-re = "\\)"))
+(defconst css-nmstart-re (concat "\\(?:[[:alpha:]]\\|" c= ss-escapes-re "\\)"))
 (defconst css-ident-re ;; (concat css= -nmstart-re css-nmchar-re "*")
   ;; Apparently, "at ru= les" names can start with a dash, e.g. @-moz-keyframes.
  &n= bsp;(concat css-nmchar-re "+"))
@@ -233,6 +233,8 @@ css-property<= /div>
   :group 'css)
 (defface css-proprietar= y-property '((t :inherit (css-property italic)))
   "Fa= ce to use for vendor-specific properties.")
+(defface css-variabl= e '((t :inherit font-lock-variable-name-face))
+  "Face to u= se for variables.")
 
 (defun css--font-lock-= keywords (&optional sassy)
   `((,(concat "!\\s-*"<= /div>
@@ -246,6 +248,8 @@ css--font-lock-keywords
  &nbs= p;  ;; Since "An at-rule consists of everything up to and including th= e next
     ;; semicolon (;) or the next block, wh= ichever comes first."
     (,(concat "@" css-ident= -re) (0 font-lock-builtin-face))
+    ;; Variables.
+    (,(concat "--" css-ident-re) (0 'css-variable))
=
     ;; Selectors.
     ;; FIX= ME: attribute selectors don't work well because they may contain
=      ;; strings which have already been highlighted as f-l-s= tring-face and
@@ -525,7 +529,7 @@ scss-mode-syntax-table
     st))
 
 (defvar scss-f= ont-lock-keywords
-  (append `((,(concat "$" css-ident-re) (= 0 font-lock-variable-name-face)))
+  (append `((,(concat "$"= css-ident-re) (0 'css-variable)))
        &n= bsp;  (css--font-lock-keywords 'sassy)
      =      `((,(concat "@mixin[ \t]+\\(" css-ident-re "\\)[ \t]*("= )
              (1 font-lock-f= unction-name-face)))))
-- 
2.6.4

= --=-cpYEhbZedqWG1wfROJKK-- From unknown Fri Sep 05 18:57:44 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22211: [PATCH] Add a face for CSS/SCSS variables Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 19 Dec 2015 14:20:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22211 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Simen =?UTF-8?Q?Heggest=C3=B8yl?= Cc: 22211@debbugs.gnu.org X-Debbugs-Original-Cc: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.14505347486833 (code B ref -1); Sat, 19 Dec 2015 14:20:01 +0000 Received: (at submit) by debbugs.gnu.org; 19 Dec 2015 14:19:08 +0000 Received: from localhost ([127.0.0.1]:56391 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aAILk-0001m9-Ka for submit@debbugs.gnu.org; Sat, 19 Dec 2015 09:19:08 -0500 Received: from eggs.gnu.org ([208.118.235.92]:55325) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aAILj-0001lx-VV for submit@debbugs.gnu.org; Sat, 19 Dec 2015 09:19:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aAILe-0003vj-7d for submit@debbugs.gnu.org; Sat, 19 Dec 2015 09:19:02 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:38902) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aAILe-0003vf-4O for submit@debbugs.gnu.org; Sat, 19 Dec 2015 09:19:02 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46296) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aAILd-00078T-Be for bug-gnu-emacs@gnu.org; Sat, 19 Dec 2015 09:19:02 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aAILY-0003v7-DF for bug-gnu-emacs@gnu.org; Sat, 19 Dec 2015 09:19:01 -0500 Received: from chene.dit.umontreal.ca ([132.204.246.20]:34399) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aAILY-0003v3-6i for bug-gnu-emacs@gnu.org; Sat, 19 Dec 2015 09:18:56 -0500 Received: from fmsmemgm.homelinux.net (lechon.iro.umontreal.ca [132.204.27.242]) by chene.dit.umontreal.ca (8.14.1/8.14.1) with ESMTP id tBJEIoql004571; Sat, 19 Dec 2015 09:18:51 -0500 Received: by fmsmemgm.homelinux.net (Postfix, from userid 20848) id 4A751AE59E; Sat, 19 Dec 2015 09:18:49 -0500 (EST) From: Stefan Monnier Message-ID: References: <1450523545.4477.0@smtp.gmail.com> Date: Sat, 19 Dec 2015 09:18:49 -0500 In-Reply-To: <1450523545.4477.0@smtp.gmail.com> ("Simen =?UTF-8?Q?Heggest=C3=B8yl?="'s message of "Sat, 19 Dec 2015 12:12:25 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-NAI-Spam-Flag: NO X-NAI-Spam-Level: X-NAI-Spam-Threshold: 5 X-NAI-Spam-Score: 0.2 X-NAI-Spam-Rules: 2 Rules triggered GEN_SPAM_FEATRE=0.2, RV5525=0 X-NAI-Spam-Version: 2.3.0.9418 : core <5525> : inlines <4128> : streams <1556754> : uri <2104619> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) > +(defface css-variable '((t :inherit font-lock-variable-name-face)) > + "Face to use for variables.") Why not use font-lock-variable-name-face? Stefan From unknown Fri Sep 05 18:57:44 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22211: [PATCH] Add a face for CSS/SCSS variables Resent-From: Simen =?UTF-8?Q?Heggest=C3=B8yl?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 27 Dec 2015 18:21:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22211 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Stefan Monnier Cc: 22211@debbugs.gnu.org Received: via spool by 22211-submit@debbugs.gnu.org id=B22211.145124040512491 (code B ref 22211); Sun, 27 Dec 2015 18:21:02 +0000 Received: (at 22211) by debbugs.gnu.org; 27 Dec 2015 18:20:05 +0000 Received: from localhost ([127.0.0.1]:44708 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aDFvJ-0003FP-AK for submit@debbugs.gnu.org; Sun, 27 Dec 2015 13:20:05 -0500 Received: from mail-lf0-f50.google.com ([209.85.215.50]:35706) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aDFvH-0003ER-GV for 22211@debbugs.gnu.org; Sun, 27 Dec 2015 13:20:03 -0500 Received: by mail-lf0-f50.google.com with SMTP id c192so13152756lfe.2 for <22211@debbugs.gnu.org>; Sun, 27 Dec 2015 10:20:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:subject:to:cc:message-id:in-reply-to:references :mime-version:content-type; bh=zALLQVs3kCP7NX/fg0YMt51UfflLJV1jxz0eM0X4YY4=; b=USZtgCRkuModLOm0p3OCqg++sHB8SRTqYblDZ+P3n+froOgA6iKrUgqL2uok9HHyPw ogrUqhAK7wsT9YNDJKcbPcXw1TRml04uEHABfghrKDgzgdfzikaoeKlxE7k815+3+i1v /bypHr52dR1nPWltui9cjEgR5k62CRE0Pb28pfbBAqlQgrLQpFA9l/xJQJQznhCbj89X NhF8oSiJc83eSylbAfqNB617Cqi2n/oUuWXaaUYmNXGpUpVPRrfjyEnFp3ia3AyqUoE8 vAoDgKoq6Wn/Nc70eKNp8/n/HMdiCozqZBLFCYD9UloHjDeGNSgtMTPx1RefbxpFo0AI QPqw== X-Received: by 10.25.158.136 with SMTP id h130mr6460454lfe.136.1451240397655; Sun, 27 Dec 2015 10:19:57 -0800 (PST) Received: from [192.168.1.6] (77.17.190.234.tmi.telenormobil.no. [77.17.190.234]) by smtp.gmail.com with ESMTPSA id eb3sm4265188lbc.31.2015.12.27.10.19.55 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 27 Dec 2015 10:19:56 -0800 (PST) Date: Sun, 27 Dec 2015 19:19:52 +0100 From: Simen =?UTF-8?Q?Heggest=C3=B8yl?= Message-Id: <1451240392.20532.0@smtp.gmail.com> In-Reply-To: References: <1450523545.4477.0@smtp.gmail.com> <"Simen =?UTF-8?Q?Heggest=C3=B8yl?="'s message of "Sat, 19 Dec 2015 12:12:25 +0100"> X-Mailer: geary/0.10.0 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=-G6HlgtQrA2EiXOPQXoQY" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --=-G6HlgtQrA2EiXOPQXoQY Content-Type: text/plain; charset=utf-8; format=flowed On Sat, Dec 19, 2015 at 3:18 PM, Stefan Monnier wrote: > Why not use font-lock-variable-name-face? That's OK by me. Then I suggest the following patch instead: From 84bea3c332b32626d0579e8f8be164d832d0a557 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simen=20Heggest=C3=B8yl?= Date: Sun, 27 Dec 2015 19:12:58 +0100 Subject: [PATCH] Highlight CSS variables with variable name face * lisp/textmodes/css-mode.el (css-nmstart-re): Don't match variables. (css--font-lock-keywords): Highlight variables in `font-lock-variable-name-face'. --- lisp/textmodes/css-mode.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el index 3e84b43..0bcd1ee 100644 --- a/lisp/textmodes/css-mode.el +++ b/lisp/textmodes/css-mode.el @@ -215,7 +215,7 @@ css-syntax-propertize-function (defconst css-escapes-re "\\\\\\(?:[^\000-\037\177]\\|[0-9a-fA-F]+[ \n\t\r\f]?\\)") (defconst css-nmchar-re (concat "\\(?:[-[:alnum:]]\\|" css-escapes-re "\\)")) -(defconst css-nmstart-re (concat "\\(?:--\\)?\\(?:[[:alpha:]]\\|" css-escapes-re "\\)")) +(defconst css-nmstart-re (concat "\\(?:[[:alpha:]]\\|" css-escapes-re "\\)")) (defconst css-ident-re ;; (concat css-nmstart-re css-nmchar-re "*") ;; Apparently, "at rules" names can start with a dash, e.g. @-moz-keyframes. (concat css-nmchar-re "+")) @@ -246,6 +246,8 @@ css--font-lock-keywords ;; 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. ;; FIXME: attribute selectors don't work well because they may contain ;; strings which have already been highlighted as f-l-string-face and -- 2.6.4 --=-G6HlgtQrA2EiXOPQXoQY Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Sat, Dec 19, 2015 at 3:18 PM, Stefan Monnier <monnier@IRO.UMontreal.C= A> wrote:
Why not use font-lock-variable-name-face?

That's OK by me.

Then I suggest= the following patch instead:

From 84bea3c332= b32626d0579e8f8be164d832d0a557 Mon Sep 17 00:00:00 2001
From: =3D= ?UTF-8?q?Simen=3D20Heggest=3DC3=3DB8yl?=3D <simenheg@gmail.com>
=
Date: Sun, 27 Dec 2015 19:12:58 +0100
Subject: [PATCH] Highl= ight CSS variables with variable name face

* lisp/= textmodes/css-mode.el (css-nmstart-re): Don't match variables.
(c= ss--font-lock-keywords): Highlight variables in
`font-lock-variab= le-name-face'.
---
 lisp/textmodes/css-mode.el | 4= +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
<= div>
diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes= /css-mode.el
index 3e84b43..0bcd1ee 100644
--- a/lisp/t= extmodes/css-mode.el
+++ b/lisp/textmodes/css-mode.el
@= @ -215,7 +215,7 @@ css-syntax-propertize-function
 (defconst= css-escapes-re
   "\\\\\\(?:[^\000-\037\177]\\|[0-9a-f= A-F]+[ \n\t\r\f]?\\)")
 (defconst css-nmchar-re (concat "\\(= ?:[-[:alnum:]]\\|" css-escapes-re "\\)"))
-(defconst css-nmstart-= re (concat "\\(?:--\\)?\\(?:[[:alpha:]]\\|" css-escapes-re "\\)"))
+(defconst css-nmstart-re (concat "\\(?:[[:alpha:]]\\|" css-escapes-re "\= \)"))
 (defconst css-ident-re ;; (concat css-nmstart-re css-= nmchar-re "*")
   ;; Apparently, "at rules" names can s= tart with a dash, e.g. @-moz-keyframes.
   (concat css-= nmchar-re "+"))
@@ -246,6 +246,8 @@ css--font-lock-keywords
=
     ;; Since "An at-rule consists of everything up to = and including the next
     ;; semicolon (;) or th= e next block, whichever comes first."
     (,(conc= at "@" css-ident-re) (0 font-lock-builtin-face))
+    ;= ; Variables.
+    (,(concat "--" css-ident-re) (0 font-= lock-variable-name-face))
     ;; Selectors.
=
     ;; FIXME: attribute selectors don't work well beca= use they may contain
     ;; strings which have al= ready been highlighted as f-l-string-face and
-- 
= 2.6.4

= --=-G6HlgtQrA2EiXOPQXoQY-- From unknown Fri Sep 05 18:57:44 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22211: [PATCH] Add a face for CSS/SCSS variables Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 27 Dec 2015 18:29:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22211 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Simen =?UTF-8?Q?Heggest=C3=B8yl?= Cc: Stefan Monnier , 22211@debbugs.gnu.org Received: via spool by 22211-submit@debbugs.gnu.org id=B22211.145124091413298 (code B ref 22211); Sun, 27 Dec 2015 18:29:02 +0000 Received: (at 22211) by debbugs.gnu.org; 27 Dec 2015 18:28:34 +0000 Received: from localhost ([127.0.0.1]:44722 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aDG3W-0003SP-JR for submit@debbugs.gnu.org; Sun, 27 Dec 2015 13:28:34 -0500 Received: from hermes.netfonds.no ([80.91.224.195]:49135) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aDG3U-0003SI-VD for 22211@debbugs.gnu.org; Sun, 27 Dec 2015 13:28:33 -0500 Received: from 2.150.58.24.tmi.telenormobil.no ([2.150.58.24] helo=mouse) by hermes.netfonds.no with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1aDG37-0001sV-Kw; Sun, 27 Dec 2015 19:28:09 +0100 From: Lars Ingebrigtsen References: <1450523545.4477.0@smtp.gmail.com> <1451240392.20532.0@smtp.gmail.com> Date: Sun, 27 Dec 2015 19:28:08 +0100 In-Reply-To: <1451240392.20532.0@smtp.gmail.com> ("Simen \=\?iso-8859-1\?Q\?He\?\= \=\?iso-8859-1\?Q\?ggest\=F8yl\=22's\?\= message of "Sun, 27 Dec 2015 19:19:52 +0100") Message-ID: <87d1treog7.fsf@gnus.org> User-Agent: Gnus/5.130014 (Ma Gnus v0.14) Emacs/25.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-MailScanner-ID: 1aDG37-0001sV-Kw X-Netfonds-MailScanner: Found to be clean X-Netfonds-MailScanner-From: larsi@gnus.org MailScanner-NULL-Check: 1451845689.80338@KZTZZ3OjTiSNuAWLrrCJTg X-Spam-Status: No X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Simen Heggest=F8yl writes: > (defconst css-nmchar-re (concat "\\(?:[-[:alnum:]]\\|" css-escapes-re=20 > "\\)")) > -(defconst css-nmstart-re (concat "\\(?:--\\)?\\(?:[[:alpha:]]\\|"=20 > css-escapes-re "\\)")) > +(defconst css-nmstart-re (concat "\\(?:[[:alpha:]]\\|" css-escapes-re=20 > "\\)")) > (defconst css-ident-re ;; (concat css-nmstart-re css-nmchar-re "*") > ;; Apparently, "at rules" names can start with a dash, e.g.=20 The patch is corrupted. Try including it as an attachment instead. --=20 (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From unknown Fri Sep 05 18:57:44 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22211: [PATCH] Add a face for CSS/SCSS variables Resent-From: Simen =?UTF-8?Q?Heggest=C3=B8yl?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 27 Dec 2015 18:39:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22211 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Lars Ingebrigtsen Cc: Stefan Monnier , 22211@debbugs.gnu.org Received: via spool by 22211-submit@debbugs.gnu.org id=B22211.145124152620606 (code B ref 22211); Sun, 27 Dec 2015 18:39:02 +0000 Received: (at 22211) by debbugs.gnu.org; 27 Dec 2015 18:38:46 +0000 Received: from localhost ([127.0.0.1]:44740 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aDGDN-0005MH-3h for submit@debbugs.gnu.org; Sun, 27 Dec 2015 13:38:46 -0500 Received: from mail-lf0-f50.google.com ([209.85.215.50]:34349) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aDGDH-0005Lw-Qo for 22211@debbugs.gnu.org; Sun, 27 Dec 2015 13:38:43 -0500 Received: by mail-lf0-f50.google.com with SMTP id y184so189388072lfc.1 for <22211@debbugs.gnu.org>; Sun, 27 Dec 2015 10:38:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:subject:to:cc:message-id:in-reply-to:references :mime-version:content-type; bh=3I4jrjBzTvcgJScn/g46BupKtGsKPIRF61jLbcgzLjQ=; b=PwYZWi7iTo11ouddA1H/a0Qv1BUQclaSqp3UlObYl0JZe45jlq8GZWOjcdkQ/Ix0dk 4zS4RC1/8A0Kms3Ax3YVdraN1MWMdmsLwm0ZSva9z4LRO6WzXPKpR7bqwqh03zehtSf9 Rsn958Iozx7nnAiMhUUI8moYd9IHDpx/75nSp+cbJ1Aaf4Ph5p2jwY5h68l35OdxmB3j K6UxC/zeDqR191bR9X308y+FCM8fXQpwu9XQ+HTF/pTdGyEMzRe/tODkHatRXkpR8JPa 5oylmNPlIPAwxrSl1wa+n7AhaZtalmKKjPJaucTMdv45M1Lig8YCT1to/A7m4+m+mjZb L+pw== X-Received: by 10.25.87.12 with SMTP id l12mr18590115lfb.97.1451241514117; Sun, 27 Dec 2015 10:38:34 -0800 (PST) Received: from [192.168.1.6] (77.17.190.234.tmi.telenormobil.no. [77.17.190.234]) by smtp.gmail.com with ESMTPSA id ak1sm9760324lbc.2.2015.12.27.10.38.32 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 27 Dec 2015 10:38:33 -0800 (PST) Date: Sun, 27 Dec 2015 19:38:30 +0100 From: Simen =?UTF-8?Q?Heggest=C3=B8yl?= Message-Id: <1451241510.20532.1@smtp.gmail.com> In-Reply-To: <87d1treog7.fsf@gnus.org> References: <1450523545.4477.0@smtp.gmail.com> <1451240392.20532.0@smtp.gmail.com> <"Simen \=\?iso-8859-1\?Q\?He\?\= \=\?iso-8859-1\?Q\?ggest\=F8yl\=22's\?\= message of "Sun, 27 Dec 2015 19:19:52 +0100"> X-Mailer: geary/0.10.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-88nRGlOvmqQkuYJxr5x1" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --=-88nRGlOvmqQkuYJxr5x1 Content-Type: multipart/alternative; boundary="=-33dKJxUKavoc6ZU7y4Qe" --=-33dKJxUKavoc6ZU7y4Qe Content-Type: text/plain; charset=utf-8; format=flowed On Sun, Dec 27, 2015 at 7:28 PM, Lars Ingebrigtsen wrote: > The patch is corrupted. Try including it as an attachment instead. Thanks for catching that, Lars. I've included it as an attachement instead. -- Simen --=-33dKJxUKavoc6ZU7y4Qe Content-Type: text/html; charset=utf-8 On Sun, Dec 27, 2015 at 7:28 PM, Lars Ingebrigtsen <larsi@gnus.org> wrote:
The patch is corrupted. Try including it as an attachment instead.

Thanks for catching that, Lars. I've included it as an attachement instead.

-- Simen
--=-33dKJxUKavoc6ZU7y4Qe-- --=-88nRGlOvmqQkuYJxr5x1 Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Highlight-CSS-variables-with-variable-name-face.patch >From 84bea3c332b32626d0579e8f8be164d832d0a557 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simen=20Heggest=C3=B8yl?= Date: Sun, 27 Dec 2015 19:12:58 +0100 Subject: [PATCH] Highlight CSS variables with variable name face * lisp/textmodes/css-mode.el (css-nmstart-re): Don't match variables. (css--font-lock-keywords): Highlight variables in `font-lock-variable-name-face'. --- lisp/textmodes/css-mode.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el index 3e84b43..0bcd1ee 100644 --- a/lisp/textmodes/css-mode.el +++ b/lisp/textmodes/css-mode.el @@ -215,7 +215,7 @@ css-syntax-propertize-function (defconst css-escapes-re "\\\\\\(?:[^\000-\037\177]\\|[0-9a-fA-F]+[ \n\t\r\f]?\\)") (defconst css-nmchar-re (concat "\\(?:[-[:alnum:]]\\|" css-escapes-re "\\)")) -(defconst css-nmstart-re (concat "\\(?:--\\)?\\(?:[[:alpha:]]\\|" css-escapes-re "\\)")) +(defconst css-nmstart-re (concat "\\(?:[[:alpha:]]\\|" css-escapes-re "\\)")) (defconst css-ident-re ;; (concat css-nmstart-re css-nmchar-re "*") ;; Apparently, "at rules" names can start with a dash, e.g. @-moz-keyframes. (concat css-nmchar-re "+")) @@ -246,6 +246,8 @@ css--font-lock-keywords ;; 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. ;; FIXME: attribute selectors don't work well because they may contain ;; strings which have already been highlighted as f-l-string-face and -- 2.6.4 --=-88nRGlOvmqQkuYJxr5x1-- From unknown Fri Sep 05 18:57:44 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Simen =?UTF-8?Q?Heggest=C3=B8yl?= Subject: bug#22211: closed (Re: bug#22211: [PATCH] Add a face for CSS/SCSS variables) Message-ID: References: <1454250599.5738.0@smtp.gmail.com> <1450523545.4477.0@smtp.gmail.com> X-Gnu-PR-Message: they-closed 22211 X-Gnu-PR-Package: emacs X-Gnu-PR-Keywords: patch Reply-To: 22211@debbugs.gnu.org Date: Sun, 31 Jan 2016 14:31:03 +0000 Content-Type: multipart/mixed; boundary="----------=_1454250663-8121-1" This is a multi-part message in MIME format... ------------=_1454250663-8121-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #22211: [PATCH] Add a face for CSS/SCSS variables which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 22211@debbugs.gnu.org. --=20 22211: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D22211 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1454250663-8121-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 22211-done) by debbugs.gnu.org; 31 Jan 2016 14:30:09 +0000 Received: from localhost ([127.0.0.1]:42578 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aPt0z-000258-IK for submit@debbugs.gnu.org; Sun, 31 Jan 2016 09:30:09 -0500 Received: from mail-lb0-f175.google.com ([209.85.217.175]:35509) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aPt0x-000247-QF for 22211-done@debbugs.gnu.org; Sun, 31 Jan 2016 09:30:08 -0500 Received: by mail-lb0-f175.google.com with SMTP id bc4so62267529lbc.2 for <22211-done@debbugs.gnu.org>; Sun, 31 Jan 2016 06:30:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:subject:to:message-id:in-reply-to:references:mime-version :content-type; bh=CVOiaWUcXiChLjWGaItHGfvtwC2UMqgWsyk1vTPhVYI=; b=Z3KQ/Hvzv8LIRsN1YY5ai8XuD+KoDYwyAwUH9lQoe9JryUhWoV/qwBGSiMumh4i7Ui 9ZC4AjQgMJnZxe4WCnoLuFtOEjsoAi1bbQooY+UiDtWT6dM7mGREB+i2IbE7Th7D+h4M QIF1NngrY5E9sDOvCmooOAtVvCcbHdc2Xiqcnn3RZQmgqoD53XAKwGpZVA+MphvzWw0V /d4ZdmLlO/mNoQKVEX/2q7eLqaHIkuXtTXU7mzCbQDBDof5ingJtqgO2Ersur3xO4H9O GU3ayNyObHBSNwB8SD31ahU8pO8K8BK/5Jho5KRtHoRI/UEZ37Q3AwzNhERldwNnMVMs Il2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:subject:to:message-id:in-reply-to :references:mime-version:content-type; bh=CVOiaWUcXiChLjWGaItHGfvtwC2UMqgWsyk1vTPhVYI=; b=URjcHP1Ue6xq2brMGdXYA3/CdrGeErJ9zBkVAEhdm6RzOV5xUbUhv6SEFj5DNl4DET XNBujDxbEpR38afpT7XwRqNwi6kdWpVRbXxghrW5oYrcUbrgb+v62hwUmmsj6CeuJmc5 Aj49+Jn014yOqm90CINi936TTmWkIq6tG6v+sUhzOu0T3DIekyvrRI6yer/Dx7ZS+kXN GRjM3BJDBwEtq7u0InxtZab73YFwOg2iIgW+o54m4vDTGaMZZyRj1C6iAYfuNqhePkKU gTQKKG6sOe4QwZuse4wQLTVJQDB1+e3qQMFzM5D87ewf4h6yZxW/dfXN2w6QYd80mSjg gb1g== X-Gm-Message-State: AG10YOS1a3Ra2Gg7A8VgqiBMs3K0Gc7VO7WGjz3wCJ5ZwGud7vFgGs3oNlYz0cOmOUamQg== X-Received: by 10.112.64.42 with SMTP id l10mr6655436lbs.137.1454250602007; Sun, 31 Jan 2016 06:30:02 -0800 (PST) Received: from [10.0.0.38] ([80.213.163.129]) by smtp.gmail.com with ESMTPSA id 140sm3323970lfz.21.2016.01.31.06.30.00 for <22211-done@debbugs.gnu.org> (version=TLSv1/SSLv3 cipher=OTHER); Sun, 31 Jan 2016 06:30:01 -0800 (PST) Date: Sun, 31 Jan 2016 15:29:59 +0100 From: Simen =?iso-8859-1?q?Heggest=F8yl?= Subject: Re: bug#22211: [PATCH] Add a face for CSS/SCSS variables To: 22211-done@debbugs.gnu.org Message-Id: <1454250599.5738.0@smtp.gmail.com> In-Reply-To: <1451241510.20532.1@smtp.gmail.com> References: <1450523545.4477.0@smtp.gmail.com> <1451240392.20532.0@smtp.gmail.com> <"Simen \=\?iso-8859-1\?Q\?He\?\= \=\?iso-8859-1\?Q\?ggest\=F8yl\=22's\?\= message of "Sun, 27 Dec 2015 19:19:52 +0100"> X-Mailer: geary/0.10.0 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=-7c2WbcpyHjbrkHUPPdbc" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 22211-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --=-7c2WbcpyHjbrkHUPPdbc Content-Type: text/plain; charset=utf-8; format=flowed Installed in emacs-25. --=-7c2WbcpyHjbrkHUPPdbc Content-Type: text/html; charset=utf-8 Installed in emacs-25. --=-7c2WbcpyHjbrkHUPPdbc-- ------------=_1454250663-8121-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 19 Dec 2015 11:12:44 +0000 Received: from localhost ([127.0.0.1]:56279 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aAFRM-000611-C0 for submit@debbugs.gnu.org; Sat, 19 Dec 2015 06:12:44 -0500 Received: from eggs.gnu.org ([208.118.235.92]:52157) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aAFRK-00060o-PN for submit@debbugs.gnu.org; Sat, 19 Dec 2015 06:12:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aAFRE-0007II-3Q for submit@debbugs.gnu.org; Sat, 19 Dec 2015 06:12:37 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:57982) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aAFRE-0007IC-01 for submit@debbugs.gnu.org; Sat, 19 Dec 2015 06:12:36 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43102) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aAFRC-0005mv-He for bug-gnu-emacs@gnu.org; Sat, 19 Dec 2015 06:12:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aAFR7-0007HV-44 for bug-gnu-emacs@gnu.org; Sat, 19 Dec 2015 06:12:34 -0500 Received: from mail-lf0-x234.google.com ([2a00:1450:4010:c07::234]:34479) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aAFR6-0007H9-Ns for bug-gnu-emacs@gnu.org; Sat, 19 Dec 2015 06:12:29 -0500 Received: by mail-lf0-x234.google.com with SMTP id y184so86922306lfc.1 for ; Sat, 19 Dec 2015 03:12:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:subject:to:cc:message-id:mime-version:content-type; bh=FFiCtFqhXNMMcuZUH/LyMD6cszL2vyBiCoe6G2c0bJg=; b=kXeCkeNAbFEiGajwCuu2k1pyKfUMAqEh1Kg2a3hHJHUBcGaIs8E8073xw1UOnnKhPn PWNRSh+huiCT4dTBDwGjWVwE6B8C4yHq9Y9CjeW2hnmVgT8ghMIfK8NXvX1UfjBFbupA 8K1Ikv4su1QLZ+DClDzLBGnhUhALqfwnxHpkPCpZX4SKrqB0OJugoSTL5Sg2H0kzFHAH WS7yWHhiiVgv4ZTMBSVGVvySenwnPhmdj2Lu2G+M07FFIs3j3MJ8BeHUZLaLz5VhUtcX QoYZxToDy5tnRiY8n2QoDRoXZiGaC/wbTTbIzjltNMKVTHyUb+S71kPum8VzTGbzD3AI e/NA== X-Received: by 10.25.85.78 with SMTP id j75mr3176984lfb.46.1450523547746; Sat, 19 Dec 2015 03:12:27 -0800 (PST) Received: from [192.168.1.104] (168.165.34.95.customer.cdi.no. [95.34.165.168]) by smtp.gmail.com with ESMTPSA id rm5sm3410621lbb.20.2015.12.19.03.12.26 (version=TLSv1/SSLv3 cipher=OTHER); Sat, 19 Dec 2015 03:12:27 -0800 (PST) Date: Sat, 19 Dec 2015 12:12:25 +0100 From: Simen =?iso-8859-1?q?Heggest=F8yl?= Subject: [PATCH] Add a face for CSS/SCSS variables To: bug-gnu-emacs@gnu.org Message-Id: <1450523545.4477.0@smtp.gmail.com> X-Mailer: geary/0.10.0 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=-cpYEhbZedqWG1wfROJKK" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit Cc: Stefan Monnier X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) --=-cpYEhbZedqWG1wfROJKK Content-Type: text/plain; charset=utf-8; format=flowed Hi, I'd like to propose the following patch, which introduces a new face to be used commonly for CSS and SCSS variable names. -- Simen From dd89467a604d85d7fd2194bfd1a97c6834806727 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simen=20Heggest=C3=B8yl?= Date: Fri, 18 Dec 2015 22:38:08 +0100 Subject: [PATCH] Add a face for CSS/SCSS variables * lisp/textmodes/css-mode.el (css-nmstart-re): Don't match variables. (css-variable): New face for variables. (css--font-lock-keywords): Highlight variables. (scss-font-lock-keywords): Use the new variable face. --- lisp/textmodes/css-mode.el | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el index 3e84b43..8c20df7 100644 --- a/lisp/textmodes/css-mode.el +++ b/lisp/textmodes/css-mode.el @@ -215,7 +215,7 @@ css-syntax-propertize-function (defconst css-escapes-re "\\\\\\(?:[^\000-\037\177]\\|[0-9a-fA-F]+[ \n\t\r\f]?\\)") (defconst css-nmchar-re (concat "\\(?:[-[:alnum:]]\\|" css-escapes-re "\\)")) -(defconst css-nmstart-re (concat "\\(?:--\\)?\\(?:[[:alpha:]]\\|" css-escapes-re "\\)")) +(defconst css-nmstart-re (concat "\\(?:[[:alpha:]]\\|" css-escapes-re "\\)")) (defconst css-ident-re ;; (concat css-nmstart-re css-nmchar-re "*") ;; Apparently, "at rules" names can start with a dash, e.g. @-moz-keyframes. (concat css-nmchar-re "+")) @@ -233,6 +233,8 @@ css-property :group 'css) (defface css-proprietary-property '((t :inherit (css-property italic))) "Face to use for vendor-specific properties.") +(defface css-variable '((t :inherit font-lock-variable-name-face)) + "Face to use for variables.") (defun css--font-lock-keywords (&optional sassy) `((,(concat "!\\s-*" @@ -246,6 +248,8 @@ css--font-lock-keywords ;; 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 'css-variable)) ;; Selectors. ;; FIXME: attribute selectors don't work well because they may contain ;; strings which have already been highlighted as f-l-string-face and @@ -525,7 +529,7 @@ scss-mode-syntax-table st)) (defvar scss-font-lock-keywords - (append `((,(concat "$" css-ident-re) (0 font-lock-variable-name-face))) + (append `((,(concat "$" css-ident-re) (0 'css-variable))) (css--font-lock-keywords 'sassy) `((,(concat "@mixin[ \t]+\\(" css-ident-re "\\)[ \t]*(") (1 font-lock-function-name-face))))) -- 2.6.4 --=-cpYEhbZedqWG1wfROJKK Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
Hi,

I'd like to propose the following patch, = which introduces a new face
to be used commonly for CSS and SCSS = variable names.

-- Simen

=
From dd89467a604d85d7fd2194bfd1a97c6834806727 Mon Sep 17 00:= 00:00 2001
From: =3D?UTF-8?q?Simen=3D20Heggest=3DC3=3DB8yl?=3D &l= t;simenheg@gmail.com>
Date: Fri, 18 Dec 2015 22:38:08 +0100
Subject: [PATCH] Add a face for CSS/SCSS variables

* lisp/textmodes/css-mode.el (css-nmstart-re): Don't match variabl= es.
(css-variable): New face for variables.
(css--font-= lock-keywords): Highlight variables.
(scss-font-lock-keywords): U= se the new variable face.
---
 lisp/textmodes/css-= mode.el | 8 ++++++--
 1 file changed, 6 insertions(+), 2 del= etions(-)

diff --git a/lisp/textmodes/css-mode.el = b/lisp/textmodes/css-mode.el
index 3e84b43..8c20df7 100644
<= div>--- a/lisp/textmodes/css-mode.el
+++ b/lisp/textmodes/css-mod= e.el
@@ -215,7 +215,7 @@ css-syntax-propertize-function
 (defconst css-escapes-re
   "\\\\\\(?:[^\000-\03= 7\177]\\|[0-9a-fA-F]+[ \n\t\r\f]?\\)")
 (defconst css-nmchar= -re (concat "\\(?:[-[:alnum:]]\\|" css-escapes-re "\\)"))
-(defco= nst css-nmstart-re (concat "\\(?:--\\)?\\(?:[[:alpha:]]\\|" css-escapes-re = "\\)"))
+(defconst css-nmstart-re (concat "\\(?:[[:alpha:]]\\|" c= ss-escapes-re "\\)"))
 (defconst css-ident-re ;; (concat css= -nmstart-re css-nmchar-re "*")
   ;; Apparently, "at ru= les" names can start with a dash, e.g. @-moz-keyframes.
  &n= bsp;(concat css-nmchar-re "+"))
@@ -233,6 +233,8 @@ css-property<= /div>
   :group 'css)
 (defface css-proprietar= y-property '((t :inherit (css-property italic)))
   "Fa= ce to use for vendor-specific properties.")
+(defface css-variabl= e '((t :inherit font-lock-variable-name-face))
+  "Face to u= se for variables.")
 
 (defun css--font-lock-= keywords (&optional sassy)
   `((,(concat "!\\s-*"<= /div>
@@ -246,6 +248,8 @@ css--font-lock-keywords
  &nbs= p;  ;; Since "An at-rule consists of everything up to and including th= e next
     ;; semicolon (;) or the next block, wh= ichever comes first."
     (,(concat "@" css-ident= -re) (0 font-lock-builtin-face))
+    ;; Variables.
+    (,(concat "--" css-ident-re) (0 'css-variable))
=
     ;; Selectors.
     ;; FIX= ME: attribute selectors don't work well because they may contain
=      ;; strings which have already been highlighted as f-l-s= tring-face and
@@ -525,7 +529,7 @@ scss-mode-syntax-table
     st))
 
 (defvar scss-f= ont-lock-keywords
-  (append `((,(concat "$" css-ident-re) (= 0 font-lock-variable-name-face)))
+  (append `((,(concat "$"= css-ident-re) (0 'css-variable)))
        &n= bsp;  (css--font-lock-keywords 'sassy)
      =      `((,(concat "@mixin[ \t]+\\(" css-ident-re "\\)[ \t]*("= )
              (1 font-lock-f= unction-name-face)))))
-- 
2.6.4

= --=-cpYEhbZedqWG1wfROJKK-- ------------=_1454250663-8121-1--