diff --git a/extensions/html/server/src/service/parser/htmlScanner.ts b/extensions/html/server/src/service/parser/htmlScanner.ts index 7de01ed178b..2cf61625f7b 100644 --- a/extensions/html/server/src/service/parser/htmlScanner.ts +++ b/extensions/html/server/src/service/parser/htmlScanner.ts @@ -41,10 +41,10 @@ class MultiLineStream { private len: number; private position: number; - constructor(source: string) { + constructor(source: string, position: number) { this.source = source; this.len = source.length; - this.position = 0; + this.position = position; } public eos(): boolean { @@ -201,9 +201,9 @@ export interface Scanner { getScannerState(): ScannerState; } -export function createScanner(input: string, initialState: ScannerState = ScannerState.Content) : Scanner { +export function createScanner(input: string, initialOffset = 0, initialState: ScannerState = ScannerState.Content) : Scanner { - let stream = new MultiLineStream(input); + let stream = new MultiLineStream(input, initialOffset); let state = initialState; let tokenOffset: number = 0; let tokenType: number = void 0; diff --git a/extensions/html/server/src/service/test/scanner.test.ts b/extensions/html/server/src/service/test/scanner.test.ts index 4e7d95163cc..b78d2ad745f 100644 --- a/extensions/html/server/src/service/test/scanner.test.ts +++ b/extensions/html/server/src/service/test/scanner.test.ts @@ -19,7 +19,7 @@ suite('HTML Scanner', () => { let scannerState = ScannerState.Content; for (let t of tests) { - let scanner = createScanner(t.input, scannerState); + let scanner = createScanner(t.input, 0, scannerState); let tokenType = scanner.scan(); let actual : Token[] = []; while (tokenType !== TokenType.EOS) {