Skip to content

Commit 8e71654

Browse files
committed
update language client to 8.0.2
Signed-off-by: Shi Chen <chenshi@microsoft.com>
1 parent 9b1e44f commit 8e71654

9 files changed

+496
-489
lines changed

package-lock.json

Lines changed: 17 additions & 19 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1414,7 +1414,7 @@
14141414
"htmlparser2": "6.0.1",
14151415
"jdk-utils": "^0.4.4",
14161416
"semver": "^7.3.5",
1417-
"vscode-languageclient": "8.0.0-next.4",
1417+
"vscode-languageclient": "^8.0.2",
14181418
"winreg-utf8": "^0.1.1",
14191419
"winston": "^3.2.1",
14201420
"winston-daily-rotate-file": "^3.10.0"

src/clientErrorHandler.ts

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { window, commands } from "vscode";
2-
import { ErrorHandler, Message, ErrorAction, CloseAction } from "vscode-languageclient";
2+
import { ErrorHandler, Message, ErrorAction, CloseAction, ErrorHandlerResult, CloseHandlerResult } from "vscode-languageclient";
33
import { Commands } from "./commands";
44
import { logger } from "./log";
55

@@ -10,21 +10,27 @@ export class ClientErrorHandler implements ErrorHandler {
1010
this.restarts = [];
1111
}
1212

13-
public error(_error: Error, _message: Message, count: number): ErrorAction {
13+
public error(_error: Error, _message: Message, count: number): ErrorHandlerResult {
1414
if (count && count <= 3) {
1515
logger.error(`${this.name} server encountered error: ${_message}, ${_error && _error.toString()}`);
16-
return ErrorAction.Continue;
16+
return {
17+
action: ErrorAction.Continue
18+
};
1719
}
1820

1921
logger.error(`${this.name} server encountered error and will shut down: ${_message}, ${_error && _error.toString()}`);
20-
return ErrorAction.Shutdown;
22+
return {
23+
action: ErrorAction.Shutdown
24+
};
2125
}
2226

23-
public closed(): CloseAction {
27+
public closed(): CloseHandlerResult {
2428
this.restarts.push(Date.now());
2529
if (this.restarts.length < 5) {
2630
logger.error(`The ${this.name} server crashed and will restart.`);
27-
return CloseAction.Restart;
31+
return {
32+
action: CloseAction.Restart
33+
};
2834
} else {
2935
const diff = this.restarts[this.restarts.length - 1] - this.restarts[0];
3036
if (diff <= 3 * 60 * 1000) {
@@ -36,12 +42,16 @@ export class ClientErrorHandler implements ErrorHandler {
3642
commands.executeCommand(Commands.OPEN_LOGS);
3743
}
3844
});
39-
return CloseAction.DoNotRestart;
45+
return {
46+
action: CloseAction.DoNotRestart
47+
};
4048
}
4149

4250
logger.error(`The ${this.name} server crashed and will restart.`);
4351
this.restarts.shift();
44-
return CloseAction.Restart;
52+
return {
53+
action: CloseAction.Restart
54+
};
4555
}
4656
}
4757
}

