feat: if code frame error is on a single line, highlight the w… (#10361)

* feat: if code frame error is on a single line, highlight the whole path

* flow
This commit is contained in:
Simen Bekkhus 2019-10-29 18:23:54 +01:00 committed by Nicolò Ribaudo
parent b6ef9689b2
commit f1bc6c4e18
2 changed files with 21 additions and 12 deletions

View File

@ -19,6 +19,17 @@ const errorVisitor = {
},
};
export type NodeLocation = {
loc?: {
end?: { line: number, column: number },
start: { line: number, column: number },
},
_loc?: {
end?: { line: number, column: number },
start: { line: number, column: number },
},
};
export default class File {
_map: Map<any, any> = new Map();
opts: Object;
@ -250,10 +261,7 @@ export default class File {
}
buildCodeFrameError(
node: ?{
loc?: { start: { line: number, column: number } },
_loc?: { start: { line: number, column: number } },
},
node: ?NodeLocation,
msg: string,
Error: typeof Error = SyntaxError,
): Error {
@ -285,6 +293,13 @@ export default class File {
line: loc.start.line,
column: loc.start.column + 1,
},
end:
loc.end && loc.start.line === loc.end.line
? {
line: loc.end.line,
column: loc.end.column + 1,
}
: undefined,
},
{ highlightCode },
);

View File

@ -1,6 +1,7 @@
// @flow
import type File from "./file/file";
import type NodeLocation from "./file/file";
export default class PluginPass {
_map: Map<mixed, mixed> = new Map();
@ -47,14 +48,7 @@ export default class PluginPass {
return this.file.getModuleName();
}
buildCodeFrameError(
node: ?{
loc?: { start: { line: number, column: number } },
_loc?: { start: { line: number, column: number } },
},
msg: string,
Error?: typeof Error,
) {
buildCodeFrameError(node: ?NodeLocation, msg: string, Error?: typeof Error) {
return this.file.buildCodeFrameError(node, msg, Error);
}
}