From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Simen =?UTF-8?Q?Heggest=C3=B8yl?= Newsgroups: gmane.emacs.bugs Subject: bug#20107: [PATCH 1/3] css-mode: Discriminate between pseudo-classes and -elements Date: Sat, 14 Mar 2015 12:19:01 +0100 Message-ID: <1426331941.18090.0@smtp.gmail.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="=-OeGPOase8s5gOMMLzhsQ" X-Trace: ger.gmane.org 1426332023 27174 80.91.229.3 (14 Mar 2015 11:20:23 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 14 Mar 2015 11:20:23 +0000 (UTC) To: 20107@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Mar 14 12:20:14 2015 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1YWk71-0004Si-N7 for geb-bug-gnu-emacs@m.gmane.org; Sat, 14 Mar 2015 12:20:11 +0100 Original-Received: from localhost ([::1]:40396 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YWk70-0008J8-Nu for geb-bug-gnu-emacs@m.gmane.org; Sat, 14 Mar 2015 07:20:10 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:43241) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YWk6w-0008I2-6f for bug-gnu-emacs@gnu.org; Sat, 14 Mar 2015 07:20:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YWk6s-0007GG-EP for bug-gnu-emacs@gnu.org; Sat, 14 Mar 2015 07:20:06 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:47124) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YWk6s-0007G6-Bq for bug-gnu-emacs@gnu.org; Sat, 14 Mar 2015 07:20:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1YWk6r-000384-S0 for bug-gnu-emacs@gnu.org; Sat, 14 Mar 2015 07:20:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Simen =?UTF-8?Q?Heggest=C3=B8yl?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 14 Mar 2015 11:20:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 20107 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.142633195511956 (code B ref -1); Sat, 14 Mar 2015 11:20:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 14 Mar 2015 11:19:15 +0000 Original-Received: from localhost ([127.0.0.1]:45692 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YWk66-00036m-AZ for submit@debbugs.gnu.org; Sat, 14 Mar 2015 07:19:14 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:41252) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YWk64-00036e-6Z for submit@debbugs.gnu.org; Sat, 14 Mar 2015 07:19:13 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YWk62-00072a-If for submit@debbugs.gnu.org; Sat, 14 Mar 2015 07:19:11 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:34636) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YWk62-00072S-Et for submit@debbugs.gnu.org; Sat, 14 Mar 2015 07:19:10 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:42938) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YWk60-00089X-UA for bug-gnu-emacs@gnu.org; Sat, 14 Mar 2015 07:19:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YWk5x-000710-Mc for bug-gnu-emacs@gnu.org; Sat, 14 Mar 2015 07:19:08 -0400 Original-Received: from mail-wi0-x234.google.com ([2a00:1450:400c:c05::234]:35583) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YWk5x-00070q-CS for bug-gnu-emacs@gnu.org; Sat, 14 Mar 2015 07:19:05 -0400 Original-Received: by wibdy8 with SMTP id dy8so5499343wib.0 for ; Sat, 14 Mar 2015 04:19:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:subject:to:message-id:mime-version:content-type; bh=XL7p2gmismPlTb8CPLGHWIvE2Ci5pb1gHwauSluCtQ8=; b=yOAj10dtBlXSU9ePSck6lHVJPqzaTyeQ9oU/ggNKke7MDun9ei5ufugk2jO2d2LSCk rT3tPULfNSoWIct8ZLwo0mnZfBmsPmqTNm2RSJQR6RFV9QBfzkC+xQjoYeUaleWPfhMB CR4WR3YM9HnHcTVU4uZ9ZLd1VB2gyZO1ARxwbekTYFJ78E1Iugk8eckf080+2pDQZSpt c7Jn63z8ypu31YZLk7b0/i22F/p3Ufa7m2zivBX2f7+hXjY2CMO/DtjcdANSzYlTKFmz 1RgxzS6ldpp6DmHDtQTSc+Xgm/PDtaqZiL2wid5agf07qVnhJeo1HHSULWdIMglYSxpo KbYg== X-Received: by 10.180.187.171 with SMTP id ft11mr61762860wic.0.1426331944764; Sat, 14 Mar 2015 04:19:04 -0700 (PDT) Original-Received: from [192.168.1.114] (cm-84.215.200.46.getinternet.no. [84.215.200.46]) by mx.google.com with ESMTPSA id dm6sm6557827wib.22.2015.03.14.04.19.03 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 14 Mar 2015 04:19:04 -0700 (PDT) X-Mailer: geary/0.8.2 X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:100469 Archived-At: --=-OeGPOase8s5gOMMLzhsQ Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Hi. The following patch makes `css-mode' discriminate between pseudo-classes and pseudo-ids. While it might not seem immediately useful to do so, it will become useful when completion at point is implemented in a later patch. From b87dadfbbacbd1372ba31e2f591a260e7b4b581f Mon Sep 17 00:00:00 2001 From: =3D?UTF-8?q?Simen=3D20Heggest=3DC3=3DB8yl?=3D Date: Sat, 14 Mar 2015 10:54:39 +0100 Subject: [PATCH 1/3] Discriminate between pseudo-classes and -elements * textmodes/css-mode.el (css--font-lock-keywords): Discriminate between pseudo-classes and pseudo-elements. (css-pseudo-ids): Remove. (css-pseudo-class-ids): New variable. (css-pseudo-element-ids): New variable. --- lisp/ChangeLog | 8 ++++++++ lisp/textmodes/css-mode.el | 21 ++++++++++++++++----- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d393190..70122c7 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2015-03-14 Simen Heggest=C3=B8yl + + * textmodes/css-mode.el (css--font-lock-keywords): Discriminate + between pseudo-classes and pseudo-elements. + (css-pseudo-ids): Remove. + (css-pseudo-class-ids): New variable. + (css-pseudo-element-ids): New variable. + 2015-03-13 Kevin Ryde info-look fixes for Texinfo 5 diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el index 44dc4df..dc11d44 100644 --- a/lisp/textmodes/css-mode.el +++ b/lisp/textmodes/css-mode.el @@ -120,10 +120,17 @@ ;; (media . "^ +\\* '\\([^ '\n]+\\)' media group") ;; (property . "^ +\\* '\\([^ '\n]+\\)',"))) -(defconst css-pseudo-ids - '("active" "after" "before" "first" "first-child" "first-letter"=20 "first-line" - "focus" "hover" "lang" "left" "link" "right" "visited") - "Identifiers for pseudo-elements and pseudo-classes.") +(defconst css-pseudo-class-ids + '("active" "checked" "disabled" "empty" "enabled" "first" + "first-child" "first-of-type" "focus" "hover" "indeterminate"=20 "lang" + "last-child" "last-of-type" "left" "link" "nth-child" + "nth-last-child" "nth-last-of-type" "nth-of-type" "only-child" + "only-of-type" "right" "root" "target" "visited") + "Identifiers for pseudo-classes.") + +(defconst css-pseudo-element-ids + '("after" "before" "first-letter" "first-line") + "Identifiers for pseudo-elements.") (defconst css-at-ids '("charset" "font-face" "import" "media" "page") @@ -258,7 +265,11 @@ (concat "\\(?:" scss--hash-re "\\|[^@/:{} \t\n#]\\)" "[^:{}#]*\\(?:" scss--hash-re "[^:{}#]*\\)*")) - "\\(?::" (regexp-opt css-pseudo-ids t) + ;; Even though pseudo-elements should be prefixed by ::, a + ;; single colon is accepted for backward compatibility. + "\\(?:\\(:" (regexp-opt (append css-pseudo-class-ids + css-pseudo-element-ids) t) + "\\|\\::" (regexp-opt css-pseudo-element-ids t) "\\)" "\\(?:([^\)]+)\\)?" (if (not sassy) "[^:{}\n]*" --=20 2.1.4 = --=-OeGPOase8s5gOMMLzhsQ Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
Hi.

