diff --git a/src/extension.ts b/src/extension.ts index 4b4e74ea6e..efd7391981 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -390,7 +390,7 @@ async function startStandardServer(context: ExtensionContext, requirements: requ apiManager.getApiInstance().serverMode = ServerMode.HYBRID; apiManager.fireDidServerModeChange(ServerMode.HYBRID); } - standardClient.initialize(context, requirements, clientOptions, workspacePath, jdtEventEmitter, resolve); + await standardClient.initialize(context, requirements, clientOptions, workspacePath, jdtEventEmitter, resolve); standardClient.start(); serverStatusBarProvider.showStandardStatus(); } diff --git a/src/standardLanguageClient.ts b/src/standardLanguageClient.ts index 9a5fa70ef8..41ead2690c 100644 --- a/src/standardLanguageClient.ts +++ b/src/standardLanguageClient.ts @@ -13,6 +13,7 @@ import { onExtensionChange, collectBuildFilePattern } from "./plugin"; import { activationProgressNotification, serverTaskPresenter } from "./serverTaskPresenter"; import { RequirementsData } from "./requirements"; import * as net from 'net'; +import * as fse from 'fs-extra'; import * as path from 'path'; import { getJavaConfiguration } from "./utils"; import { logger } from "./log"; @@ -40,11 +41,13 @@ export class StandardLanguageClient { private languageClient: LanguageClient; private status: ClientStatus = ClientStatus.Uninitialized; - public initialize(context: ExtensionContext, requirements: RequirementsData, clientOptions: LanguageClientOptions, workspacePath: string, jdtEventEmitter: EventEmitter, resolve: (value: ExtensionAPI) => void): void { + public async initialize(context: ExtensionContext, requirements: RequirementsData, clientOptions: LanguageClientOptions, workspacePath: string, jdtEventEmitter: EventEmitter, resolve: (value: ExtensionAPI) => void): Promise { if (this.status !== ClientStatus.Uninitialized) { return; } + const hasImported: boolean = await fse.pathExists(path.join(workspacePath, ".metadata", ".plugins")); + if (workspace.getConfiguration().get("java.showBuildStatusOnStart.enabled") === "terminal") { commands.executeCommand(Commands.SHOW_SERVER_TASK_STATUS); } @@ -97,7 +100,9 @@ export class StandardLanguageClient { apiManager.updateServerMode(ServerMode.STANDARD); apiManager.fireDidServerModeChange(ServerMode.STANDARD); activationProgressNotification.hide(); - showImportFinishNotification(context); + if (!hasImported) { + showImportFinishNotification(context); + } break; case 'Started': this.status = ClientStatus.Started;