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) {