mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
parent
6ca794326c
commit
b91356118d
4 changed files with 22 additions and 8 deletions
|
@ -43,6 +43,8 @@ export abstract class AbstractLauncher implements ILanguageServerLauncher {
|
|||
log.debug('Detach mode, expected language server launch externally');
|
||||
proxy.onConnected(() => {
|
||||
this.running = true;
|
||||
// reset spawn times
|
||||
this.spawnTimes = 0;
|
||||
});
|
||||
proxy.onDisconnected(() => {
|
||||
this.running = false;
|
||||
|
@ -81,6 +83,8 @@ export abstract class AbstractLauncher implements ILanguageServerLauncher {
|
|||
await new Promise((resolve, reject) => {
|
||||
proxy.onConnected(() => {
|
||||
this.proxyConnected = true;
|
||||
// reset spawn times
|
||||
this.spawnTimes = 0;
|
||||
resolve();
|
||||
});
|
||||
this.launchReject = err => {
|
||||
|
|
|
@ -93,9 +93,10 @@ export class LanguageServerProxy implements ILanguageServerHandler {
|
|||
this.eventEmitter.on('err', error =>
|
||||
reject(new ResponseError(InternalError, 'Server error', error))
|
||||
);
|
||||
this.eventEmitter.on('exit', () =>
|
||||
reject(new ResponseError(RequestCancelled, 'Server closed'))
|
||||
);
|
||||
this.eventEmitter.on('exit', () => {
|
||||
reject(new ResponseError(RequestCancelled, 'Server closed'));
|
||||
this.initialized = false;
|
||||
});
|
||||
this.eventEmitter.on('connect', () => resolve(this.clientConnection!));
|
||||
});
|
||||
}
|
||||
|
@ -164,6 +165,7 @@ export class LanguageServerProxy implements ILanguageServerHandler {
|
|||
clientConn.sendNotification(ExitNotification.type);
|
||||
}
|
||||
this.eventEmitter.emit('exit');
|
||||
this.initialized = false;
|
||||
}
|
||||
|
||||
public startServerConnection() {
|
||||
|
@ -246,6 +248,7 @@ export class LanguageServerProxy implements ILanguageServerHandler {
|
|||
|
||||
private onSocketClosed() {
|
||||
this.clientConnection = null;
|
||||
this.initialized = false;
|
||||
this.eventEmitter.emit('close');
|
||||
}
|
||||
|
||||
|
|
|
@ -56,9 +56,12 @@ export class RequestExpander implements ILanguageServerHandler {
|
|||
readonly log: Logger
|
||||
) {
|
||||
this.proxy = proxy;
|
||||
proxy.onDisconnected(() => {
|
||||
const clearListener = () => {
|
||||
this.log.debug('proxy disconnected, clearing workspace status');
|
||||
this.workspaces.clear();
|
||||
});
|
||||
};
|
||||
proxy.onDisconnected(clearListener);
|
||||
proxy.onExit(clearListener);
|
||||
this.workspaceRoot = fs.realpathSync(this.serverOptions.workspacePath);
|
||||
}
|
||||
|
||||
|
@ -260,9 +263,10 @@ export class RequestExpander implements ILanguageServerHandler {
|
|||
}
|
||||
|
||||
initializeState(workspaceDir: string): WorkspaceStatus {
|
||||
if (this.hasWorkspacePath(workspaceDir)) {
|
||||
return this.getWorkspace(workspaceDir).status;
|
||||
const ws = this.getWorkspace(workspaceDir);
|
||||
if (ws.status === WorkspaceStatus.Uninitialized) {
|
||||
ws.initPromise = Cancelable.fromPromise(this.initialize(workspaceDir));
|
||||
}
|
||||
return WorkspaceStatus.Uninitialized;
|
||||
return ws.status;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -158,6 +158,9 @@ export class WorkspaceHandler {
|
|||
}
|
||||
|
||||
public handleResponse(request: LspRequest, response: ResponseMessage): ResponseMessage {
|
||||
if (!response.result) {
|
||||
return response;
|
||||
}
|
||||
const { method } = request;
|
||||
switch (method) {
|
||||
case 'textDocument/hover': {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue