Skip to content

Commit

Permalink
fix: Do not display Java Project explorer in non-Java workspace
Browse files Browse the repository at this point in the history
  • Loading branch information
jdneo committed Dec 4, 2020
1 parent b5866bf commit 225193c
Show file tree
Hide file tree
Showing 15 changed files with 187 additions and 159 deletions.
2 changes: 1 addition & 1 deletion extension.bundle.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@ export { WorkspaceNode } from "./src/views/workspaceNode";
export { contextManager } from "./src/contextManager";
export { DependencyExplorer } from "./src/views/dependencyExplorer";
export { Commands } from "./src/commands";
export { LanguageServerMode } from "./src/extension";
export { LanguageServerMode } from "./src/languageServerApi/LanguageServerMode";
1 change: 0 additions & 1 deletion gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ gulp.task('build_server', () => {

return gulp.src([
server_dir + '/com.microsoft.jdtls.ext.core/target/com.microsoft.jdtls.ext.core*.jar',
server_dir + '/com.microsoft.jdtls.ext.activator/target/com.microsoft.jdtls.ext.activator*.jar',
])
.pipe(gulp.dest('./server'))
});
Expand Down
72 changes: 35 additions & 37 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,15 @@
"homepage": "https://github.com/Microsoft/vscode-java-dependency/blob/master/README.md",
"icon": "logo.png",
"activationEvents": [
"onLanguage:java",
"workspaceContains:pom.xml",
"workspaceContains:.classpath",
"workspaceContains:build.gradle",
"onCommand:java.project.create"
"onCommand:java.project.create",
"onCommand:_java.project.open",
"onView:javaProjectExplorer"
],
"license": "MIT",
"main": "./main.js",
"contributes": {
"javaExtensions": [
"./server/com.microsoft.jdtls.ext.core-0.15.0.jar",
"./server/com.microsoft.jdtls.ext.activator-0.15.0.jar"
"./server/com.microsoft.jdtls.ext.core-0.15.0.jar"
],
"commands": [
{
Expand Down Expand Up @@ -216,64 +213,64 @@
"key": "ctrl+alt+r",
"win": "shift+alt+r",
"mac": "cmd+alt+r",
"when": "java:projectManagerActivated && focusedView == javaProjectExplorer"
"when": "java:serverMode == Standard && focusedView == javaProjectExplorer"
},
{
"command": "java.view.package.copyFilePath",
"key": "ctrl+alt+c",
"win": "shift+alt+c",
"mac": "cmd+alt+c",
"when": "java:projectManagerActivated && focusedView == javaProjectExplorer"
"when": "java:serverMode == Standard && focusedView == javaProjectExplorer"
},
{
"command": "java.view.package.copyRelativeFilePath",
"key": "ctrl+shift+alt+c",
"win": "ctrl+k ctrl+shift+c",
"mac": "cmd+shift+alt+c",
"when": "java:projectManagerActivated && focusedView == javaProjectExplorer"
"when": "java:serverMode == Standard && focusedView == javaProjectExplorer"
},
{
"command": "java.view.package.renameFile",
"key": "F2",
"mac": "enter",
"when": "java:projectManagerActivated && focusedView == javaProjectExplorer"
"when": "java:serverMode == Standard && focusedView == javaProjectExplorer"
},
{
"command": "java.view.package.moveFileToTrash",
"key": "delete",
"mac": "cmd+backspace",
"when": "java:projectManagerActivated && focusedView == javaProjectExplorer"
"when": "java:serverMode == Standard && focusedView == javaProjectExplorer"
}
],
"menus": {
"commandPalette": [
{
"command": "java.view.package.refresh",
"when": "java:projectManagerActivated && java:serverMode == Standard"
"when": "java:serverMode == Standard"
},
{
"command": "java.view.package.changeToHierarchicalPackageView",
"when": "java:projectManagerActivated && java:serverMode == Standard"
"when": "java:serverMode == Standard"
},
{
"command": "java.view.package.changeToFlatPackageView",
"when": "java:projectManagerActivated && java:serverMode == Standard"
"when": "java:serverMode == Standard"
},
{
"command": "java.view.package.linkWithFolderExplorer",
"when": "java:projectManagerActivated && java:serverMode == Standard"
"when": "java:serverMode == Standard"
},
{
"command": "java.view.package.unlinkWithFolderExplorer",
"when": "java:projectManagerActivated && java:serverMode == Standard"
"when": "java:serverMode == Standard"
},
{
"command": "java.view.package.revealFileInOS",
"when": "false"
},
{
"command": "java.view.package.exportJar",
"when": "java:projectManagerActivated && java:serverMode == Standard"
"when": "java:serverMode == Standard"
},
{
"command": "java.view.package.copyFilePath",
Expand Down Expand Up @@ -331,71 +328,71 @@
"explorer/context": [
{
"command": "java.view.package.revealInProjectExplorer",
"when": "resourceFilename in java:supportedBuildFiles && java:projectManagerActivated && java:serverMode == Standard",
"when": "resourceFilename in java:supportedBuildFiles && java:serverMode == Standard",
"group": "navigation@100"
},
{
"command": "java.view.package.revealInProjectExplorer",
"when": "resourceExtname == .java && java:projectManagerActivated && java:serverMode == Standard",
"when": "resourceExtname == .java && java:serverMode == Standard",
"group": "navigation@100"
}
],
"editor/title/context": [
{
"command": "java.view.package.revealInProjectExplorer",
"when": "resourceFilename in java:supportedBuildFiles && java:projectManagerActivated && java:serverMode == Standard",
"when": "resourceFilename in java:supportedBuildFiles && java:serverMode == Standard",
"group": "2_files@100"
},
{
"command": "java.view.package.revealInProjectExplorer",
"when": "resourceExtname == .java && java:projectManagerActivated && java:serverMode == Standard",
"when": "resourceExtname == .java && java:serverMode == Standard",
"group": "2_files@100"
}
],
"view/title": [
{
"command": "java.project.create",
"when": "view == javaProjectExplorer && java:projectManagerActivated && java:serverMode == Standard",
"when": "view == javaProjectExplorer && java:serverMode == Standard",
"group": "navigation@10"
},
{
"command": "java.view.package.exportJar",
"when": "view == javaProjectExplorer && java:projectManagerActivated && java:serverMode == Standard && workspaceFolderCount != 0",
"when": "view == javaProjectExplorer && java:serverMode == Standard && workspaceFolderCount != 0",
"group": "navigation@20"
},
{
"command": "java.view.package.refresh",
"when": "view == javaProjectExplorer && java:projectManagerActivated && java:serverMode == Standard",
"when": "view == javaProjectExplorer && java:serverMode == Standard",
"group": "navigation@30"
},
{
"command": "java.view.package.changeToHierarchicalPackageView",
"when": "view == javaProjectExplorer && java:projectManagerActivated && config.java.dependency.packagePresentation == flat && java:serverMode == Standard",
"when": "view == javaProjectExplorer && java:serverMode == Standard && config.java.dependency.packagePresentation == flat",
"group": "overflow_10@10"
},
{
"command": "java.view.package.changeToFlatPackageView",
"when": "view == javaProjectExplorer && java:projectManagerActivated && config.java.dependency.packagePresentation != flat && java:serverMode == Standard",
"when": "view == javaProjectExplorer && java:serverMode == Standard && config.java.dependency.packagePresentation != flat",
"group": "overflow_10@10"
},
{
"command": "java.view.package.linkWithFolderExplorer",
"when": "view == javaProjectExplorer && java:projectManagerActivated && config.java.dependency.syncWithFolderExplorer != true && java:serverMode == Standard",
"when": "view == javaProjectExplorer && java:serverMode == Standard && config.java.dependency.syncWithFolderExplorer != true",
"group": "overflow_10@20"
},
{
"command": "java.view.package.unlinkWithFolderExplorer",
"when": "view == javaProjectExplorer && java:projectManagerActivated && config.java.dependency.syncWithFolderExplorer == true && java:serverMode == Standard",
"when": "view == javaProjectExplorer && java:serverMode == Standard && config.java.dependency.syncWithFolderExplorer == true",
"group": "overflow_10@20"
},
{
"command": "java.project.build.workspace",
"when": "view == javaProjectExplorer && java:projectManagerActivated && java:serverMode == Standard && workspaceFolderCount != 0",
"when": "view == javaProjectExplorer && java:serverMode == Standard && workspaceFolderCount != 0",
"group": "overflow_20@10"
},
{
"command": "java.project.clean.workspace",
"when": "view == javaProjectExplorer && java:projectManagerActivated && java:serverMode == Standard && workspaceFolderCount != 0",
"when": "view == javaProjectExplorer && java:serverMode == Standard && workspaceFolderCount != 0",
"group": "overflow_20@20"
}
],
Expand Down Expand Up @@ -496,20 +493,21 @@
"explorer": [
{
"id": "javaProjectExplorer",
"name": "Java Projects"
"name": "Java Projects",
"when": "java:serverMode"
}
]
},
"viewsWelcome": [
{
"view": "javaProjectExplorer",
"contents": "No projects are listed because the Java Language Server is currently running in [LightWeight Mode](https://aka.ms/vscode-java-lightweight). To show projects, click on the button to switch to Standard Mode.\n[Switch to Standard Mode](command:java.server.mode.switch?%5B%22Standard%22,true%5D)",
"when": "java:serverMode == LightWeight"
"view": "explorer",
"contents": "%viewsWelcome.workbench.createNewJavaProject%",
"when": "workspaceFolderCount == 0"
},
{
"view": "javaProjectExplorer",
"contents": "You can create a new Java project by clicking the below button.\n[Create new Java project](command:java.project.create)",
"when": "!java:projectManagerActivated || java:serverMode != Standard"
"contents": "%viewsWelcome.workbench.inLightWeightMode%",
"when": "java:serverMode == LightWeight"
}
],
"taskDefinitions": [
Expand Down
4 changes: 3 additions & 1 deletion package.nls.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,7 @@
"taskDefinitions.java.project.exportJar.compileOutput": "The folders containing output class files in the runtime scope.",
"taskDefinitions.java.project.exportJar.testCompileOutput": "The folders containing output class files in the test scope.",
"taskDefinitions.java.project.exportJar.dependencies": "The artifact dependencies in the runtime scope.",
"taskDefinitions.java.project.exportJar.testDependencies": "The artifact dependencies in the test scope."
"taskDefinitions.java.project.exportJar.testDependencies": "The artifact dependencies in the test scope.",
"viewsWelcome.workbench.createNewJavaProject": "You can also [open a Java project](command:_java.project.open), or create a new Java project by clicking the below button.\n[Create Java Project](command:java.project.create)",
"viewsWelcome.workbench.inLightWeightMode": "No projects are listed because the Java Language Server is currently running in [LightWeight Mode](https://aka.ms/vscode-java-lightweight). To show projects, click on the button to switch to Standard Mode.\n[Switch to Standard Mode](command:java.server.mode.switch?%5B%22Standard%22,true%5D)"
}
4 changes: 3 additions & 1 deletion package.nls.zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,7 @@
"taskDefinitions.java.project.exportJar.compileOutput": "在 runtime scope 内包含输出的 class 文件的文件夹。",
"taskDefinitions.java.project.exportJar.testCompileOutput": "在 test scope 内包含输出的 class 文件的文件夹。",
"taskDefinitions.java.project.exportJar.dependencies": "在 runtime scope 内的依赖。",
"taskDefinitions.java.project.exportJar.testDependencies": "在 test scope 内的依赖。"
"taskDefinitions.java.project.exportJar.testDependencies": "在 test scope 内的依赖。",
"viewsWelcome.workbench.createNewJavaProject": "您也可以[打开一个 Java 项目](command:_java.project.open),或点击下方按钮创建一个新的 Java 项目。\n[创建 Java 项目](command:java.project.create)",
"viewsWelcome.workbench.inLightWeightMode": "由于 Java 语言服务正运行在 [LightWeight 模式](https://aka.ms/vscode-java-lightweight)下,因此项目将不会展示在该视图中。如果您需要展示项目信息,可以点击下方按钮将 Java 语言服务切换至 Standard 模式。\n[切换至 Standard 模式](command:java.server.mode.switch?%5B%22Standard%22,true%5D)"
}
21 changes: 13 additions & 8 deletions src/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ export namespace Commands {

export const VIEW_PACKAGE_REVEAL_IN_PROJECT_EXPLORER = "java.view.package.revealInProjectExplorer";

export const JAVA_PROJECT_OPEN = "_java.project.open";

export const JAVA_PROJECT_CREATE = "java.project.create";

export const JAVA_PROJECT_ADD_LIBRARIES = "java.project.addLibraries";
Expand All @@ -58,10 +60,6 @@ export namespace Commands {

export const JAVA_PROJECT_EXPLORER_FOCUS = "javaProjectExplorer.focus";

export const JAVA_PROJECT_ACTIVATE = "java.project.activate";

export const JAVA_MAVEN_CREATE_PROJECT = "maven.archetype.generate";

export const JAVA_PROJECT_LIST = "java.project.list";

export const JAVA_PROJECT_REFRESH_LIB_SERVER = "java.project.refreshLib";
Expand All @@ -74,17 +72,24 @@ export namespace Commands {

export const JAVA_PROJECT_GENERATEJAR = "java.project.generateJar";

export const VSCODE_OPEN_FOLDER = "vscode.openFolder";

export const VSCODE_OPEN = "vscode.open";

export const JAVA_BUILD_WORKSPACE = "java.workspace.compile";

export const JAVA_CLEAN_WORKSPACE = "java.clean.workspace";

export const JAVA_PROJECT_CONFIGURATION_UPDATE = "java.projectConfiguration.update";

export const JAVA_RESOLVE_BUILD_FILES = "vscode.java.resolveBuildFiles";

/**
* Commands from Visual Studio Code
*/
export const VSCODE_OPEN_FOLDER = "vscode.openFolder";

export const VSCODE_OPEN = "vscode.open";

export const WORKBENCH_ACTION_FILES_OPENFOLDER = "workbench.action.files.openFolder";

export const WORKBENCH_ACTION_FILES_OPENFILEFOLDER = "workbench.action.files.openFileFolder";
}

export function executeJavaLanguageServerCommand(...rest) {
Expand Down
9 changes: 9 additions & 0 deletions src/controllers/projectController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,22 @@ export class ProjectController implements Disposable {
public constructor(public readonly context: ExtensionContext) {
this.disposable = Disposable.from(
instrumentOperationAsVsCodeCommand(Commands.JAVA_PROJECT_CREATE, () => this.createJavaProject()),
instrumentOperationAsVsCodeCommand(Commands.JAVA_PROJECT_OPEN, () => this.openJavaProject()),
);
}

public dispose() {
this.disposable.dispose();
}

public async openJavaProject() {
const availableCommands: string[] = await commands.getCommands();
if (availableCommands.includes(Commands.WORKBENCH_ACTION_FILES_OPENFOLDER)) {
return commands.executeCommand(Commands.WORKBENCH_ACTION_FILES_OPENFOLDER);
}
return commands.executeCommand(Commands.WORKBENCH_ACTION_FILES_OPENFILEFOLDER);
}

public async createJavaProject() {
const items: IProjectTypeQuickPick[] = projectTypes.map((type: IProjectType) => {
return {
Expand Down
4 changes: 2 additions & 2 deletions src/exportJarSteps/ExportJarTaskProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ import {
TaskProvider, TaskRevealKind, tasks, TerminalDimensions, Uri, workspace, WorkspaceFolder,
} from "vscode";
import { buildWorkspace } from "../build";
import { isStandardServerReady } from "../extension";
import { Jdtls } from "../java/jdtls";
import { INodeData } from "../java/nodeData";
import { languageServerApiManager } from "../languageServerApi/languageServerApiManager";
import { Settings } from "../settings";
import { IUriData, Trie, TrieNode } from "../views/nodeCache/Trie";
import { IClasspathResult } from "./GenerateJarExecutor";
Expand All @@ -31,7 +31,7 @@ interface IExportJarTaskDefinition extends TaskDefinition {
let isExportingJar: boolean = false;

export async function executeExportJarTask(node?: INodeData): Promise<void> {
if (!isStandardServerReady() || isExportingJar || await buildWorkspace() === false) {
if (!await languageServerApiManager.isStandardServerReady() || isExportingJar || await buildWorkspace() === false) {
return;
}
isExportingJar = true;
Expand Down
Loading

0 comments on commit 225193c

Please sign in to comment.