Support code-fix-all for importFixes (#25137)

* Support code-fix-all for importFixes

* Change description

* Update API (#25283)
This commit is contained in:
Andy
2018-07-03 15:19:15 -07:00
committed by GitHub
parent 726412cf6a
commit 064ecd449e
12 changed files with 369 additions and 268 deletions

View File

@@ -1,9 +1,9 @@
/* @internal */
namespace ts {
export interface CodeFixRegistration {
errorCodes: number[];
errorCodes: ReadonlyArray<number>;
getCodeActions(context: CodeFixContext): CodeFixAction[] | undefined;
fixIds?: string[];
fixIds?: ReadonlyArray<string>;
getAllCodeActions?(context: CodeFixAllContext): CombinedCodeActions;
}
@@ -27,7 +27,7 @@ namespace ts {
const errorCodeToFixes = createMultiMap<CodeFixRegistration>();
const fixIdToRegistration = createMap<CodeFixRegistration>();
type DiagnosticAndArguments = DiagnosticMessage | [DiagnosticMessage, string] | [DiagnosticMessage, string, string];
export type DiagnosticAndArguments = DiagnosticMessage | [DiagnosticMessage, string] | [DiagnosticMessage, string, string];
function diagnosticToString(diag: DiagnosticAndArguments): string {
return isArray(diag)
? formatStringFromArgs(getLocaleSpecificMessage(diag[0]), diag.slice(1) as ReadonlyArray<string>)
@@ -89,7 +89,7 @@ namespace ts {
return createCombinedCodeActions(changes, commands.length === 0 ? undefined : commands);
}
export function eachDiagnostic({ program, sourceFile, cancellationToken }: CodeFixAllContext, errorCodes: number[], cb: (diag: DiagnosticWithLocation) => void): void {
export function eachDiagnostic({ program, sourceFile, cancellationToken }: CodeFixAllContext, errorCodes: ReadonlyArray<number>, cb: (diag: DiagnosticWithLocation) => void): void {
for (const diag of program.getSemanticDiagnostics(sourceFile, cancellationToken).concat(computeSuggestionDiagnostics(sourceFile, program, cancellationToken))) {
if (contains(errorCodes, diag.code)) {
cb(diag as DiagnosticWithLocation);