Skip to content

Commit c378f1d

Browse files
committed
Revert change to force whitespace between terms. Fixes microsoft/vscode#147059
1 parent 5ff24b3 commit c378f1d

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

src/parser/cssParser.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1489,8 +1489,6 @@ export class Parser {
14891489
return this.finish(node);
14901490
}
14911491
this.consumeToken();
1492-
} else if (!this.hasWhitespace()) {
1493-
break;
14941492
}
14951493
if (!node.addChild(this._parseBinaryExpr())) {
14961494
break;

src/test/css/parser.test.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ export function assertFunction(text: string, parser: Parser, f: () => nodes.Node
2727

2828
export function assertNoNode(text: string, parser: Parser, f: () => nodes.Node | null): void {
2929
let node = parser.internalParse(text, f)!;
30-
assert.ok(node === null);
30+
assert.ok(node === null || !parser.accept(TokenType.EOF));
3131
}
3232

3333
export function assertError(text: string, parser: Parser, f: () => nodes.Node | null, error: nodes.IRule): void {
@@ -118,9 +118,6 @@ suite('CSS - Parser', () => {
118118
assertNode('@font-face { src: url(http://test) }', parser, parser._parseFontFace.bind(parser));
119119
assertNode('@font-face { font-style: normal; font-stretch: normal; }', parser, parser._parseFontFace.bind(parser));
120120
assertNode('@font-face { unicode-range: U+0021-007F }', parser, parser._parseFontFace.bind(parser));
121-
assertError('@font-face { unicode-range: U+002?-01??; }', parser, parser._parseFontFace.bind(parser), ParseError.SemiColonExpected);
122-
assertError('@font-face { unicode-range: U+00?0; }', parser, parser._parseFontFace.bind(parser), ParseError.SemiColonExpected);
123-
assertError('@font-face { unicode-range: U+0XFF; }', parser, parser._parseFontFace.bind(parser), ParseError.SemiColonExpected);
124121
assertError('@font-face { font-style: normal font-stretch: normal; }', parser, parser._parseFontFace.bind(parser), ParseError.SemiColonExpected);
125122
});
126123

@@ -425,9 +422,10 @@ suite('CSS - Parser', () => {
425422
assertNode('grid-template-columns: [a] auto [b] minmax(min-content, 1fr) [b c d] repeat(2, [e] 40px)', parser, parser._parseDeclaration.bind(parser));
426423
assertNode('grid-template: [foo] 10px / [bar] 10px', parser, parser._parseDeclaration.bind(parser));
427424
assertNode(`grid-template: 'left1 footer footer' 1fr [end] / [ini] 1fr [info-start] 2fr 1fr [end]`, parser, parser._parseDeclaration.bind(parser));
425+
assertNode(`content: "("counter(foo) ")"`, parser, parser._parseDeclaration.bind(parser));
428426
});
429427

430-
test('term', function () {
428+
test.only('term', function () {
431429
let parser = new Parser();
432430
assertNode('"asdasd"', parser, parser._parseTerm.bind(parser));
433431
assertNode('name', parser, parser._parseTerm.bind(parser));
@@ -448,8 +446,13 @@ suite('CSS - Parser', () => {
448446
assertNode('calc(50% + (100%/3 - 2*1em - 2*1px))', parser, parser._parseTerm.bind(parser));
449447
assertNoNode('%(\'repetitions: %S file: %S\', 1 + 2, "directory/file.less")', parser, parser._parseTerm.bind(parser)); // less syntax
450448
assertNoNode('~"ms:alwaysHasItsOwnSyntax.For.Stuff()"', parser, parser._parseTerm.bind(parser)); // less syntax
449+
assertNode('U+002?-0199', parser, parser._parseTerm.bind(parser));
450+
assertNoNode('U+002?-01??', parser, parser._parseTerm.bind(parser));
451+
assertNoNode('U+00?0;', parser, parser._parseTerm.bind(parser));
452+
assertNoNode('U+0XFF;', parser, parser._parseTerm.bind(parser));
451453
});
452454

455+
453456
test('function', function () {
454457
let parser = new Parser();
455458
assertNode('name( "bla" )', parser, parser._parseFunction.bind(parser));

0 commit comments

Comments
 (0)