Skip to content

Commit e8966ce

Browse files
authored
Merge pull request microsoft#32531 from microsoft/importFixCompletion
When the exported symbol is merged symbol from declaration use that name
2 parents 34dd4b8 + b8e779d commit e8966ce

File tree

2 files changed

+49
-2
lines changed

2 files changed

+49
-2
lines changed

src/services/codefixes/importFixes.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -445,9 +445,12 @@ namespace ts.codefix {
445445
const aliased = checker.getImmediateAliasedSymbol(defaultExport);
446446
return aliased && getDefaultExportInfoWorker(aliased, Debug.assertDefined(aliased.parent), checker, compilerOptions);
447447
}
448-
else {
449-
return { symbolForMeaning: defaultExport, name: moduleSymbolToValidIdentifier(moduleSymbol, compilerOptions.target!) };
448+
449+
if (defaultExport.escapedName !== InternalSymbolName.Default &&
450+
defaultExport.escapedName !== InternalSymbolName.ExportEquals) {
451+
return { symbolForMeaning: defaultExport, name: defaultExport.getName() };
450452
}
453+
return { symbolForMeaning: defaultExport, name: moduleSymbolToValidIdentifier(moduleSymbol, compilerOptions.target!) };
451454
}
452455

453456
function getNameForExportDefault(symbol: Symbol): string | undefined {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/// <reference path="fourslash.ts" />
2+
3+
// @module: commonjs
4+
5+
// @Filename: /node_modules/@types/range-parser/index.d.ts
6+
////declare function RangeParser(): string;
7+
////declare namespace RangeParser {
8+
//// interface Options {
9+
//// combine?: boolean;
10+
//// }
11+
////}
12+
////export = RangeParser;
13+
14+
// @Filename: /b.ts
15+
////R/*0*/
16+
17+
verify.completions(
18+
{
19+
marker: "0",
20+
includes: {
21+
name: "RangeParser",
22+
kind: "function",
23+
kindModifiers: "declare",
24+
source: "/node_modules/@types/range-parser/index",
25+
sourceDisplay: "range-parser",
26+
hasAction: true,
27+
sortText: completion.SortText.AutoImportSuggestions,
28+
text: `namespace RangeParser
29+
function RangeParser(): string`
30+
},
31+
preferences: {
32+
includeCompletionsForModuleExports: true
33+
}
34+
},
35+
);
36+
37+
verify.applyCodeActionFromCompletion("0", {
38+
name: "RangeParser",
39+
source: "/node_modules/@types/range-parser/index",
40+
description: `Import 'RangeParser' from module "range-parser"`,
41+
newFileContent: `import RangeParser = require("range-parser");
42+
43+
R`,
44+
});

0 commit comments

Comments
 (0)