emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 141cc78: Support indentation of detached Less CSS r


From: Simen Heggestøyl
Subject: [Emacs-diffs] master 141cc78: Support indentation of detached Less CSS rulesets
Date: Tue, 15 Aug 2017 08:40:00 -0400 (EDT)

branch: master
commit 141cc78aa4552e99bf14c13d9e64357ccafe171b
Author: Simen Heggestøyl <address@hidden>
Commit: Simen Heggestøyl <address@hidden>

    Support indentation of detached Less CSS rulesets
    
    * lisp/textmodes/css-mode.el (css-smie-rules): Provide better support
    for indentation of detached rulesets passed to Less mixins.
    
    * test/manual/indent/less-css-mode.less: New file.
---
 lisp/textmodes/css-mode.el            |  9 ++++++---
 test/manual/indent/less-css-mode.less | 29 +++++++++++++++++++++++++++++
 2 files changed, 35 insertions(+), 3 deletions(-)

diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el
index 19cb7b4..1e49ca8 100644
--- a/lisp/textmodes/css-mode.el
+++ b/lisp/textmodes/css-mode.el
@@ -1205,9 +1205,12 @@ for determining whether point is within a selector."
     (`(:before . "{")
      (when (or (smie-rule-hanging-p) (smie-rule-bolp))
        (smie-backward-sexp ";")
-       (smie-indent-virtual)))
-    (`(:before . ,(or "{" "("))
-     (if (smie-rule-hanging-p) (smie-rule-parent 0)))
+       (unless (eq (char-after) ?\{)
+         (smie-indent-virtual))))
+    (`(:before . "(")
+     (cond
+      ((smie-rule-hanging-p) (smie-rule-parent 0))
+      ((not (smie-rule-bolp)) 0)))
     (`(:after . ":-property")
      (when (smie-rule-hanging-p)
        css-indent-offset))))
diff --git a/test/manual/indent/less-css-mode.less 
b/test/manual/indent/less-css-mode.less
new file mode 100644
index 0000000..36c0374
--- /dev/null
+++ b/test/manual/indent/less-css-mode.less
@@ -0,0 +1,29 @@
+.desktop-and-old-ie(@rules) {
+    @media screen and (min-width: 1200) { @rules(); }
+    html.lt-ie9 &                       { @rules(); }
+}
+
+header {
+    background-color: blue;
+
+    .desktop-and-old-ie({
+        background-color: red;
+    });
+}
+
+.e(@name, @rules) {
+    &address@hidden { @rules(); }
+}
+
+.m(@name, @rules) {
+    &address@hidden { @rules(); }
+}
+
+.btn {
+    .e(span, {  // .btn__span
+        display: inline-block;
+    });
+    .m(primary, { // .btn--primary
+        background: blue;
+    });
+}



reply via email to

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