Skip to content

Commit 0f22079

Browse files
committed
Remove trailing slashes, remove mostly useless IO, fix script element kind for files
1 parent ca28823 commit 0f22079

9 files changed

Lines changed: 24 additions & 51 deletions

src/services/services.ts

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1865,7 +1865,6 @@ namespace ts {
18651865
interface VisibleModuleInfo {
18661866
moduleName: string;
18671867
moduleDir: string;
1868-
canBeImported: boolean;
18691868
}
18701869

18711870
export interface DisplayPartsSymbolWriter extends SymbolWriter {
@@ -4605,7 +4604,7 @@ namespace ts {
46054604
if (!duplicate) {
46064605
result.push({
46074606
name: fileName,
4608-
kind: ScriptElementKind.directory,
4607+
kind: ScriptElementKind.scriptElement,
46094608
sortText: fileName
46104609
});
46114610
}
@@ -4618,7 +4617,7 @@ namespace ts {
46184617
const directoryName = getBaseFileName(normalizePath(d));
46194618

46204619
result.push({
4621-
name: ensureTrailingDirectorySeparator(directoryName),
4620+
name: directoryName,
46224621
kind: ScriptElementKind.directory,
46234622
sortText: directoryName
46244623
});
@@ -4750,7 +4749,7 @@ namespace ts {
47504749
if (!options.moduleResolution || options.moduleResolution === ModuleResolutionKind.NodeJs) {
47514750
forEach(enumerateNodeModulesVisibleToScript(host, scriptPath), visibleModule => {
47524751
if (!isNestedModule) {
4753-
nonRelativeModules.push(visibleModule.canBeImported ? visibleModule.moduleName : ensureTrailingDirectorySeparator(visibleModule.moduleName));
4752+
nonRelativeModules.push(visibleModule.moduleName);
47544753
}
47554754
else {
47564755
const nestedFiles = host.readDirectory(visibleModule.moduleDir, supportedTypeScriptExtensions, /*exclude*/undefined, /*include*/["./*"]);
@@ -4904,8 +4903,7 @@ namespace ts {
49044903
const moduleDir = combinePaths(nodeModulesDir, moduleName);
49054904
result.push({
49064905
moduleName,
4907-
moduleDir,
4908-
canBeImported: moduleCanBeImported(moduleDir)
4906+
moduleDir
49094907
});
49104908
});
49114909
});
@@ -4930,31 +4928,6 @@ namespace ts {
49304928
}
49314929
}
49324930
}
4933-
4934-
/*
4935-
* A module can be imported by name alone if one of the following is true:
4936-
* It defines the "typings" property in its package.json
4937-
* The module has a "main" export and an index.d.ts file
4938-
* The module has an index.ts
4939-
*/
4940-
function moduleCanBeImported(modulePath: string): boolean {
4941-
const packagePath = combinePaths(modulePath, "package.json");
4942-
4943-
let hasMainExport = false;
4944-
if (host.fileExists(packagePath)) {
4945-
const package = tryReadingPackageJson(packagePath);
4946-
if (package) {
4947-
if (package.typings) {
4948-
return true;
4949-
}
4950-
hasMainExport = !!package.main;
4951-
}
4952-
}
4953-
4954-
hasMainExport = hasMainExport || host.fileExists(combinePaths(modulePath, "index.js"));
4955-
4956-
return (hasMainExport && host.fileExists(combinePaths(modulePath, "index.d.ts"))) || host.fileExists(combinePaths(modulePath, "index.ts"));
4957-
}
49584931
}
49594932

49604933
function createCompletionEntryForModule(name: string, kind: string): ImportCompletionEntry {

tests/cases/fourslash/completionForStringLiteralImport1.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,4 @@ goTo.marker("2");
2828
verify.importModuleCompletionListContains("some-module", 2);
2929

3030
goTo.marker("3");
31-
verify.importModuleCompletionListContains("fourslash/", 3);
31+
verify.importModuleCompletionListContains("fourslash", 3);

tests/cases/fourslash/completionForStringLiteralNonrelativeImport4.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ const kinds = ["import_as", "import_equals", "require"];
2525
for (const kind of kinds) {
2626
goTo.marker(kind + "0");
2727

28-
verify.importModuleCompletionListContains("fake-module/");
28+
verify.importModuleCompletionListContains("fake-module");
2929
verify.importModuleCompletionListContains("fake-module2");
30-
verify.importModuleCompletionListContains("fake-module3/");
30+
verify.importModuleCompletionListContains("fake-module3");
3131
verify.not.importModuleCompletionListItemsCountIsGreaterThan(3);
3232
}

tests/cases/fourslash/completionForStringLiteralNonrelativeImport6.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ const kinds = ["import_as", "import_equals", "require"];
5252
for (const kind of kinds) {
5353
goTo.marker(kind + "0");
5454

55-
verify.importModuleCompletionListContains("module-no-main/");
56-
verify.importModuleCompletionListContains("module-no-main-index-d-ts/");
55+
verify.importModuleCompletionListContains("module-no-main");
56+
verify.importModuleCompletionListContains("module-no-main-index-d-ts");
5757
verify.importModuleCompletionListContains("module-index-ts");
5858
verify.importModuleCompletionListContains("module-index-d-ts-explicit-main");
5959
verify.importModuleCompletionListContains("module-index-d-ts-default-main");

tests/cases/fourslash/completionForStringLiteralRelativeImport1.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ for (const kind of kinds) {
5151
verify.importModuleCompletionListContains("f1");
5252
verify.importModuleCompletionListContains("f2");
5353
verify.importModuleCompletionListContains("e1");
54-
verify.importModuleCompletionListContains("folder/");
55-
verify.importModuleCompletionListContains("parentTest/");
54+
verify.importModuleCompletionListContains("folder");
55+
verify.importModuleCompletionListContains("parentTest");
5656
verify.not.importModuleCompletionListItemsCountIsGreaterThan(5);
5757

5858
goTo.marker(kind + "2");
@@ -63,6 +63,6 @@ for (const kind of kinds) {
6363
goTo.marker(kind + "3");
6464
verify.importModuleCompletionListContains("f4");
6565
verify.importModuleCompletionListContains("g1");
66-
verify.importModuleCompletionListContains("sub/");
66+
verify.importModuleCompletionListContains("sub");
6767
verify.not.importModuleCompletionListItemsCountIsGreaterThan(3);
6868
}

tests/cases/fourslash/completionForStringLiteralRelativeImport3.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,18 @@ const kinds = ["import_as", "import_equals", "require"];
3232

3333
for (const kind of kinds) {
3434
goTo.marker(kind + "0");
35-
verify.importModuleCompletionListContains("fourslash/");
35+
verify.importModuleCompletionListContains("fourslash");
3636
verify.not.importModuleCompletionListItemsCountIsGreaterThan(1);
3737

3838
goTo.marker(kind + "1");
39-
verify.importModuleCompletionListContains("fourslash/");
39+
verify.importModuleCompletionListContains("fourslash");
4040
verify.not.importModuleCompletionListItemsCountIsGreaterThan(1);
4141

4242
goTo.marker(kind + "2");
4343
verify.importModuleCompletionListContains("f1");
4444
verify.importModuleCompletionListContains("f2");
4545
verify.importModuleCompletionListContains("e1");
46-
verify.importModuleCompletionListContains("folder/");
47-
verify.importModuleCompletionListContains("tests/");
46+
verify.importModuleCompletionListContains("folder");
47+
verify.importModuleCompletionListContains("tests");
4848
verify.not.importModuleCompletionListItemsCountIsGreaterThan(5);
4949
}

tests/cases/fourslash/completionForStringLiteralRelativeImport4.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ for (const kind of kinds) {
4343
verify.importModuleCompletionListContains("module0");
4444
verify.importModuleCompletionListContains("module1");
4545
verify.importModuleCompletionListContains("module2");
46-
verify.importModuleCompletionListContains("more/");
46+
verify.importModuleCompletionListContains("more");
4747

4848
// Should not contain itself
4949
verify.not.importModuleCompletionListItemsCountIsGreaterThan(4);

tests/cases/fourslash/completionForTripleSlashReference1.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,16 @@ for (let i = 0; i < 5; i++) {
3434
verify.importModuleCompletionListContains("f1.d.ts");
3535
verify.importModuleCompletionListContains("f2.tsx");
3636
verify.importModuleCompletionListContains("e1.ts");
37-
verify.importModuleCompletionListContains("parentTest/");
37+
verify.importModuleCompletionListContains("parentTest");
3838
verify.not.importModuleCompletionListItemsCountIsGreaterThan(5);
3939
}
4040

4141
goTo.marker("5");
4242
verify.importModuleCompletionListContains("g1.ts");
43-
verify.importModuleCompletionListContains("sub/");
43+
verify.importModuleCompletionListContains("sub");
4444
verify.not.importModuleCompletionListItemsCountIsGreaterThan(2);
4545

4646
goTo.marker("6");
4747
verify.importModuleCompletionListContains("g1.ts");
48-
verify.importModuleCompletionListContains("sub/");
48+
verify.importModuleCompletionListContains("sub");
4949
verify.not.importModuleCompletionListItemsCountIsGreaterThan(2);

tests/cases/fourslash/completionForTripleSlashReference3.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,17 @@
2525
//// /*e2*/
2626

2727
goTo.marker("0");
28-
verify.importModuleCompletionListContains("fourslash/");
28+
verify.importModuleCompletionListContains("fourslash");
2929
verify.not.importModuleCompletionListItemsCountIsGreaterThan(1);
3030

3131
goTo.marker("1");
32-
verify.importModuleCompletionListContains("fourslash/");
32+
verify.importModuleCompletionListContains("fourslash");
3333
verify.not.importModuleCompletionListItemsCountIsGreaterThan(1);
3434

3535
goTo.marker("2");
3636
verify.importModuleCompletionListContains("f1.ts");
3737
verify.importModuleCompletionListContains("f2.tsx");
3838
verify.importModuleCompletionListContains("e1.ts");
39-
verify.importModuleCompletionListContains("folder/");
40-
verify.importModuleCompletionListContains("tests/");
39+
verify.importModuleCompletionListContains("folder");
40+
verify.importModuleCompletionListContains("tests");
4141
verify.not.importModuleCompletionListItemsCountIsGreaterThan(5);

0 commit comments

Comments
 (0)