mirror of
https://github.com/microsoft/vscode.git
synced 2026-02-15 07:28:05 +00:00
track and dispose listener (#294643)
This commit is contained in:
@@ -150,6 +150,7 @@ export class ExtHostNotebookKernels implements ExtHostNotebookKernelsShape {
|
||||
let _executeHandler = handler ?? _defaultExecutHandler;
|
||||
let _interruptHandler: ((this: vscode.NotebookController, notebook: vscode.NotebookDocument) => void | Thenable<void>) | undefined;
|
||||
let _variableProvider: vscode.NotebookVariableProvider | undefined;
|
||||
let _variableProviderDisposable: IDisposable | undefined;
|
||||
|
||||
this._proxy.$addKernel(handle, data).catch(err => {
|
||||
// this can happen when a kernel with that ID is already registered
|
||||
@@ -234,9 +235,10 @@ export class ExtHostNotebookKernels implements ExtHostNotebookKernelsShape {
|
||||
},
|
||||
set variableProvider(value) {
|
||||
checkProposedApiEnabled(extension, 'notebookVariableProvider');
|
||||
_variableProviderDisposable?.dispose();
|
||||
_variableProvider = value;
|
||||
data.hasVariableProvider = !!value;
|
||||
value?.onDidChangeVariables(e => that._proxy.$variablesUpdated(e.uri));
|
||||
_variableProviderDisposable = value?.onDidChangeVariables(e => that._proxy.$variablesUpdated(e.uri));
|
||||
_update();
|
||||
},
|
||||
get variableProvider() {
|
||||
@@ -270,6 +272,7 @@ export class ExtHostNotebookKernels implements ExtHostNotebookKernelsShape {
|
||||
this._kernelData.delete(handle);
|
||||
onDidChangeSelection.dispose();
|
||||
onDidReceiveMessage.dispose();
|
||||
_variableProviderDisposable?.dispose();
|
||||
this._proxy.$removeKernel(handle);
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user