Skip to content

Commit fe33019

Browse files
authored
Add startLine & startCharacter to parser errors (#102)
1 parent 822ee4d commit fe33019

File tree

3 files changed

+9
-7
lines changed

3 files changed

+9
-7
lines changed

src/impl/parser.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -197,8 +197,8 @@ export function parse(text: string, errors: ParseError[] = [], options: ParseOpt
197197
currentParent = previousParents.pop();
198198
},
199199
onLiteralValue: onValue,
200-
onError: (error: ParseErrorCode, offset: number, length: number) => {
201-
errors.push({ error, offset, length });
200+
onError: (error: ParseErrorCode, offset: number, length: number, startLine: number, startCharacter: number) => {
201+
errors.push({ error, offset, length, startLine, startCharacter });
202202
}
203203
};
204204
visit(text, visitor, options);
@@ -260,8 +260,8 @@ export function parseTree(text: string, errors: ParseError[] = [], options: Pars
260260
}
261261
}
262262
},
263-
onError: (error: ParseErrorCode, offset: number, length: number) => {
264-
errors.push({ error, offset, length });
263+
onError: (error: ParseErrorCode, offset: number, length: number, startLine: number, startCharacter: number) => {
264+
errors.push({ error, offset, length, startLine, startCharacter });
265265
}
266266
};
267267
visit(text, visitor, options);

src/main.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,8 @@ export interface ParseError {
144144
error: ParseErrorCode;
145145
offset: number;
146146
length: number;
147+
startLine: number;
148+
startCharacter: number;
147149
}
148150

149151
export const enum ParseErrorCode {

src/test/json.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -431,8 +431,8 @@ suite('JSON', () => {
431431
}
432432
]
433433
}, [
434-
{ error: ParseErrorCode.PropertyNameExpected, offset: 26, length: 1 },
435-
{ error: ParseErrorCode.ValueExpected, offset: 26, length: 1 }
434+
{ error: ParseErrorCode.PropertyNameExpected, offset: 26, length: 1, startLine: 0, startCharacter: 26 },
435+
{ error: ParseErrorCode.ValueExpected, offset: 26, length: 1, startLine: 0, startCharacter: 26 }
436436
]);
437437
});
438438

@@ -678,7 +678,7 @@ suite('JSON', () => {
678678
], colonOffset: 37
679679
}
680680
]
681-
}, [{ error: ParseErrorCode.ColonExpected, offset: 49, length: 1 }]);
681+
}, [{ error: ParseErrorCode.ColonExpected, offset: 49, length: 1, startLine: 0, startCharacter: 49 }]);
682682
});
683683

684684
test('tree: find location', () => {

0 commit comments

Comments
 (0)