From 8d8f5c2d9bfa8c082f38220de214980dc8987141 Mon Sep 17 00:00:00 2001 From: geequlim Date: Sun, 12 Jan 2020 00:00:17 +0800 Subject: [PATCH] Support reconnect to language server when server port changed --- src/lsp/GDScriptLanguageClient.ts | 2 +- src/lsp/MessageIO.ts | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/lsp/GDScriptLanguageClient.ts b/src/lsp/GDScriptLanguageClient.ts index da81762..9b2b10f 100644 --- a/src/lsp/GDScriptLanguageClient.ts +++ b/src/lsp/GDScriptLanguageClient.ts @@ -82,7 +82,7 @@ export default class GDScriptLanguageClient extends LanguageClient { connect_to_server() { this.status = ClientStatus.PENDING; - io.connect_to_language_server(); + io.connect_to_language_server(get_server_uri()); } start(): vscode.Disposable { diff --git a/src/lsp/MessageIO.ts b/src/lsp/MessageIO.ts index c8bdca1..47ec5ca 100644 --- a/src/lsp/MessageIO.ts +++ b/src/lsp/MessageIO.ts @@ -12,11 +12,9 @@ export class MessageIO extends EventEmitter { writer: MessageIOWriter = null; private socket: WebSocket = null; - private url: string = ""; constructor(url: string) { super(); - this.url = url; } public send_message(message: string) { @@ -39,10 +37,10 @@ export class MessageIO extends EventEmitter { this.emit("message", message); } - connect_to_language_server():Promise { + connect_to_language_server(url: string):Promise { return new Promise((resolve, reject) => { this.socket = null; - const ws = new WebSocket(this.url); + const ws = new WebSocket(url); ws.on('open', ()=>{ this.on_connected(ws); resolve(); }); ws.on('message', this.on_message.bind(this)); ws.on('error', this.on_disconnected.bind(this));