Skip to content

Commit 5d30238

Browse files
authored
fix layer and container in scss (#371)
1 parent f55163f commit 5d30238

File tree

3 files changed

+14
-5
lines changed

3 files changed

+14
-5
lines changed

Diff for: src/parser/cssParser.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -950,11 +950,10 @@ export class Parser {
950950

951951
public _parseLayerName(): nodes.Node | null {
952952
// <layer-name> = <ident> [ '.' <ident> ]*
953-
if (!this.peek(TokenType.Ident)) {
953+
const node = this.createNode(nodes.NodeType.LayerName);
954+
if (!node.addChild(this._parseIdent()) ) {
954955
return null;
955956
}
956-
const node = this.createNode(nodes.NodeType.LayerName);
957-
node.addChild(this._parseIdent());
958957
while (!this.hasWhitespace() && this.acceptDelim('.')) {
959958
if (this.hasWhitespace() || !node.addChild(this._parseIdent())) {
960959
return this.finish(node, ParseError.IdentifierExpected);

Diff for: src/parser/cssScanner.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ export enum TokenType {
4747
Comment,
4848
SingleLineComment,
4949
EOF,
50-
CustomToken,
51-
ContainerQueryLength
50+
ContainerQueryLength,
51+
CustomToken // must be last token type
5252
}
5353

5454
export interface IToken {

Diff for: src/test/scss/parser.test.ts

+10
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,16 @@ suite('SCSS - Parser', () => {
283283
assertNode('@import url("override.css") layer;', parser, parser._parseStylesheet.bind(parser));
284284
});
285285

286+
test('@layer', function () {
287+
const parser = new SCSSParser();
288+
assertNode('@layer #{$layer} { }', parser, parser._parseLayer.bind(parser));
289+
});
290+
291+
test('@container', function () {
292+
const parser = new SCSSParser();
293+
assertNode(`@container (min-width: #{$minWidth}) { .scss-interpolation { line-height: 10cqh; } }`, parser, parser._parseStylesheet.bind(parser));
294+
});
295+
286296
test('@use', function () {
287297
const parser = new SCSSParser();
288298
assertNode('@use "test"', parser, parser._parseUse.bind(parser));

0 commit comments

Comments
 (0)