Skip to content

Commit c70dfd8

Browse files
chagongdatho7561
authored andcommitted
Revert "fix: fall back to stdio when pipe startup fails"
This reverts commit 1a90cbd.
1 parent 9b9665d commit c70dfd8

4 files changed

Lines changed: 10 additions & 185 deletions

File tree

src/fileEventHandler.ts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import * as stringInterpolate from 'fmtr';
1313
import { apiManager } from './apiManager';
1414

1515
let serverReady: boolean = false;
16-
type LanguageClientProvider = LanguageClient | (() => LanguageClient);
1716

1817
const BRACE_POSITION_KEY = "org.eclipse.jdt.core.formatter.brace_position_for_type_declaration";
1918
const END_OF_LINE = "end_of_line";
@@ -25,7 +24,7 @@ export function setServerStatus(ready: boolean) {
2524
serverReady = ready;
2625
}
2726

28-
export function registerFileEventHandlers(client: LanguageClientProvider, context: ExtensionContext) {
27+
export function registerFileEventHandlers(client: LanguageClient, context: ExtensionContext) {
2928
if (workspace.onDidCreateFiles) {// Theia doesn't support workspace.onDidCreateFiles yet
3029
context.subscriptions.push(workspace.onDidCreateFiles(handleNewJavaFiles));
3130
}
@@ -191,11 +190,7 @@ async function handleNewJavaFiles(e: FileCreateEvent) {
191190
}, 100);
192191
}
193192

