Skip to content

fix: Do not display Java Project explorer in non-Java workspace #398

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 7, 2020
Merged
Show file tree
Hide file tree
Changes from all 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 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