mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-24 05:06:02 +08:00
Add @babel/code-frame (#23817)
* Add @babel/code-frame This is based on the definition for babel-code-frame, but adds the new codeFrameColumns method. See https://github.com/babel/babel/tree/master/packages/babel-code-frame for project documentation. * Rename "Location" to "SourceLocation" to avoid confusion with DOM Location * Update based on feedback
This commit is contained in:
26
types/babel__code-frame/babel__code-frame-tests.ts
Normal file
26
types/babel__code-frame/babel__code-frame-tests.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
import codeFrame, { codeFrameColumns } from "@babel/code-frame";
|
||||
|
||||
const code = `
|
||||
const number = 1;
|
||||
var string = 'foo';
|
||||
|
||||
function print(name: string) {
|
||||
console.log(string + name);
|
||||
}
|
||||
`;
|
||||
|
||||
codeFrame(code, 5, 22);
|
||||
codeFrame(code, 5, 22, { forceColor: true });
|
||||
codeFrame(code, 2, 2, { highlightCode: true });
|
||||
|
||||
codeFrameColumns(code, { start: { line: 5, column: 22 } });
|
||||
codeFrameColumns(
|
||||
code,
|
||||
{ start: { line: 5, column: 22 } },
|
||||
{ forceColor: true }
|
||||
);
|
||||
codeFrameColumns(
|
||||
code,
|
||||
{ start: { line: 2, column: 2 } },
|
||||
{ highlightCode: true }
|
||||
);
|
||||
54
types/babel__code-frame/index.d.ts
vendored
Normal file
54
types/babel__code-frame/index.d.ts
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
// Type definitions for @babel/code-frame 7.0
|
||||
// Project: https://github.com/babel/babel/tree/master/packages/babel-code-frame
|
||||
// Definitions by: Mohsen Azimi <https://github.com/mohsen1>
|
||||
// Forbes Lindesay <https://github.com/ForbesLindesay>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
export interface SourceLocation {
|
||||
start: { line: number; column?: number };
|
||||
end?: { line: number; column?: number };
|
||||
}
|
||||
export function codeFrameColumns(
|
||||
rawLines: string,
|
||||
location: SourceLocation,
|
||||
options?: BabelCodeFrameOptions
|
||||
): string;
|
||||
|
||||
export interface BabelCodeFrameOptions {
|
||||
/** Syntax highlight the code as JavaScript for terminals. default: false */
|
||||
highlightCode?: boolean;
|
||||
/** The number of lines to show above the error. default: 2 */
|
||||
linesAbove?: number;
|
||||
/** The number of lines to show below the error. default: 3 */
|
||||
linesBelow?: number;
|
||||
/**
|
||||
* Forcibly syntax highlight the code as JavaScript (for non-terminals);
|
||||
* overrides highlightCode.
|
||||
* default: false
|
||||
*/
|
||||
forceColor?: boolean;
|
||||
/**
|
||||
* Pass in a string to be displayed inline (if possible) next to the
|
||||
* highlighted location in the code. If it can't be positioned inline,
|
||||
* it will be placed above the code frame.
|
||||
* default: nothing
|
||||
*/
|
||||
message?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate errors that contain a code frame that point to source locations.
|
||||
*
|
||||
* @param rawLines Raw lines to frame
|
||||
* @param lineNumber Line number (1 indexed)
|
||||
* @param colNumber Column number
|
||||
* @param options Additional options
|
||||
*
|
||||
* @returns Framed code
|
||||
*/
|
||||
export default function codeFrame(
|
||||
rawLines: string,
|
||||
lineNumber: number,
|
||||
colNumber: number,
|
||||
options?: BabelCodeFrameOptions
|
||||
): string;
|
||||
19
types/babel__code-frame/tsconfig.json
Normal file
19
types/babel__code-frame/tsconfig.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": ["es6"],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": ["../"],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"paths": {
|
||||
"@babel/code-frame": ["babel__code-frame"]
|
||||
}
|
||||
},
|
||||
"files": ["index.d.ts", "babel__code-frame-tests.ts"]
|
||||
}
|
||||
1
types/babel__code-frame/tslint.json
Normal file
1
types/babel__code-frame/tslint.json
Normal file
@@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Reference in New Issue
Block a user