diff --git a/changelog_unreleased/scss/15370.md b/changelog_unreleased/scss/15370.md new file mode 100644 index 000000000..ad32949cb --- /dev/null +++ b/changelog_unreleased/scss/15370.md @@ -0,0 +1,19 @@ +#### Do not split call of scss function with leading dash (#15370 by @auvred) + + +```scss +/* Input */ +div { + width: -double(-double(3)); +} + +/* Prettier stable */ +div { + width: -double(- double(3)); +} + +/* Prettier main */ +div { + width: -double(-double(3)); +} +``` diff --git a/src/language-css/print/comma-separated-value-group.js b/src/language-css/print/comma-separated-value-group.js index 92908649f..4818aa6ab 100644 --- a/src/language-css/print/comma-separated-value-group.js +++ b/src/language-css/print/comma-separated-value-group.js @@ -269,7 +269,8 @@ function printCommaSeparatedValueGroup(path, options, print) { options.parser === "scss" && isMathOperator && iNode.value === "-" && - iNextNode.type === "value-func" + iNextNode.type === "value-func" && + locEnd(iNode) !== locStart(iNextNode) ) { parts.push(" "); continue; diff --git a/tests/format/scss/scss/__snapshots__/jsfmt.spec.js.snap b/tests/format/scss/scss/__snapshots__/jsfmt.spec.js.snap index 962e3f23c..60b5b6833 100644 --- a/tests/format/scss/scss/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/scss/scss/__snapshots__/jsfmt.spec.js.snap @@ -1559,6 +1559,16 @@ div { margin: - pow(2, 2) * 100px; } +div { + margin: -double(-double(1em)); + margin: -double(- double(1em)); + margin: - double(-double(1em)); +} + +@function -double($value) { + @return $value * 2; +} + $foo: ( 'property1': (), // comment 1 @@ -2642,6 +2652,16 @@ div { margin: - pow(2, 2) * 100px; } +div { + margin: -double(-double(1em)); + margin: -double(- double(1em)); + margin: - double(-double(1em)); +} + +@function -double($value) { + @return $value * 2; +} + $foo: ( "property1": (), // comment 1 @@ -3752,6 +3772,16 @@ div { margin: - pow(2, 2) * 100px; } +div { + margin: -double(-double(1em)); + margin: -double(- double(1em)); + margin: - double(-double(1em)); +} + +@function -double($value) { + @return $value * 2; +} + $foo: ( 'property1': (), // comment 1 @@ -4835,6 +4865,16 @@ div { margin: - pow(2, 2) * 100px; } +div { + margin: -double(-double(1em)); + margin: -double(- double(1em)); + margin: - double(-double(1em)); +} + +@function -double($value) { + @return $value * 2; +} + $foo: ( "property1": (), // comment 1 diff --git a/tests/format/scss/scss/scss.scss b/tests/format/scss/scss/scss.scss index 785a579bd..534040cff 100644 --- a/tests/format/scss/scss/scss.scss +++ b/tests/format/scss/scss/scss.scss @@ -1090,6 +1090,16 @@ div { margin: - pow(2, 2) * 100px; } +div { + margin: -double(-double(1em)); + margin: -double(- double(1em)); + margin: - double(-double(1em)); +} + +@function -double($value) { + @return $value * 2; +} + $foo: ( 'property1': (), // comment 1