Skip to content

Commit

Permalink
Stop inserting space in LESS property access (#14103)
Browse files Browse the repository at this point in the history
  • Loading branch information
fisker committed Jan 7, 2023
1 parent 0c5d4f3 commit 9e09a78
Show file tree
Hide file tree
Showing 5 changed files with 81 additions and 6 deletions.
17 changes: 17 additions & 0 deletions changelog_unreleased/less/14103.md
@@ -0,0 +1,17 @@
#### Do not insert space in LESS property access (#14103 by @fisker)

<!-- prettier-ignore -->
```less
// Input
a {
color: @colors[@white];
}

// Prettier stable
a {
color: @colors[ @white];
}

// Prettier main
<Same as input>
```
21 changes: 21 additions & 0 deletions src/language-css/clean.js
Expand Up @@ -183,6 +183,27 @@ function clean(ast, newObj, parent) {
});
}
}

// We parse `@var[ foo ]` and `@var[foo]` differently
if (
ast.type === "value-comma_group" &&
ast.groups.some(
(node) =>
(node.type === "value-atword" && node.value.endsWith("[")) ||
(node.type === "value-word" && node.value.startsWith("]"))
)
) {
return {
type: "value-atword",
value: ast.groups.map((node) => node.value).join(""),
group: {
open: null,
close: null,
groups: [],
type: "value-paren_group",
},
};
}
}

clean.ignoredProperties = ignoredProperties;
Expand Down
21 changes: 20 additions & 1 deletion src/language-css/printer-postcss.js
Expand Up @@ -621,7 +621,26 @@ 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("["))
) {
continue;
}

/*
@var[ @notVarNested ][notVar]
^^^^^^^^^
*/
if (
iNextNode.type === "value-word" &&
iNextNode.value.startsWith("]")
) {
continue;
}

Expand Down
22 changes: 17 additions & 5 deletions tests/format/less/case/__snapshots__/jsfmt.spec.js.snap
Expand Up @@ -389,9 +389,15 @@ printWidth: 80
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];
canChangeCase: @var[ notVar];
canChangeCase: @var[notVar ];
canChangeCase: @var[ notVar ];
}
=====================================output=====================================
Expand Down Expand Up @@ -453,11 +459,17 @@ 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[@notVarNested][notVar];
canchangecase: @var[@notVarNested][notVar];
canchangecase: @var[@notVarNested][notVar];
canchangecase: @var[notVar];
canchangecase: @var[notVar];
canchangecase: @var[notVar];
canchangecase: @var[notVar];
}
Expand Down
6 changes: 6 additions & 0 deletions tests/format/less/case/variable.less
Expand Up @@ -59,7 +59,13 @@
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];
canChangeCase: @var[ notVar];
canChangeCase: @var[notVar ];
canChangeCase: @var[ notVar ];
}

0 comments on commit 9e09a78

Please sign in to comment.