From 2cd520ba11aee07cb08132d944bea2fd703d9441 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Collonval?= Date: Mon, 22 Jan 2024 17:43:19 +0100 Subject: [PATCH] Update the inspector when the kernel changes --- src/handler.ts | 35 ++++++++++++++++++----------------- src/kernelconnector.ts | 8 ++++++++ 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/src/handler.ts b/src/handler.ts index b8b9f13..fb34cb2 100644 --- a/src/handler.ts +++ b/src/handler.ts @@ -110,24 +110,25 @@ export class VariableInspectionHandler extends AbstractHandler { }); }); - this._connector.kernelRestarted.connect( - (sender, kernelReady: Promise) => { - const title: IVariableInspector.IVariableTitle = { - contextName: 'Restarting kernel... ' - }; - this._inspected.emit({ - title: title, - payload: [] - } as IVariableInspector.IVariableInspectorUpdate); - - this._ready = kernelReady.then(() => { - this._initOnKernel().then((msg: KernelMessage.IExecuteReplyMsg) => { - this._connector.iopubMessage.connect(this._queryCall); - this.performInspection(); - }); + const onKernelReset = (sender: unknown, kernelReady: Promise) => { + const title: IVariableInspector.IVariableTitle = { + contextName: 'Waiting for kernel... ' + }; + this._inspected.emit({ + title: title, + payload: [] + } as IVariableInspector.IVariableInspectorUpdate); + + this._ready = kernelReady.then(() => { + this._initOnKernel().then((msg: KernelMessage.IExecuteReplyMsg) => { + this._connector.iopubMessage.connect(this._queryCall); + this.performInspection(); }); - } - ); + }); + }; + + this._connector.kernelRestarted.connect(onKernelReset); + this._connector.kernelChanged.connect(onKernelReset); } get id(): string { diff --git a/src/kernelconnector.ts b/src/kernelconnector.ts index 4da4572..2789fa6 100644 --- a/src/kernelconnector.ts +++ b/src/kernelconnector.ts @@ -16,6 +16,7 @@ import { ISignal, Signal } from '@lumino/signaling'; */ export class KernelConnector { private _session: ISessionContext; + private _kernelChanged = new Signal>(this); private _kernelRestarted = new Signal>(this); constructor(options: KernelConnector.IOptions) { @@ -32,6 +33,13 @@ export class KernelConnector { } } ); + this._session.kernelChanged.connect(() => + this._kernelChanged.emit(this._session.ready) + ); + } + + get kernelChanged(): ISignal> { + return this._kernelChanged; } get kernelRestarted(): ISignal> {