194-
function getLanguageClient(client: LanguageClientProvider): LanguageClient {
195-
return typeof client === 'function' ? client() : client;
196-
}
197-
198-
function getWillRenameHandler(client: LanguageClientProvider) {
193+
function getWillRenameHandler(client: LanguageClient) {
199194
return function handleWillRenameFiles(e: FileWillRenameEvent): void {
200195
if (!serverReady) {
201196
return;
@@ -220,11 +215,10 @@ function getWillRenameHandler(client: LanguageClientProvider) {
220215
return;
221216
}
222217

223-
const languageClient = getLanguageClient(client);
224-
const edit = await languageClient.sendRequest(WillRenameFiles.type, {
218+
const edit = await client.sendRequest(WillRenameFiles.type, {
225219
files: javaRenameEvents
226220
});
227-
resolve(await languageClient.protocol2CodeConverter.asWorkspaceEdit(edit));
221+
resolve(await client.protocol2CodeConverter.asWorkspaceEdit(edit));
228222
} catch (ex) {
229223
reject(ex);
230224
}

src/standardLanguageClient.ts

Lines changed: 6 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import * as net from 'net';
44
import * as path from 'path';
55
import { CancellationToken, CodeActionKind, commands, ConfigurationTarget, DocumentSelector, EventEmitter, ExtensionContext, extensions, languages, Location, ProgressLocation, TextEditor, Uri, ViewColumn, window, workspace, WorkspaceConfiguration } from "vscode";
66
import { ConfigurationParams, ConfigurationRequest, LanguageClientOptions, Location as LSLocation, MessageType, Position as LSPosition, TextDocumentPositionParams, WorkspaceEdit, StaticFeature, ClientCapabilities, FeatureState, TelemetryEventNotification } from "vscode-languageclient";
7-
import { LanguageClient, ServerOptions, StreamInfo } from "vscode-languageclient/node";
7+
import { LanguageClient, StreamInfo } from "vscode-languageclient/node";
88
import { apiManager } from "./apiManager";
99
import * as buildPath from './buildpath';
1010
import { javaRefactorKinds, RefactorDocumentProvider } from "./codeActionProvider";
@@ -42,7 +42,6 @@ import { listJdks, sortJdksBySource, sortJdksByVersion } from './jdkUtils';
4242
import { ClientCodeActionProvider } from './clientCodeActionProvider';
4343
import { BuildFileSelector } from './buildFilesSelector';
4444
import { extendedOutlineQuickPick } from "./outline/extendedOutlineQuickPick";
45-
import { startWithStdioFallback } from './standardLanguageClientStart';
4645

4746
const extensionName = 'Language Support for Java';
4847
const GRADLE_CHECKSUM = "gradle/checksum/prompt";
@@ -51,7 +50,6 @@ const USE_JAVA = "Use Java ";
5150
const AS_GRADLE_JVM = " as Gradle JVM";
5251
const UPGRADE_GRADLE = "Upgrade Gradle to ";
5352
const GRADLE_IMPORT_JVM = "java.import.gradle.java.home";
54-
const PIPE_START_TIMEOUT_MS = 30000;
5553
export const JAVA_SELECTOR: DocumentSelector = [
5654
{ scheme: "file", language: "java", pattern: "**/*.java" },
5755
{ scheme: "jdt", language: "java", pattern: "**/*.class" },
@@ -61,8 +59,6 @@ export const JAVA_SELECTOR: DocumentSelector = [
6159
export class StandardLanguageClient {
6260

6361
private languageClient: LanguageClient;
64-
private serverOptions: ServerOptions;
65-
private clientOptions: LanguageClientOptions;
6662
private status: ClientStatus = ClientStatus.uninitialized;
6763

6864
public async initialize(context: ExtensionContext, requirements: RequirementsData, clientOptions: LanguageClientOptions, workspacePath: string, jdtEventEmitter: EventEmitter<Uri>): Promise<void> {
@@ -89,7 +85,7 @@ export class StandardLanguageClient {
8985
}
9086
});
9187

92-
let serverOptions: ServerOptions;
88+
let serverOptions;
9389
const port = process.env['JDTLS_SERVER_PORT'];
9490
if (!port) {
9591
const lsPort = process.env['JDTLS_CLIENT_PORT'];
@@ -109,26 +105,19 @@ export class StandardLanguageClient {
109105
// used during development
110106
serverOptions = awaitServerConnection.bind(null, port);
111107
}
112-
this.serverOptions = serverOptions;
113-
this.clientOptions = clientOptions;
114108

115109
// Create the language client and start the client.
116-
this.languageClient = this.createLanguageClient(serverOptions, clientOptions);
110+
this.languageClient = new TracingLanguageClient('java', extensionName, serverOptions, clientOptions, DEBUG);
111+
this.languageClient.registerFeature(new DisableWillRenameFeature());
117112

118113
this.registerCommandsForStandardServer(context, jdtEventEmitter);
119-
fileEventHandler.registerFileEventHandlers(() => this.languageClient, context);
114+
fileEventHandler.registerFileEventHandlers(this.languageClient, context);
120115

121116
collectBuildFilePattern(extensions.all);
122117

123118
this.status = ClientStatus.initialized;
124119
}
125120

126-
private createLanguageClient(serverOptions: ServerOptions, clientOptions: LanguageClientOptions): LanguageClient {
127-
const languageClient = new TracingLanguageClient('java', extensionName, serverOptions, clientOptions, DEBUG);
128-
languageClient.registerFeature(new DisableWillRenameFeature());
129-
return languageClient;
130-
}
131-
132121
public registerLanguageClientActions(context: ExtensionContext, hasImported: boolean, jdtEventEmitter: EventEmitter<Uri>) {
133122
activationProgressNotification.showProgress();
134123
this.languageClient.onNotification(StatusNotification.type, async (report) => {
@@ -788,16 +777,7 @@ export class StandardLanguageClient {
788777
public start(): Promise<void> {
789778
if (this.languageClient && this.status === ClientStatus.initialized) {
790779
this.status = ClientStatus.starting;
791-
return startWithStdioFallback({
792-
languageClient: this.languageClient,
793-
serverOptions: this.serverOptions,
794-
createLanguageClient: (serverOptions) => this.createLanguageClient(serverOptions, this.clientOptions),
795-
pipeStartTimeout: PIPE_START_TIMEOUT_MS,
796-
onFallback: (error) => logger.warn(`Falling back to 'stdio' (from 'pipe') because starting the pipe transport failed: ${error}`),
797-
}).then(result => {
798-
this.languageClient = result.client;
799-
this.serverOptions = result.serverOptions;
800-
});
780+
return this.languageClient.start();
801781
}
802782
}
803783

src/standardLanguageClientStart.ts

Lines changed: 0 additions & 66 deletions
This file was deleted.

test/standard-mode-suite/standardLanguageClient.test.ts

Lines changed: 0 additions & 83 deletions
This file was deleted.

0 commit comments

Comments
 (0)