fix(code-frame): do not pad gutter of empty lines (#12567)

* fix(code-frame): do not pad gutter of empty lines

* Add workaround for expected Jest e2e test failure

Co-authored-by: Nicolò Ribaudo <nicolo.ribaudo@gmail.com>
This commit is contained in:
Simen Bekkhus 2020-12-29 15:26:13 +01:00 committed by GitHub
parent fbef603c43
commit 2d35f5a8f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 15 deletions

View File

@ -166,6 +166,7 @@ export function codeFrameColumns(
markerLine = [
"\n ",
maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")),
" ",
markerSpacing,
maybeHighlight(defs.marker, "^").repeat(numberOfMarkers),
].join("");
@ -177,11 +178,13 @@ export function codeFrameColumns(
return [
maybeHighlight(defs.marker, ">"),
maybeHighlight(defs.gutter, gutter),
line,
line.length > 0 ? ` ${line}` : "",
markerLine,
].join("");
} else {
return ` ${maybeHighlight(defs.gutter, gutter)}${line}`;
return ` ${maybeHighlight(defs.gutter, gutter)}${
line.length > 0 ? ` ${line}` : ""
}`;
}
})
.join("\n");

View File

@ -207,9 +207,7 @@ describe("@babel/code-frame", function () {
"}",
].join("\n");
expect(codeFrame(rawLines, 7, 2, { linesAbove: 1, linesBelow: 1 })).toEqual(
[" 6 | * @returns Number", "> 7 | */", " | ^", " 8 | "].join(
"\n",
),
[" 6 | * @returns Number", "> 7 | */", " | ^", " 8 |"].join("\n"),
);
});

View File

@ -42,6 +42,13 @@ yarn install
yarn dedupe '@babel/*'
yarn build
# Workaround for https://github.com/babel/babel/pull/12567
node -e '
let snapshots = fs.readFileSync("packages/jest-message-util/src/__tests__/__snapshots__/messages.test.ts.snap", "utf8");
snapshots = snapshots.replace(/(?<!^<dim>.*)\| <\/>/gm, "|<\/> ");
fs.writeFileSync("packages/jest-message-util/src/__tests__/__snapshots__/messages.test.ts.snap", snapshots);
'
# The full test suite takes about 20mins on CircleCI. We run only a few of them
# to speed it up.
# The goals of this e2e test are: