Keep LESS indirect property lookups tight (#19782)

This commit is contained in:
Konv Suu authored and GitHub committed 2026-08-13 08:24:32 +08:00
1 parent 43b8bb401f
commit 8f2e4a6682
5 files changed
+101 -1

No files matched your search

+19
View File
@@ -0,0 +1,19 @@
#### Remove extra spaces after `[$` in indirect property lookups (#19782 by @kovsu)
<!-- prettier-ignore -->
```less
// Input
.foo {
value: #namespace[$@prop-name];
}
// Prettier stable
.foo {
value: #namespace[$ @prop-name];
}
// Prettier main
.foo {
value: #namespace[$@prop-name];
}
```
@@ -249,6 +249,28 @@ function printCommaSeparatedValueGroup(path, options, print) {
continue;
}
// `foo[$@bar]`
// ^
if (
iNode.type === "value-word" &&
iNode.value.endsWith("[$") &&
iNextNode?.type === "value-atword"
) {
continue;
}
// `foo[ $@bar ]`
// ^
if (
iNode.type === "value-word" &&
iNode.value === "$" &&
iPrevNode?.type === "value-word" &&
iPrevNode.value.endsWith("[") &&
iNextNode?.type === "value-atword"
) {
continue;
}
}
// Ignore escape `\`
@@ -15314,7 +15314,7 @@ parsers: ["less"]
my-prop: prop-value;
}
.test-prop-interp {
value: #namespace[$ @prop-name];
value: #namespace[$@prop-name];
}
// Lines 43-47: Variable not found error path
@@ -124,3 +124,46 @@ parsers: ["less"]
================================================================================
`;
exports[`lookup-3.less format 1`] = `
====================================options=====================================
parsers: ["less"]
printWidth: 80 (default) |
=====================================input======================================
#ns() {
@v: green;
color: red;
}
@p: color;
.box {
last: #ns[];
bare: #ns[color];
prop: #ns[$color];
variable: #ns[@v];
indirect-prop: #ns[$@p];
indirect-prop: #ns[ $@p ];
indirect-prop: #ns [ $@p ];
}
=====================================output=====================================
#ns() {
@v: green;
color: red;
}
@p: color;
.box {
last: #ns[];
bare: #ns[color];
prop: #ns[$color];
variable: #ns[@v];
indirect-prop: #ns[$@p];
indirect-prop: #ns[$@p];
indirect-prop: #ns[$@p];
}
================================================================================
`;
+16
View File
@@ -0,0 +1,16 @@
#ns() {
@v: green;
color: red;
}
@p: color;
.box {
last: #ns[];
bare: #ns[color];
prop: #ns[$color];
variable: #ns[@v];
indirect-prop: #ns[$@p];
indirect-prop: #ns[ $@p ];
indirect-prop: #ns [ $@p ];
}