Skip to content

Commit f6af59e

Browse files
authored
fix: Open the extension page on installation (#556)
1 parent 2d5daa4 commit f6af59e

File tree

4 files changed

+12
-7
lines changed

4 files changed

+12
-7
lines changed

package.nls.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,5 @@
4040
"viewsWelcome.workbench.createNewJavaProject": "You can also [open a Java project folder](command:_java.project.open), or create a new Java project by clicking the button below.\n[Create Java Project](command:java.project.create)",
4141
"viewsWelcome.workbench.noJavaProject": "No Java projects found in the current workspace. You can [open a Java project folder](command:_java.project.open), or create a new Java project by clicking the button below.\n[Create Java Project](command:java.project.create)",
4242
"viewsWelcome.workbench.inLightWeightMode": "To view the projects, you can import the projects into workspace.\n[Import Projects](command:java.server.mode.switch?%5B%22Standard%22,true%5D)",
43-
"viewsWelcome.workbench.installLanguageSupport": "The Java Projects explorer requires [Extension Pack for Java](command:extension.open?%5B%22vscjava.vscode-java-pack%22%5D) to provide full features.\n[Install](command:workbench.extensions.installExtension?%5B%22vscjava.vscode-java-pack%22%5D)"
43+
"viewsWelcome.workbench.installLanguageSupport": "The Java Projects explorer requires [Extension Pack for Java](command:extension.open?%5B%22vscjava.vscode-java-pack%22%5D) to provide full features.\n[Install](command:java.project.installExtension?%5B%22vscjava.vscode-java-pack%22%5D)"
4444
}

package.nls.zh.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,5 @@
4040
"viewsWelcome.workbench.createNewJavaProject": "您也可以[打开一个 Java 项目目录](command:_java.project.open),或点击下方按钮创建一个新的 Java 项目。\n[创建 Java 项目](command:java.project.create)",
4141
"viewsWelcome.workbench.noJavaProject": "当前工作空间未发现 Java 项目,您可以[打开一个 Java 项目目录](command:_java.project.open),或点击下方按钮创建一个新的 Java 项目。\n[创建 Java 项目](command:java.project.create)",
4242
"viewsWelcome.workbench.inLightWeightMode": "要浏览项目信息,你可以将项目导入到工作空间中。\n[导入项目](command:java.server.mode.switch?%5B%22Standard%22,true%5D)",
43-
"viewsWelcome.workbench.installLanguageSupport": "Java 项目视图需要安装并激活 [Extension Pack for Java](command:extension.open?%5B%22vscjava.vscode-java-pack%22%5D) 以提供完整的功能。\n[安装](command:workbench.extensions.installExtension?%5B%22vscjava.vscode-java-pack%22%5D)"
43+
"viewsWelcome.workbench.installLanguageSupport": "Java 项目视图需要安装并激活 [Extension Pack for Java](command:extension.open?%5B%22vscjava.vscode-java-pack%22%5D) 以提供完整的功能。\n[安装](command:java.project.installExtension?%5B%22vscjava.vscode-java-pack%22%5D)"
4444
}

src/commands.ts

+2
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ export namespace Commands {
8484

8585
export const JAVA_PROJECT_LIST_SOURCE_PATHS = "java.project.listSourcePaths";
8686

87+
export const INSTALL_EXTENSION = "java.project.installExtension";
88+
8789
/**
8890
* Commands from Visual Studio Code
8991
*/

src/controllers/projectController.ts

+8-5
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,13 @@ export class ProjectController implements Disposable {
1717
this.disposable = Disposable.from(
1818
instrumentOperationAsVsCodeCommand(Commands.JAVA_PROJECT_CREATE, () => this.createJavaProject()),
1919
instrumentOperationAsVsCodeCommand(Commands.JAVA_PROJECT_OPEN, () => this.openJavaProject()),
20+
instrumentOperationAsVsCodeCommand(Commands.INSTALL_EXTENSION, (extensionId: string) => {
21+
commands.executeCommand("workbench.extensions.installExtension", extensionId);
22+
// So far there is no API to query the extension's state, so we open the extension's homepage
23+
// here, where users can check the state: installing, disabled, installed, etc...
24+
// See: https://github.com/microsoft/vscode/issues/14444
25+
commands.executeCommand("extension.open", extensionId);
26+
}),
2027
);
2128
}
2229

@@ -101,11 +108,7 @@ async function ensureExtension(typeName: string, metaData: IProjectTypeMetadata)
101108
async function promptInstallExtension(projectType: string, metaData: IProjectTypeMetadata): Promise<void> {
102109
const choice: string | undefined = await window.showInformationMessage(`${metaData.extensionName} is required to create ${projectType} projects. Please re-run the command 'Java: Create Java Project...' after the extension is installed.`, "Install");
103110
if (choice === "Install") {
104-
commands.executeCommand("workbench.extensions.installExtension", metaData.extensionId);
105-
// So far there is no API to query the extension's state, so we open the extension's homepage
106-
// here, where users can check the state: installing, disabled, installed, etc...
107-
// See: https://github.com/microsoft/vscode/issues/14444
108-
commands.executeCommand("extension.open", metaData.extensionId);
111+
commands.executeCommand(Commands.INSTALL_EXTENSION, metaData.extensionId);
109112
}
110113
}
111114

0 commit comments

Comments
 (0)