Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/services/stringCompletions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -630,7 +630,7 @@ function getBaseDirectoriesFromRootDirs(rootDirs: string[], basePath: string, sc

// Determine the path to the directory containing the script relative to the root directory it is contained within
const relativeDirectory = firstDefined(rootDirs, rootDirectory =>
containsPath(rootDirectory, scriptDirectory, basePath, ignoreCase) ? scriptDirectory.substr(rootDirectory.length) : undefined)!; // TODO: GH#18217
containsPath(rootDirectory, scriptDirectory, basePath, ignoreCase) ? scriptDirectory.substr(rootDirectory.length + 1) : undefined)!; // TODO: GH#18217

// Now find a path for each potential directory that is to be merged with the one containing the script
return deduplicate<string>(
Expand Down
24 changes: 24 additions & 0 deletions tests/cases/fourslash/completionForStringLiteralRelativeImport5.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/// <reference path='fourslash.ts' />

// Should give correct completions for directories when invoked from within nested folders

// @rootDirs: /repo/src,/repo/generated

// @Filename: /dir/secret_file.ts
//// /*secret_file*/

// @Filename: /repo/src/dir/test.ts
//// import * as foo1 from ".//*import_as*/
//// import foo2 = require(".//*import_equals*/
//// var foo3 = require(".//*require*/

// @Filename: /repo/generated/dir/f.ts
//// /*f*/

verify.completions(
{
marker: ["import_as", "import_equals", "require"],
exact: ["f"],
isNewIdentifierLocation: true,
}
);