Skip to content

Commit 4531566

Browse files
authored
feat(4677): utilize error logging for monaco client language libs connections (#4847)
1 parent bf7d369 commit 4531566

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

src/languageSupport/languages/flux/lsp/monaco.flux.lsp.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ import fluxWorkerUrl from 'worker-plugin/loader!./worker/flux.worker'
2323
import Fallback from 'src/languageSupport/languages/flux/lsp/worker/flux.fallback'
2424
import {EditorType} from 'src/types'
2525

26+
// error notification
27+
import {reportErrorThroughHoneyBadger} from 'src/shared/utils/errors'
28+
2629
// install Monaco language client services
2730
MonacoServices.install(monaco)
2831

@@ -52,6 +55,17 @@ function createLanguageClient(
5255

5356
let worker: Worker, messageReader, messageWriter, prelude
5457

58+
const handleConnectionClose = () => {
59+
reportErrorThroughHoneyBadger(new Error('LSP connection closed.'), {
60+
name: 'LSP worker',
61+
})
62+
}
63+
64+
const handleConnectionError = ([error, ,]: [Error, unknown, number]) => {
65+
// LSP worker will not be stopped. Is only an unhandled error.
66+
reportErrorThroughHoneyBadger(error, {name: 'LSP worker'})
67+
}
68+
5569
export function initLspWorker() {
5670
if (worker) {
5771
return
@@ -68,9 +82,11 @@ export function initLspWorker() {
6882
const connection = createMessageConnection(messageReader, messageWriter)
6983
const languageClient = createLanguageClient(connection)
7084
const disposable = languageClient.start()
85+
connection.onError(e => handleConnectionError(e))
7186
connection.onClose(() => {
7287
disposable.dispose()
7388
prelude.dispose()
89+
handleConnectionClose()
7490
})
7591
}
7692
initLspWorker()

0 commit comments

Comments
 (0)