diff options
| author | Simen Heggestøyl | 2017-08-15 12:39:42 +0200 |
|---|---|---|
| committer | Simen Heggestøyl | 2017-08-15 14:38:15 +0200 |
| commit | 141cc78aa4552e99bf14c13d9e64357ccafe171b (patch) | |
| tree | a2fcad61285d000fbf5ab0e70c45ef42d20f3ded | |
| parent | 85a9f42b6ca7711c64cbd3e4e261fae308eab9d3 (diff) | |
| download | emacs-141cc78aa4552e99bf14c13d9e64357ccafe171b.tar.gz emacs-141cc78aa4552e99bf14c13d9e64357ccafe171b.zip | |
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.
| -rw-r--r-- | lisp/textmodes/css-mode.el | 9 | ||||
| -rw-r--r-- | 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 19cb7b4fea8..1e49ca81fcc 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." | |||
| 1205 | (`(:before . "{") | 1205 | (`(:before . "{") |
| 1206 | (when (or (smie-rule-hanging-p) (smie-rule-bolp)) | 1206 | (when (or (smie-rule-hanging-p) (smie-rule-bolp)) |
| 1207 | (smie-backward-sexp ";") | 1207 | (smie-backward-sexp ";") |
| 1208 | (smie-indent-virtual))) | 1208 | (unless (eq (char-after) ?\{) |
| 1209 | (`(:before . ,(or "{" "(")) | 1209 | (smie-indent-virtual)))) |
| 1210 | (if (smie-rule-hanging-p) (smie-rule-parent 0))) | 1210 | (`(:before . "(") |
| 1211 | (cond | ||
| 1212 | ((smie-rule-hanging-p) (smie-rule-parent 0)) | ||
| 1213 | ((not (smie-rule-bolp)) 0))) | ||
| 1211 | (`(:after . ":-property") | 1214 | (`(:after . ":-property") |
| 1212 | (when (smie-rule-hanging-p) | 1215 | (when (smie-rule-hanging-p) |
| 1213 | css-indent-offset)))) | 1216 | 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 00000000000..36c037450cc --- /dev/null +++ b/test/manual/indent/less-css-mode.less | |||
| @@ -0,0 +1,29 @@ | |||
| 1 | .desktop-and-old-ie(@rules) { | ||
| 2 | @media screen and (min-width: 1200) { @rules(); } | ||
| 3 | html.lt-ie9 & { @rules(); } | ||
| 4 | } | ||
| 5 | |||
| 6 | header { | ||
| 7 | background-color: blue; | ||
| 8 | |||
| 9 | .desktop-and-old-ie({ | ||
| 10 | background-color: red; | ||
| 11 | }); | ||
| 12 | } | ||
| 13 | |||
| 14 | .e(@name, @rules) { | ||
| 15 | &__@{name} { @rules(); } | ||
| 16 | } | ||
| 17 | |||
| 18 | .m(@name, @rules) { | ||
| 19 | &--@{name} { @rules(); } | ||
| 20 | } | ||
| 21 | |||
| 22 | .btn { | ||
| 23 | .e(span, { // .btn__span | ||
| 24 | display: inline-block; | ||
| 25 | }); | ||
| 26 | .m(primary, { // .btn--primary | ||
| 27 | background: blue; | ||
| 28 | }); | ||
| 29 | } | ||