Don't add external module completions in a pure commonjs file (#22583)

This commit is contained in:
Andy
2018-03-15 08:13:16 -07:00
committed by GitHub
parent 0666b281b0
commit 85e9cce3c7
2 changed files with 4 additions and 15 deletions

View File

@@ -1153,7 +1153,8 @@ namespace ts.Completions {
}
}
if (options.includeExternalModuleExports) {
// Don't suggest import completions for a commonjs-only module
if (options.includeExternalModuleExports && !(sourceFile.commonJsModuleIndicator && !sourceFile.externalModuleIndicator)) {
getSymbolsFromOtherSourceFileExports(symbols, previousToken && isIdentifier(previousToken) ? previousToken.text : "", target);
}
filterGlobalCompletion(symbols);

View File

@@ -14,20 +14,8 @@
////fo/*c*/
goTo.marker("b");
verify.completionListContains({ name: "foo", source: "/a" }, "const foo: 0", "", "const", /*spanIndex*/ undefined, /*hasAction*/ true, {
includeExternalModuleExports: true,
sourceDisplay: "./a",
});
verify.applyCodeActionFromCompletion("b", {
name: "foo",
source: "/a",
description: `Import 'foo' from module "./a"`,
newFileContent: `import { foo } from "./a";
const a = require("./a");
fo`,
});
// Doesn't activate for commonjs-only module
verify.not.completionListContains({ name: "foo", source: "/a" });
goTo.marker("c");
verify.completionListContains({ name: "foo", source: "/a" }, "const foo: 0", "", "const", /*spanIndex*/ undefined, /*hasAction*/ true, {