diff --git a/src/errors.ts b/src/errors.ts index a1db8a9c..019851fc 100644 --- a/src/errors.ts +++ b/src/errors.ts @@ -91,7 +91,7 @@ export const prettifyError = let count = 1 const end = error.linePos[1] if (end && end.line === line && end.col > col) { - count = Math.min(end.col - col, 80 - ci) + count = Math.max(1, Math.min(end.col - col, 80 - ci)) } const pointer = ' '.repeat(ci) + '^'.repeat(count) error.message += `:\n\n${lineStr}\n${pointer}\n` diff --git a/tests/doc/errors.js b/tests/doc/errors.js index 00fe35ad..71310b12 100644 --- a/tests/doc/errors.js +++ b/tests/doc/errors.js @@ -341,6 +341,12 @@ describe('pretty errors', () => { const doc = YAML.parseDocument(src, { prettyErrors: true }) expect(doc.warnings).toMatchObject([{ name: 'YAMLWarning' }]) }) + + test('repeated CR', () => { + const src = '[' + '\r'.repeat(80) + const doc = YAML.parseDocument(src, { prettyErrors: true }) + expect(doc.errors[0]).not.toHaveProperty('source') + }) }) describe('tags on invalid nodes', () => {