From cf99c25f10b66f81fb596ab7f239e72cee7e23bd Mon Sep 17 00:00:00 2001 From: Snjezana Peco Date: Tue, 16 Sep 2025 22:19:14 +0200 Subject: [PATCH] Delete Java LS Configuration - delete the Java LS configuration (/redhat.java) when calling Clean Java Language Server Workspace --- src/extension.ts | 3 ++- src/utils.ts | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/extension.ts b/src/extension.ts index 21d659d52..77ad9031b 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -29,7 +29,7 @@ import { snippetCompletionProvider } from './snippetCompletionProvider'; import { JavaClassEditorProvider } from './javaClassEditor'; import { StandardLanguageClient } from './standardLanguageClient'; import { SyntaxLanguageClient } from './syntaxLanguageClient'; -import { convertToGlob, deleteClientLog, deleteDirectory, ensureExists, getBuildFilePatterns, getExclusionGlob, getInclusionPatternsFromNegatedExclusion, getJavaConfig, getJavaConfiguration, hasBuildToolConflicts, resolveActualCause, getVersion } from './utils'; +import { convertToGlob, deleteClientLog, deleteDirectory, ensureExists, getBuildFilePatterns, getExclusionGlob, getInclusionPatternsFromNegatedExclusion, getJavaConfig, getJavaConfiguration, hasBuildToolConflicts, resolveActualCause, getVersion, cleanJavaLSConfiguration } from './utils'; import glob = require('glob'); import { Telemetry } from './telemetry'; import { getMessage } from './errorUtils'; @@ -436,6 +436,7 @@ export async function activate(context: ExtensionContext): Promise cleanupWorkspaceState(context); deleteDirectory(workspacePath); deleteDirectory(syntaxServerWorkspacePath); + cleanJavaLSConfiguration(context); } catch (error) { data['error'] = getMessage(error); window.showErrorMessage(`Failed to delete ${workspacePath}: ${error}`); diff --git a/src/utils.ts b/src/utils.ts index cb1cb3a99..989f3ab24 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -2,7 +2,7 @@ import * as fs from 'fs'; import * as path from 'path'; -import { workspace, WorkspaceConfiguration, commands, Uri, version } from 'vscode'; +import { workspace, WorkspaceConfiguration, commands, Uri, version, ExtensionContext } from 'vscode'; import { Commands } from './commands'; import { IJavaRuntime } from 'jdk-utils'; import { getSupportedJreNames, listJdks, sortJdksBySource, sortJdksByVersion } from './jdkUtils'; @@ -22,6 +22,11 @@ export function isPreferenceOverridden(section: string): boolean { config.inspect(section).globalLanguageValue !== undefined; } +export function cleanJavaLSConfiguration(context: ExtensionContext) { + const globalStoragePath = context.globalStorageUri?.fsPath; // .../Code/User/globalStorage/redhat.java + deleteDirectory(globalStoragePath); +} + export function deleteDirectory(dir) { if (fs.existsSync(dir)) { fs.readdirSync(dir).forEach((child) => {