From c6d97abf9566cf7698ad4be0d0f5be085ef9b15f Mon Sep 17 00:00:00 2001 From: Andy Mockler Date: Sat, 21 Oct 2017 21:35:22 -0400 Subject: [PATCH] Format SCSS maps like CSS rules (#3070) * Format SCSS maps like CSS rules * Ensure parent value starts with $ before formatting map with hardlines --- src/printer-postcss.js | 11 ++++++++++- tests/css_scss/__snapshots__/jsfmt.spec.js.snap | 5 +++++ tests/css_scss/scss.css | 1 + 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/printer-postcss.js b/src/printer-postcss.js index 58763cc1..4b9a77ab 100644 --- a/src/printer-postcss.js +++ b/src/printer-postcss.js @@ -339,13 +339,22 @@ function genericPrint(path, options, print) { return group(indent(fill(res))); } + const declaration = path.getParentNode(2); + const isMap = + declaration && + declaration.type === "css-decl" && + declaration.prop.startsWith("$"); + return group( concat([ n.open ? path.call(print, "open") : "", indent( concat([ softline, - join(concat([",", line]), path.map(print, "groups")) + join( + concat([",", isMap ? hardline : line]), + path.map(print, "groups") + ) ]) ), softline, diff --git a/tests/css_scss/__snapshots__/jsfmt.spec.js.snap b/tests/css_scss/__snapshots__/jsfmt.spec.js.snap index e726f9ff..f0175c57 100644 --- a/tests/css_scss/__snapshots__/jsfmt.spec.js.snap +++ b/tests/css_scss/__snapshots__/jsfmt.spec.js.snap @@ -18,6 +18,7 @@ div { } } a { margin: 0 { left: 10px; } } +$map: (color: #111111, text-shadow: 1px 1px 0 salmon); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @media #{$g-breakpoint-tiny} { } @@ -38,5 +39,9 @@ a { left: 10px; } } +$map: ( + color: #111111, + text-shadow: 1px 1px 0 salmon +); `; diff --git a/tests/css_scss/scss.css b/tests/css_scss/scss.css index c1bfa7f3..f55a7f72 100644 --- a/tests/css_scss/scss.css +++ b/tests/css_scss/scss.css @@ -8,3 +8,4 @@ div { } } a { margin: 0 { left: 10px; } } +$map: (color: #111111, text-shadow: 1px 1px 0 salmon);