diff --git a/packages/core/src/lint/utils.ts b/packages/core/src/lint/utils.ts index 2030a0658..8d61374a4 100644 --- a/packages/core/src/lint/utils.ts +++ b/packages/core/src/lint/utils.ts @@ -79,6 +79,20 @@ export function findHtmlTag(source: string): OpenTag | null { }; } +// Same-length whitespace keeps downstream offsets aligned. +function maskRanges(src: string, pattern: RegExp): string { + const p = new RegExp( + pattern.source, + pattern.flags.includes("g") ? pattern.flags : pattern.flags + "g", + ); + let out = src; + let m: RegExpExecArray | null; + while ((m = p.exec(out)) !== null) { + out = out.slice(0, m.index) + " ".repeat(m[0].length) + out.slice(m.index + m[0].length); + } + return out; +} + export function findRootTag(source: string): OpenTag | null { const bodyOpenMatch = /]*>/i.exec(source); const bodyCloseMatch = /<\/body>/i.exec(source); @@ -88,7 +102,12 @@ export function findRootTag(source: string): OpenTag | null { ? bodyCloseMatch.index : source.length; const bodyContent = bodyOpenMatch ? source.slice(bodyStart, bodyEnd) : source; - const bodyTags = extractOpenTags(bodyContent); + // Mask comments /