diff --git a/packages/libro-lsp/src/adapters/notebook-adapter.ts b/packages/libro-lsp/src/adapters/notebook-adapter.ts index 1bf8fdd7..5140813b 100644 --- a/packages/libro-lsp/src/adapters/notebook-adapter.ts +++ b/packages/libro-lsp/src/adapters/notebook-adapter.ts @@ -188,7 +188,7 @@ export class NotebookAdapter extends WidgetLSPAdapter { * @param _session - Session context of changed kernel * @param change - Changed data */ - async onKernelChanged(): Promise { + onKernelChanged = async (): Promise => { try { // note: we need to wait until ready before updating language info const oldLanguageInfo = this._languageInfo; @@ -212,7 +212,7 @@ export class NotebookAdapter extends WidgetLSPAdapter { // try to reconnect anyway this.reloadConnection(); } - } + }; /** * Dispose the widget. @@ -397,9 +397,11 @@ export class NotebookAdapter extends WidgetLSPAdapter { return; } - this._activeEditorChanged.fire({ - editor: this.getCellEditor(libroModel.active)!, - }); + if (libroModel.active) { + this._activeEditorChanged.fire({ + editor: this.getCellEditor(libroModel.active)!, + }); + } } /** diff --git a/packages/libro-lsp/src/connection-manager.ts b/packages/libro-lsp/src/connection-manager.ts index fbcadf28..c7f2d0fe 100644 --- a/packages/libro-lsp/src/connection-manager.ts +++ b/packages/libro-lsp/src/connection-manager.ts @@ -427,7 +427,7 @@ export class DocumentConnectionManager implements ILSPDocumentConnectionManager * language. */ disconnect(languageId: TLanguageServerId): void { - this.disconnect(languageId); + this.disconnectServer(languageId); } /** diff --git a/packages/libro-lsp/src/connection.ts b/packages/libro-lsp/src/connection.ts index 4cd7aede..b939603d 100644 --- a/packages/libro-lsp/src/connection.ts +++ b/packages/libro-lsp/src/connection.ts @@ -254,7 +254,9 @@ export class LSPConnection extends LspWsConnection implements ILSPConnection { if (this.isDisposed) { return; } - Object.values(this.serverRequests).forEach((request) => request.clearHandler()); + if (this.serverRequests) { + Object.values(this.serverRequests).forEach((request) => request.clearHandler()); + } this.close(); super.dispose(); }