From 5b4c9d9eb044a68a278c069fd1932a0b8c19b5d1 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sun, 6 Nov 2022 07:18:24 +0100 Subject: [PATCH] fix(frontend): reload websocket on lsp go import install --- frontend/src/lib/components/Editor.svelte | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/frontend/src/lib/components/Editor.svelte b/frontend/src/lib/components/Editor.svelte index 9283a0c721..368f59f2df 100644 --- a/frontend/src/lib/components/Editor.svelte +++ b/frontend/src/lib/components/Editor.svelte @@ -221,6 +221,19 @@ const languageClient = createLanguageClient({ reader, writer }, name, options) websockets.push([languageClient, webSocket]) + // HACK ALERT: for some reasons, the client need to be restarted to take into account the 'go get ' command + // the only way I could figure out to listen for this event is this. I'm sure there is a better way to do this + if (name == 'go') { + const om = webSocket.onmessage + webSocket.onmessage = (e) => { + om && om.apply(webSocket, [e]) + const js = JSON.parse(e.data) + if (js.method == 'window/showMessage' && js.params.message == 'completed') { + console.log('reloading websocket after go get') + reloadWebsocket() + } + } + } reader.onClose(async () => { try { console.log('CLOSE')