diff --git a/spec/syntax-scope-map-spec.js b/spec/syntax-scope-map-spec.js index ec52c24b6..4b30ef934 100644 --- a/spec/syntax-scope-map-spec.js +++ b/spec/syntax-scope-map-spec.js @@ -49,13 +49,15 @@ describe('SyntaxScopeMap', () => { const map = new SyntaxScopeMap({ '"b"': 'w', 'a > "b"': 'x', - 'a > "b":nth-child(1)': 'y' + 'a > "b":nth-child(1)': 'y', + '"\\""': 'z' }) expect(map.get(['b'], [0], true)).toBe(undefined) expect(map.get(['b'], [0], false)).toBe('w') expect(map.get(['a', 'b'], [0, 0], false)).toBe('x') expect(map.get(['a', 'b'], [0, 1], false)).toBe('y') + expect(map.get(['a', '"'], [0, 1], false)).toBe('z') }) it('supports the wildcard selector', () => { diff --git a/src/syntax-scope-map.js b/src/syntax-scope-map.js index 90e4cd141..39b127079 100644 --- a/src/syntax-scope-map.js +++ b/src/syntax-scope-map.js @@ -36,7 +36,7 @@ class SyntaxScopeMap { case 'string': if (!currentTable) currentTable = this.anonymousScopeTable - const value = termNode.value.slice(1, -1) + const value = termNode.value.slice(1, -1).replace(/\\"/g, '"') if (!currentTable[value]) currentTable[value] = {} currentTable = currentTable[value] if (currentIndexValue != null) {