From f326b4b7cb35318c1ab55e86df181e388fe3107f Mon Sep 17 00:00:00 2001 From: Andy Date: Tue, 31 Jul 2018 17:28:35 -0700 Subject: [PATCH] Make import fix for default import mention that it's a default import (#26105) --- src/compiler/diagnosticMessages.json | 8 ++++++++ src/services/codefixes/importFixes.ts | 4 ++-- .../completionsImport_default_addToNamedImports.ts | 2 +- .../completionsImport_default_addToNamespaceImport.ts | 2 +- .../completionsImport_default_alreadyExistedWithRename.ts | 2 +- .../fourslash/completionsImport_default_anonymous.ts | 2 +- .../completionsImport_default_didNotExistBefore.ts | 2 +- .../completionsImport_default_exportDefaultIdentifier.ts | 2 +- .../completionsImport_default_fromMergedDeclarations.ts | 2 +- 9 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index bfac297b13b..91dfdf705e6 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -4296,6 +4296,14 @@ "category": "Message", "code": 90031 }, + "Import default '{0}' from module \"{1}\"": { + "category": "Message", + "code": 90032 + }, + "Add default import '{0}' to existing import declaration from \"{1}\"": { + "category": "Message", + "code": 90033 + }, "Convert function to an ES2015 class": { "category": "Message", "code": 95001 diff --git a/src/services/codefixes/importFixes.ts b/src/services/codefixes/importFixes.ts index bd1a50ac5f9..0e431ad1f0c 100644 --- a/src/services/codefixes/importFixes.ts +++ b/src/services/codefixes/importFixes.ts @@ -465,14 +465,14 @@ namespace ts.codefix { const { importClause, importKind } = fix; doAddExistingFix(changes, sourceFile, importClause, importKind === ImportKind.Default ? symbolName : undefined, importKind === ImportKind.Named ? [symbolName] : emptyArray); const moduleSpecifierWithoutQuotes = stripQuotes(importClause.parent.moduleSpecifier.getText()); - return [Diagnostics.Add_0_to_existing_import_declaration_from_1, symbolName, moduleSpecifierWithoutQuotes]; + return [importKind === ImportKind.Default ? Diagnostics.Add_default_import_0_to_existing_import_declaration_from_1 : Diagnostics.Add_0_to_existing_import_declaration_from_1, symbolName, moduleSpecifierWithoutQuotes]; // you too! } case ImportFixKind.AddNew: { const { importKind, moduleSpecifier } = fix; addNewImports(changes, sourceFile, moduleSpecifier, quotePreference, importKind === ImportKind.Default ? { defaultImport: symbolName, namedImports: emptyArray, namespaceLikeImport: undefined } : importKind === ImportKind.Named ? { defaultImport: undefined, namedImports: [symbolName], namespaceLikeImport: undefined } : { defaultImport: undefined, namedImports: emptyArray, namespaceLikeImport: { importKind, name: symbolName } }); - return [Diagnostics.Import_0_from_module_1, symbolName, moduleSpecifier]; + return [importKind === ImportKind.Default ? Diagnostics.Import_default_0_from_module_1 : Diagnostics.Import_0_from_module_1, symbolName, moduleSpecifier]; } default: return Debug.assertNever(fix); diff --git a/tests/cases/fourslash/completionsImport_default_addToNamedImports.ts b/tests/cases/fourslash/completionsImport_default_addToNamedImports.ts index 4ac76c51672..5f9c677b61f 100644 --- a/tests/cases/fourslash/completionsImport_default_addToNamedImports.ts +++ b/tests/cases/fourslash/completionsImport_default_addToNamedImports.ts @@ -17,7 +17,7 @@ verify.completionListContains({ name: "foo", source: "/a" }, "function foo(): vo verify.applyCodeActionFromCompletion("", { name: "foo", source: "/a", - description: `Add 'foo' to existing import declaration from "./a"`, + description: `Add default import 'foo' to existing import declaration from "./a"`, newFileContent: `import foo, { x } from "./a"; f;`, }); diff --git a/tests/cases/fourslash/completionsImport_default_addToNamespaceImport.ts b/tests/cases/fourslash/completionsImport_default_addToNamespaceImport.ts index 11a0bc28985..2b9543f0cb6 100644 --- a/tests/cases/fourslash/completionsImport_default_addToNamespaceImport.ts +++ b/tests/cases/fourslash/completionsImport_default_addToNamespaceImport.ts @@ -16,7 +16,7 @@ verify.completionListContains({ name: "foo", source: "/a" }, "function foo(): vo verify.applyCodeActionFromCompletion("", { name: "foo", source: "/a", - description: `Add 'foo' to existing import declaration from "./a"`, + description: `Add default import 'foo' to existing import declaration from "./a"`, newFileContent: `import foo, * as a from "./a"; f;`, }); diff --git a/tests/cases/fourslash/completionsImport_default_alreadyExistedWithRename.ts b/tests/cases/fourslash/completionsImport_default_alreadyExistedWithRename.ts index 75c45c2970b..db9b23b082b 100644 --- a/tests/cases/fourslash/completionsImport_default_alreadyExistedWithRename.ts +++ b/tests/cases/fourslash/completionsImport_default_alreadyExistedWithRename.ts @@ -16,7 +16,7 @@ verify.completionListContains({ name: "foo", source: "/a" }, "function foo(): vo verify.applyCodeActionFromCompletion("", { name: "foo", source: "/a", - description: `Import 'foo' from module "./a"`, + description: `Import default 'foo' from module "./a"`, newFileContent: `import f_o_o from "./a"; import foo from "./a"; f;`, diff --git a/tests/cases/fourslash/completionsImport_default_anonymous.ts b/tests/cases/fourslash/completionsImport_default_anonymous.ts index 17a26b4b5aa..c406259dd6c 100644 --- a/tests/cases/fourslash/completionsImport_default_anonymous.ts +++ b/tests/cases/fourslash/completionsImport_default_anonymous.ts @@ -19,7 +19,7 @@ verify.completions( verify.applyCodeActionFromCompletion("1", { name: "fooBar", source: "/src/foo-bar", - description: `Import 'fooBar' from module "./foo-bar"`, + description: `Import default 'fooBar' from module "./foo-bar"`, newFileContent: `import fooBar from "./foo-bar"; def diff --git a/tests/cases/fourslash/completionsImport_default_didNotExistBefore.ts b/tests/cases/fourslash/completionsImport_default_didNotExistBefore.ts index 814366e0e6c..bb77874068c 100644 --- a/tests/cases/fourslash/completionsImport_default_didNotExistBefore.ts +++ b/tests/cases/fourslash/completionsImport_default_didNotExistBefore.ts @@ -17,7 +17,7 @@ verify.completionListContains({ name: "foo", source: "/a" }, "function foo(): vo verify.applyCodeActionFromCompletion("", { name: "foo", source: "/a", - description: `Import 'foo' from module "./a"`, + description: `Import default 'foo' from module "./a"`, newFileContent: `import foo from "./a"; f;`, diff --git a/tests/cases/fourslash/completionsImport_default_exportDefaultIdentifier.ts b/tests/cases/fourslash/completionsImport_default_exportDefaultIdentifier.ts index 9acc2c091ff..3f0cb27e00a 100644 --- a/tests/cases/fourslash/completionsImport_default_exportDefaultIdentifier.ts +++ b/tests/cases/fourslash/completionsImport_default_exportDefaultIdentifier.ts @@ -20,7 +20,7 @@ verify.completionListContains({ name: "foo", source: "/a" }, "(alias) const foo: verify.applyCodeActionFromCompletion("", { name: "foo", source: "/a", - description: `Import 'foo' from module "./a"`, + description: `Import default 'foo' from module "./a"`, newFileContent: `import foo from "./a"; f;`, diff --git a/tests/cases/fourslash/completionsImport_default_fromMergedDeclarations.ts b/tests/cases/fourslash/completionsImport_default_fromMergedDeclarations.ts index ca4c993d511..6f6c01cf4d1 100644 --- a/tests/cases/fourslash/completionsImport_default_fromMergedDeclarations.ts +++ b/tests/cases/fourslash/completionsImport_default_fromMergedDeclarations.ts @@ -24,7 +24,7 @@ verify.completionListContains({ name: "M", source: "m" }, "class M", "", "class" verify.applyCodeActionFromCompletion("", { name: "M", source: "m", - description: `Import 'M' from module "m"`, + description: `Import default 'M' from module "m"`, newFileContent: `import M from "m"; `,