babel/packages/babel-code-frame
Simon Lydell f80463120b babel-code-frame: Handle code with tabs
Previously, the `^` marker was misaligned if the line above contained tabs.

Fixes T7282.

Note: This commit handles a very subtle edge-case differently: When the passed
in column number is larger than the length of the line. Previously, the `^`
marker would be faithfully placed at that exact column number. Now, it is placed
at the end of the line instead (after the last character of the line to be
precise). Ideally, we should define what should happen in edge cases, but that's
out of scope for this PR.
2016-04-11 15:46:32 +02:00
..
2016-03-08 22:33:23 -05:00

babel-code-frame

Generate errors that contain a code frame that point to source locations.

Install

$ npm install babel-code-frame

Usage

import codeFrame from 'babel-code-frame';

const rawLines = `class Foo {
  constructor()
}`;
const lineNumber = 2;
const colNumber = 16;

const result = codeFrame(rawLines, lineNumber, colNumber, { /* options */ });

console.log(result);
  1 | class Foo {
> 2 |   constructor()
    |                ^
  3 | }

If the column number is not known, you may pass null instead.

Options

name type default description
highlightCode boolean false Syntax highlight the code as JavaScript for terminals