Skip to content

Commit 03cc7a4

Browse files
committed
Check if TypeScript Runtime is >=2.0.5 to consume OpenExternalProject.
See #160
1 parent b73e5cc commit 03cc7a4

File tree

3 files changed

+18
-14
lines changed

3 files changed

+18
-14
lines changed

core/ts.core/src/ts/client/CommandNames.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ public enum CommandNames {
3737
Configure("configure"),
3838
ProjectInfo("projectInfo"),
3939
Rename("rename"),
40-
OpenExternalProject("openExternalProject"),
4140

4241
// 2.0.3
4342
SemanticDiagnosticsSync("semanticDiagnosticsSync", "2.0.3"),
@@ -46,6 +45,7 @@ public enum CommandNames {
4645
// 2.0.5
4746
CompileOnSaveAffectedFileList("compileOnSaveAffectedFileList", "2.0.5"),
4847
CompileOnSaveEmitFile("compileOnSaveEmitFile", "2.0.5"),
48+
OpenExternalProject("openExternalProject", "2.0.5"),
4949

5050
// 2.0.6
5151
NavTree("navtree", "2.0.6"),

core/ts.core/src/ts/client/TypeScriptServiceClient.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -421,11 +421,6 @@ public CompletableFuture<ProjectInfo> projectInfo(String file, String projectFil
421421
return execute(new ProjectInfoRequest(file, needFileNameList));
422422
}
423423

424-
@Override
425-
public CompletableFuture<Void> openExternalProject(String projectFileName, List<String> rootFileNames) {
426-
return executeCausingWait(new OpenExternalProjectRequest(projectFileName, rootFileNames));
427-
}
428-
429424
// Since 2.0.3
430425

431426
@Override
@@ -455,6 +450,11 @@ public CompletableFuture<List<CompileOnSaveAffectedFileListSingleProject>> compi
455450
return execute(new CompileOnSaveAffectedFileListRequest(fileName));
456451
}
457452

453+
@Override
454+
public CompletableFuture<Void> openExternalProject(String projectFileName, List<String> rootFileNames) {
455+
return executeCausingWait(new OpenExternalProjectRequest(projectFileName, rootFileNames));
456+
}
457+
458458
// Since 2.0.6
459459

460460
@Override

core/ts.core/src/ts/resources/TypeScriptProject.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -151,14 +151,17 @@ public final ITypeScriptServiceClient getClient() throws TypeScriptException {
151151
this.client = createServiceClient(getProjectDir());
152152
copyListeners();
153153
onCreateClient(client);
154-
// determine root files and project name
155-
String projectName = projectDir.getCanonicalPath();
156-
List<String> rootFiles = new ArrayList<>();
157-
for (String tsconfigFilePath : getTsconfigFilePaths()) {
158-
rootFiles.add(FileUtils.getPath(new File(projectDir, tsconfigFilePath)));
154+
if (canSupport(CommandNames.OpenExternalProject)) {
155+
// OpenExternalProject is available since 2.0.5.
156+
// determine root files and project name
157+
String projectName = projectDir.getCanonicalPath();
158+
List<String> rootFiles = new ArrayList<>();
159+
for (String tsconfigFilePath : getTsconfigFilePaths()) {
160+
rootFiles.add(FileUtils.getPath(new File(projectDir, tsconfigFilePath)));
161+
}
162+
// opens or updates the external project
163+
client.openExternalProject(projectName, rootFiles);
159164
}
160-
// opens or updates the external project
161-
client.openExternalProject(projectName, rootFiles);
162165
} catch (Exception e) {
163166
if (e instanceof TypeScriptException) {
164167
throw (TypeScriptException) e;
@@ -196,7 +199,8 @@ protected ITypeScriptServiceClient createServiceClient(File projectDir) throws T
196199
File nodeFile = getProjectSettings().getNodejsInstallPath();
197200
File typescriptDir = getProjectSettings().getTypesScriptDir();
198201
TypeScriptServiceClient client = new TypeScriptServiceClient(getProjectDir(), typescriptDir, nodeFile,
199-
getProjectSettings().isEnableTelemetry(), getProjectSettings().isDisableAutomaticTypingAcquisition(), getProjectSettings().getTsserverPluginsFile());
202+
getProjectSettings().isEnableTelemetry(), getProjectSettings().isDisableAutomaticTypingAcquisition(),
203+
getProjectSettings().getTsserverPluginsFile());
200204
client.setCompletionEntryMatcherProvider(this);
201205
return client;
202206
}

0 commit comments

Comments
 (0)