emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 6083965: css-mode.el (css-smie-rules): Fix indentat


From: Stefan Monnier
Subject: [Emacs-diffs] master 6083965: css-mode.el (css-smie-rules): Fix indentation after complex selectors
Date: Thu, 09 Apr 2015 14:51:28 +0000

branch: master
commit 6083965958381b29aa55948670d2b85289b0be6d
Author: Stefan Monnier <address@hidden>
Commit: Stefan Monnier <address@hidden>

    css-mode.el (css-smie-rules): Fix indentation after complex selectors
    
    Fixes: debbugs:20282
    
    * lisp/textmodes/css-mode.el (css-smie-rules): Don't get confused by
    inner structure of selectors.
---
 lisp/textmodes/css-mode.el |    4 ++++
 test/indent/css-mode.css   |   15 +++++++++++++++
 2 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el
index 7280080..851618c 100644
--- a/lisp/textmodes/css-mode.el
+++ b/lisp/textmodes/css-mode.el
@@ -327,6 +327,10 @@
     (`(:elem . basic) css-indent-offset)
     (`(:elem . arg) 0)
     (`(:list-intro . ,(or `";" `"")) t) ;"" stands for BOB (bug#15467).
+    (`(:before . "{")
+     (when (smie-rule-hanging-p)
+       (smie-backward-sexp ";")
+       (smie-indent-virtual)))
     (`(:before . ,(or "{" "("))
      (if (smie-rule-hanging-p) (smie-rule-parent 0)))))
 
diff --git a/test/indent/css-mode.css b/test/indent/css-mode.css
index 564ac16..faf9153 100644
--- a/test/indent/css-mode.css
+++ b/test/indent/css-mode.css
@@ -8,6 +8,21 @@ article[role="main"] {
     width: 60%;
 }
 
+a, b:hover, c {
+    color: black;
+}
+
+a, b:hover {                    /* bug:20282 */
+    c {
+        color: black;
+    }
+    color: black;
+}
+
+a.b:c,d.e:f,g[h]:i,j[k]:l,.m.n:o,.p.q:r,.s[t]:u,.v[w]:x { /* bug:20282 */
+    background-color: white;
+}
+
 /* asdfasdf */
 @foo x2 {
     bla:toto;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]