diff --git a/src/services/services.ts b/src/services/services.ts index 37339037c75..284c7aa7e51 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -3834,10 +3834,10 @@ namespace ts { } if (isEmpty(existingImportsOrExports)) { - return exportsOfModule; + return filter(exportsOfModule, e => e.name !== "default"); } - return filter(exportsOfModule, e => !lookUp(existingImportsOrExports, e.name)); + return filter(exportsOfModule, e => e.name !== "default" && !lookUp(existingImportsOrExports, e.name)); } /** diff --git a/tests/cases/fourslash/completionInNamedImportLocation.ts b/tests/cases/fourslash/completionInNamedImportLocation.ts new file mode 100644 index 00000000000..596de652cc3 --- /dev/null +++ b/tests/cases/fourslash/completionInNamedImportLocation.ts @@ -0,0 +1,23 @@ +/// + +// @Filename: file.ts +////export var x = 10; +////export var y = 10; +////export default class C { +////} + + +// @Filename: a.ts +////import { /*1*/ } from "./file"; +////import { x, /*2*/ } from "./file"; + +goTo.file("a.ts"); +goTo.marker('1'); +verify.completionListContains("x", "var x: number"); +verify.completionListContains("y", "var y: number"); +verify.not.completionListContains("C"); + +goTo.marker('2'); +verify.not.completionListContains("x", "var x: number"); +verify.completionListContains("y", "var y: number"); +verify.not.completionListContains("C"); \ No newline at end of file