diff --git a/src/services/completions.ts b/src/services/completions.ts index 1fcd947e5bb79..0c42ee8f8cbbd 100644 --- a/src/services/completions.ts +++ b/src/services/completions.ts @@ -376,6 +376,8 @@ namespace ts.Completions { // } // let x: Foo["/*completion position*/"] return stringLiteralCompletionsFromProperties(typeChecker.getTypeFromTypeNode((node.parent.parent as IndexedAccessTypeNode).objectType)); + case SyntaxKind.ImportTypeNode: + return { kind: StringLiteralCompletionKind.Paths, paths: PathCompletions.getStringLiteralCompletionsFromModuleNames(sourceFile, node, compilerOptions, host, typeChecker) }; default: return undefined; } diff --git a/tests/cases/fourslash/fourslash.ts b/tests/cases/fourslash/fourslash.ts index 55f2afe747e05..6e813acaf57c6 100644 --- a/tests/cases/fourslash/fourslash.ts +++ b/tests/cases/fourslash/fourslash.ts @@ -201,14 +201,6 @@ declare namespace FourSlashInterface { assertHasRanges(ranges: Range[]): void; caretAtMarker(markerName?: string): void; completionsAt(markerName: string | ReadonlyArray, completions: ReadonlyArray, options?: CompletionsAtOptions): void; - completionsAndDetailsAt( - markerName: string, - completions: { - excludes?: ReadonlyArray, - //TODO: better type - entries: ReadonlyArray<{ entry: any, details: any }>, - }, - ): void; //TODO: better type applyCodeActionFromCompletion(markerName: string, options: { name: string, source?: string, diff --git a/tests/cases/fourslash/importTypeModuleCompletions.ts b/tests/cases/fourslash/importTypeModuleCompletions.ts new file mode 100644 index 0000000000000..2a2f17818d4fd --- /dev/null +++ b/tests/cases/fourslash/importTypeModuleCompletions.ts @@ -0,0 +1,13 @@ +/// + +// @moduleResolution: node + +// @Filename: /ns.ts +////file content not read +// @Filename: /node_modules/package/index.ts +////file content not read +// @Filename: /usage.ts +////type A = typeof import("p/*1*/"); +////type B = typeof import(".//*2*/"); +verify.completionsAt("1", ["package"], { isNewIdentifierLocation: true }); +verify.completionsAt("2", ["lib", "ns", "node_modules"], { isNewIdentifierLocation: true });