mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-05 16:38:05 -06:00
Merge pull request #29418 from Microsoft/exportEquals
Handle generating action for export equals with anonymous symbol
This commit is contained in:
commit
d53619a30d
@ -367,7 +367,9 @@ namespace ts.Completions {
|
||||
}
|
||||
|
||||
function getSymbolName(symbol: Symbol, origin: SymbolOriginInfo | undefined, target: ScriptTarget): string {
|
||||
return origin && originIsExport(origin) && origin.isDefaultExport && symbol.escapedName === InternalSymbolName.Default
|
||||
return origin && originIsExport(origin) && (
|
||||
(origin.isDefaultExport && symbol.escapedName === InternalSymbolName.Default) ||
|
||||
(symbol.escapedName === InternalSymbolName.ExportEquals))
|
||||
// Name of "export default foo;" is "foo". Name of "export default 0" is the filename converted to camelCase.
|
||||
? firstDefined(symbol.declarations, d => isExportAssignment(d) && isIdentifier(d.expression) ? d.expression.text : undefined)
|
||||
|| codefix.moduleSymbolToValidIdentifier(origin.moduleSymbol, target)
|
||||
|
||||
@ -0,0 +1,28 @@
|
||||
/// <reference path='fourslash.ts'/>
|
||||
|
||||
// Use `/src` to test that directory names are not included in conversion from module path to identifier.
|
||||
// @noLib: true
|
||||
|
||||
// @Filename: /src/foo-bar.ts
|
||||
////export = 0;
|
||||
|
||||
// @Filename: /src/b.ts
|
||||
////exp/*0*/
|
||||
////fooB/*1*/
|
||||
|
||||
goTo.marker("0");
|
||||
const preferences: FourSlashInterface.UserPreferences = { includeCompletionsForModuleExports: true };
|
||||
const exportEntry: FourSlashInterface.ExpectedCompletionEntryObject = { name: "fooBar", source: "/src/foo-bar", sourceDisplay: "./foo-bar", text: "(property) export=: 0", kind: "property", hasAction: true };
|
||||
verify.completions(
|
||||
{ marker: "0", exact: ["undefined", exportEntry, ...completion.statementKeywordsWithTypes], preferences },
|
||||
{ marker: "1", includes: exportEntry, preferences }
|
||||
);
|
||||
verify.applyCodeActionFromCompletion("0", {
|
||||
name: "fooBar",
|
||||
source: "/src/foo-bar",
|
||||
description: `Import 'fooBar' from module "./foo-bar"`,
|
||||
newFileContent: `import fooBar = require("./foo-bar");
|
||||
|
||||
exp
|
||||
fooB`,
|
||||
});
|
||||
Loading…
x
Reference in New Issue
Block a user