* 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.
(`(: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))))
--- /dev/null
+.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) {
+ &__@{name} { @rules(); }
+}
+
+.m(@name, @rules) {
+ &--@{name} { @rules(); }
+}
+
+.btn {
+ .e(span, { // .btn__span
+ display: inline-block;
+ });
+ .m(primary, { // .btn--primary
+ background: blue;
+ });
+}