src/extension.ts

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import * as fse from 'fs-extra';
66
import * as os from 'os';
77
import * as path from 'path';
88
import { CodeActionContext, CodeActionTriggerKind, commands, ConfigurationTarget, Diagnostic, env, EventEmitter, ExtensionContext, extensions, IndentAction, InputBoxOptions, languages, RelativePattern, TextDocument, UIKind, Uri, ViewColumn, window, workspace, WorkspaceConfiguration } from 'vscode';
9-
import { CancellationToken, CodeActionParams, CodeActionRequest, Command, DidChangeConfigurationNotification, ExecuteCommandParams, ExecuteCommandRequest, LanguageClientOptions, RevealOutputChannelOn } from 'vscode-languageclient';
9+
import { CancellationToken, CodeActionParams, CodeActionRequest, Command, DidChangeConfigurationNotification, ExecuteCommandParams, ExecuteCommandRequest, LanguageClientOptions, RevealOutputChannelOn, State } from 'vscode-languageclient';
1010
import { LanguageClient } from 'vscode-languageclient/node';
1111
import { apiManager } from './apiManager';
1212
import { ClientErrorHandler } from './clientErrorHandler';
@@ -184,12 +184,12 @@ export function activate(context: ExtensionContext): Promise<ExtensionAPI> {
184184
},
185185
// https://github.com/redhat-developer/vscode-java/issues/2130
186186
// include all diagnostics for the current line in the CodeActionContext params for the performance reason
187-
provideCodeActions: (document, range, context, token, next) => {
187+
provideCodeActions: async (document, range, context, token, next) => {
188188
const client: LanguageClient = standardClient.getClient();
189189
const params: CodeActionParams = {
190190
textDocument: client.code2ProtocolConverter.asTextDocumentIdentifier(document),
191191
range: client.code2ProtocolConverter.asRange(range),
192-
context: client.code2ProtocolConverter.asCodeActionContext(context)
192+
context: await client.code2ProtocolConverter.asCodeActionContext(context)
193193
};
194194
const showAt = getJavaConfiguration().get<string>("quickfix.showAt");
195195
if (showAt === 'line' && range.start.line === range.end.line && range.start.character === range.end.character) {
@@ -210,7 +210,7 @@ export function activate(context: ExtensionContext): Promise<ExtensionAPI> {
210210
only: context.only,
211211
triggerKind: context.triggerKind,
212212
};
213-
params.context = client.code2ProtocolConverter.asCodeActionContext(codeActionContext);
213+
params.context = await client.code2ProtocolConverter.asCodeActionContext(codeActionContext);
214214
}
215215
}
216216
return client.sendRequest(CodeActionRequest.type, params, token).then((values) => {
@@ -244,13 +244,15 @@ export function activate(context: ExtensionContext): Promise<ExtensionAPI> {
244244

245245
apiManager.initialize(requirements, serverMode);
246246

247+
const serverOptions = prepareExecutable(requirements, syntaxServerWorkspacePath, getJavaConfig(requirements.java_home), context, true);
247248
if (requireSyntaxServer) {
248249
if (process.env['SYNTAXLS_CLIENT_PORT']) {
249250
syntaxClient.initialize(requirements, clientOptions, resolve);
250251
} else {
251-
syntaxClient.initialize(requirements, clientOptions, resolve, prepareExecutable(requirements, syntaxServerWorkspacePath, getJavaConfig(requirements.java_home), context, true));
252+
syntaxClient.initialize(requirements, clientOptions, resolve, serverOptions);
252253
}
253-
syntaxClient.start();
254+
await syntaxClient.start();
255+
syntaxClient.registerSyntaxClientActions(resolve, serverOptions);
254256
serverStatusBarProvider.showLightWeightStatus();
255257
}
256258

@@ -427,7 +429,8 @@ async function startStandardServer(context: ExtensionContext, requirements: requ
427429
apiManager.fireDidServerModeChange(ServerMode.hybrid);
428430
}
429431
await standardClient.initialize(context, requirements, clientOptions, workspacePath, jdtEventEmitter, resolve);
430-
standardClient.start();
432+
await standardClient.start();
433+
standardClient.registerLanguageClientActions(context, await fse.pathExists(path.join(workspacePath, ".metadata", ".plugins")), jdtEventEmitter, resolve);
431434
serverStatusBarProvider.showStandardStatus();
432435
}
433436

@@ -525,12 +528,10 @@ export async function getActiveLanguageClient(): Promise<LanguageClient | undefi
525528
languageClient = syntaxClient.getClient();
526529
}
527530

528-
if (!languageClient) {
531+
if (!languageClient || languageClient.state !== State.Running) {
529532
return undefined;
530533
}
531534

532-
await languageClient.onReady();
533-
534535
return languageClient;
535536
}
536537

src/pasteEventHandler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ class PasteEditProvider implements DocumentPasteEditProvider {
9494
if (pasteResponse) {
9595
return {
9696
insertText: pasteResponse.insertText,
97-
additionalEdit: pasteResponse.additionalEdit ? this.languageClient.protocol2CodeConverter.asWorkspaceEdit(pasteResponse.additionalEdit) : undefined
97+
additionalEdit: pasteResponse.additionalEdit ? await this.languageClient.protocol2CodeConverter.asWorkspaceEdit(pasteResponse.additionalEdit) : undefined
9898
} as VDocumentPasteEdit;
9999
}
100100
} catch (e) {

src/refactorAction.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ async function applyRefactorEdit(languageClient: LanguageClient, refactorEdit: R
214214
}
215215

216216
if (refactorEdit.edit) {
217-
const edit = languageClient.protocol2CodeConverter.asWorkspaceEdit(refactorEdit.edit);
217+
const edit = await languageClient.protocol2CodeConverter.asWorkspaceEdit(refactorEdit.edit);
218218
if (edit) {
219219
await workspace.applyEdit(edit);
220220
}

src/sourceAction.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@ function registerGenerateDelegateMethodsCommand(languageClient: LanguageClient,
385385
}
386386

387387
async function revealWorkspaceEdit(workspaceEdit: WorkspaceEdit, languageClient: LanguageClient): Promise<void> {
388-
const codeWorkspaceEdit = languageClient.protocol2CodeConverter.asWorkspaceEdit(workspaceEdit);
388+
const codeWorkspaceEdit = await languageClient.protocol2CodeConverter.asWorkspaceEdit(workspaceEdit);
389389
if (!codeWorkspaceEdit) {
390390
return;
391391
}

0 commit comments

Comments
 (0)