The following patch makes `css-mode' disc= riminate between
pseudo-classes and pseudo-ids. While it might no= t seem immediately
useful to do so, it will become useful when co= mpletion at point is
implemented in a later patch.

=

From b87dadfbbacbd1372ba31e2f591a260e7b4b581f Mon= Sep 17 00:00:00 2001
From: =3D?UTF-8?q?Simen=3D20Heggest=3DC3=3D= B8yl?=3D <simenheg@gmail.com>
Date: Sat, 14 Mar 2015 10:54:= 39 +0100
Subject: [PATCH 1/3] Discriminate between pseudo-classes= and -elements

* textmodes/css-mode.el (css--font-= lock-keywords): Discriminate
between pseudo-classes and pseudo-el= ements.
(css-pseudo-ids): Remove.
(css-pseudo-class-ids= ): New variable.
(css-pseudo-element-ids): New variable.
---
 lisp/ChangeLog           &nb= sp; |  8 ++++++++
 lisp/textmodes/css-mode.el | 21 ++++= ++++++++++++-----
 2 files changed, 24 insertions(+), 5 dele= tions(-)

diff --git a/lisp/ChangeLog b/lisp/Change= Log
index d393190..70122c7 100644
--- a/lisp/ChangeLog<= /div>
+++ b/lisp/ChangeLog
@@ -1,3 +1,11 @@
+2015-0= 3-14  Simen Heggest=C3=B8yl  <simenheg@gmail.com>
+
+ * textmodes/css-mode.el (css--font-lock-keywords): Discriminate
+ betwee= n pseudo-classes and pseudo-elements.
+ (css-pseudo-ids): Remove.
= + (css-pseu= do-class-ids): New variable.
+ (css-pseudo-element-ids): New variable.
=
+
 2015-03-13  Kevin Ryde  <user42_kevin@y= ahoo.com.au>
 
  info-look fixes for Texinfo 5
<= div>diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el
index 44dc4df..dc11d44 100644
--- a/lisp/textmodes/css-mo= de.el
+++ b/lisp/textmodes/css-mode.el
@@ -120,10 +120,= 17 @@
 ;;    (media . "^ +\\* '\\([^ '\n]+\\)' med= ia group")
 ;;    (property . "^ +\\* '\\([^ '\n]+= \\)',")))
 
-(defconst css-pseudo-ids
- =  '("active" "after" "before" "first" "first-child" "first-letter" "fir= st-line"
-    "focus" "hover" "lang" "left" "link" "rig= ht" "visited")
-  "Identifiers for pseudo-elements and pseud= o-classes.")
+(defconst css-pseudo-class-ids
+  '(= "active" "checked" "disabled" "empty" "enabled" "first"
+   =  "first-child" "first-of-type" "focus" "hover" "indeterminate" "lang"<= /div>
+    "last-child" "last-of-type" "left" "link" "nth-chi= ld"
+    "nth-last-child" "nth-last-of-type" "nth-of-ty= pe" "only-child"
+    "only-of-type" "right" "root" "ta= rget" "visited")
+  "Identifiers for pseudo-classes.")
=
+
+(defconst css-pseudo-element-ids
+  '("aft= er" "before" "first-letter" "first-line")
+  "Identifiers fo= r pseudo-elements.")
 
 (defconst css-at-ids<= /div>
   '("charset" "font-face" "import" "media" "page")
@@ -258,7 +265,11 @@
          (c= oncat "\\(?:" scss--hash-re
          &n= bsp;       "\\|[^@/:{} \t\n#]\\)"
    &n= bsp;             "[^:{}#]*\\(?:" scss--hash-r= e "[^:{}#]*\\)*"))
-       "\\(?::" (regexp-opt cs= s-pseudo-ids t)
+       ;; Even though pseudo-elem= ents should be prefixed by ::, a
+       ;; single= colon is accepted for backward compatibility.
+     &n= bsp; "\\(?:\\(:" (regexp-opt (append css-pseudo-class-ids
+  = ;                     &nb= sp;               css-pseudo-element-ids= ) t)
+       "\\|\\::" (regexp-opt css-pseudo-elem= ent-ids t) "\\)"
        "\\(?:([^\)]+)\\)?"<= /div>
        (if (not sassy)
  &nbs= p;         "[^:{}\n]*"
-- 
2.1= .4
= --=-OeGPOase8s5gOMMLzhsQ--