From 9fe2163f075e0aa077acd0306e75f3dcf1668f84 Mon Sep 17 00:00:00 2001 From: Jaroslav Tulach Date: Mon, 8 Nov 2021 09:45:16 +0100 Subject: [PATCH] Allow VSCode users to choose 'local' - e.g. per workspace userdir --- java/java.lsp.server/vscode/package.json | 13 +++++++++++++ java/java.lsp.server/vscode/src/extension.ts | 20 ++++++++++++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/java/java.lsp.server/vscode/package.json b/java/java.lsp.server/vscode/package.json index 922b68e14015..d2cdd7fca2ab 100644 --- a/java/java.lsp.server/vscode/package.json +++ b/java/java.lsp.server/vscode/package.json @@ -76,6 +76,19 @@ "default": false, "description": "Enables verbose messages from the Apache NetBeans Language Server" }, + "netbeans.userdir": { + "description": "Keep settings and caches as 'global' or 'local' per workspace?", + "type": "string", + "enum": [ + "global", + "local" + ], + "enumDescriptions": [ + "Share data between all workspaces (more effective)", + "Each workspace has its own data (more isolated)" + ], + "default": "global" + }, "netbeans.conflict.check": { "type": "boolean", "default": true, diff --git a/java/java.lsp.server/vscode/src/extension.ts b/java/java.lsp.server/vscode/src/extension.ts index 06c3704a2c94..22639169bc1c 100644 --- a/java/java.lsp.server/vscode/src/extension.ts +++ b/java/java.lsp.server/vscode/src/extension.ts @@ -432,11 +432,27 @@ function doActivateWithJDK(specifiedJDK: string | null, context: ExtensionContex }, time); }; - const beVerbose : boolean = workspace.getConfiguration('netbeans').get('verbose', false); + const netbeansConfig = workspace.getConfiguration('netbeans'); + const beVerbose : boolean = netbeansConfig.get('verbose', false); + let userdir = netbeansConfig.get('userdir', 'global'); + switch (userdir) { + case 'local': + if (context.storagePath) { + userdir = context.storagePath; + break; + } + // fallthru + case 'global': + userdir = context.globalStoragePath; + break; + default: + // assume storage is path on disk + } + let info = { clusters : findClusters(context.extensionPath), extensionPath: context.extensionPath, - storagePath : context.globalStoragePath, + storagePath : userdir, jdkHome : specifiedJDK, verbose: beVerbose };