diff --git a/changelog_unreleased/less/14103.md b/changelog_unreleased/less/14103.md new file mode 100644 index 000000000000..fe8d35b5bd98 --- /dev/null +++ b/changelog_unreleased/less/14103.md @@ -0,0 +1,17 @@ +#### Do not insert space in LESS property access (#14034 by @mvorisek) + + +```less +// Input +a { + color: @colors[@white]; +} + +// Prettier stable +a { + color: @colors[ @white]; +} + +// Prettier main + +``` diff --git a/src/language-css/printer-postcss.js b/src/language-css/printer-postcss.js index c847279b3910..d787f6345db3 100644 --- a/src/language-css/printer-postcss.js +++ b/src/language-css/printer-postcss.js @@ -620,7 +620,21 @@ function genericPrint(path, options, print) { } // Ignore `@` in Less (i.e. `@@var;`) - if (iNode.type === "value-atword" && iNode.value === "") { + if ( + iNode.type === "value-atword" && + (iNode.value === "" || + /* + @var[ @notVarNested ][notVar] + ^^^^ + */ + iNode.value.endsWith("[") || + /* + @var[ @notVarNested ][notVar] + ^^^^^^^^^ + */ + (iNextNode?.type === "value-word" && + iNextNode.value.startsWith("]"))) + ) { continue; } diff --git a/tests/format/less/case/__snapshots__/jsfmt.spec.js.snap b/tests/format/less/case/__snapshots__/jsfmt.spec.js.snap index 9abe3bd1d0b1..16dd1982b474 100644 --- a/tests/format/less/case/__snapshots__/jsfmt.spec.js.snap +++ b/tests/format/less/case/__snapshots__/jsfmt.spec.js.snap @@ -453,11 +453,11 @@ printWidth: 80 }; @not-var { - canchangecase: @var[ @notVarNested][notVar]; - canchangecase: @var[ @notVarNested][notVar]; - canchangecase: @var[ @notVarNested ][notVar]; - canchangecase: @var[ @notVarNested][ notVar]; - canchangecase: @var[ @notVarNested][notVar ]; + canchangecase: @var[@notVarNested][notVar]; + canchangecase: @var[@notVarNested][notVar]; + canchangecase: @var[@notVarNested][notVar]; + canchangecase: @var[@notVarNested][notVar]; + canchangecase: @var[@notVarNested][notVar]; canchangecase: @var[notVar]; }