From c63b206d4f2a0bc24e61c47caceb4b01bee47f71 Mon Sep 17 00:00:00 2001 From: Andy Date: Mon, 26 Mar 2018 16:30:29 -0700 Subject: [PATCH] Don't add external module completions in a pure commonjs file (#22583) (#22880) --- src/services/completions.ts | 3 ++- .../cases/fourslash/completionsImport_require.ts | 16 ++-------------- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/src/services/completions.ts b/src/services/completions.ts index d6e166a00e0..0d404eb9663 100644 --- a/src/services/completions.ts +++ b/src/services/completions.ts @@ -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); diff --git a/tests/cases/fourslash/completionsImport_require.ts b/tests/cases/fourslash/completionsImport_require.ts index c1830b726a1..5ad80d35e3c 100644 --- a/tests/cases/fourslash/completionsImport_require.ts +++ b/tests/cases/fourslash/completionsImport_require.ts @@ -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, {