Skip to content

Commit 5ad61d6

Browse files
plesieckijonathantneal
authored andcommitted
Allow escaped dot within class name
1 parent c6e79b4 commit 5ad61d6

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

src/__tests__/classes.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,9 @@ test('ClassName#set value', ".fo\\o", (t, selectors) => {
4343
className.value = "bar";
4444
t.deepEqual(className.raws, {});
4545
});
46+
47+
test('escaped dot in class name', '.foo\\.bar', (t, tree) => {
48+
t.deepEqual(tree.nodes[0].nodes[0].type, 'class');
49+
t.deepEqual(tree.nodes[0].nodes[0].value, 'foo.bar');
50+
t.deepEqual(tree.nodes[0].nodes[0].raws.value, 'foo\\.bar');
51+
});

src/parser.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -821,7 +821,7 @@ export default class Parser {
821821
}
822822
nextToken = this.nextToken;
823823
}
824-
const hasClass = indexesOf(word, '.');
824+
const hasClass = indexesOf(word, '.').filter(i => word[i - 1] !== '\\');
825825
let hasId = indexesOf(word, '#');
826826
// Eliminate Sass interpolations from the list of id indexes
827827
const interpolations = indexesOf(word, '#{');

0 commit comments

Comments
 (0)