diff --git a/src/vs/workbench/api/browser/mainThreadNotebookKernels.ts b/src/vs/workbench/api/browser/mainThreadNotebookKernels.ts index b858a09ad9b..308e0964ae0 100644 --- a/src/vs/workbench/api/browser/mainThreadNotebookKernels.ts +++ b/src/vs/workbench/api/browser/mainThreadNotebookKernels.ts @@ -128,7 +128,7 @@ export class MainThreadNotebookKernels implements MainThreadNotebookKernelsShape if (!editor.hasModel()) { return; } - const { selected } = this._notebookKernelService.getNotebookKernels(editor.viewModel.notebookDocument); + const { selected } = this._notebookKernelService.getMatchingKernel(editor.viewModel.notebookDocument); if (!selected) { return; } @@ -158,7 +158,7 @@ export class MainThreadNotebookKernels implements MainThreadNotebookKernelsShape if (!editor.hasModel()) { continue; } - if (this._notebookKernelService.getNotebookKernels(editor.viewModel.notebookDocument).selected !== kernel) { + if (this._notebookKernelService.getMatchingKernel(editor.viewModel.notebookDocument).selected !== kernel) { // different kernel continue; } diff --git a/src/vs/workbench/contrib/notebook/browser/contrib/coreActions.ts b/src/vs/workbench/contrib/notebook/browser/contrib/coreActions.ts index 713c02b5fac..04740c1163d 100644 --- a/src/vs/workbench/contrib/notebook/browser/contrib/coreActions.ts +++ b/src/vs/workbench/contrib/notebook/browser/contrib/coreActions.ts @@ -1557,7 +1557,7 @@ CommandsRegistry.registerCommand('_resolveNotebookKernels', async (accessor, arg }[]> => { const notebookKernelService = accessor.get(INotebookKernelService); const uri = URI.revive(args.uri as UriComponents); - const kernels = notebookKernelService.getNotebookKernels({ uri, viewType: args.viewType }); + const kernels = notebookKernelService.getMatchingKernel({ uri, viewType: args.viewType }); return kernels.all.map(provider => ({ id: provider.id, diff --git a/src/vs/workbench/contrib/notebook/browser/contrib/status/editorStatus.ts b/src/vs/workbench/contrib/notebook/browser/contrib/status/editorStatus.ts index f993d2be93d..7dca6b1639e 100644 --- a/src/vs/workbench/contrib/notebook/browser/contrib/status/editorStatus.ts +++ b/src/vs/workbench/contrib/notebook/browser/contrib/status/editorStatus.ts @@ -72,7 +72,7 @@ registerAction2(class extends Action2 { } const notebook = editor.viewModel.notebookDocument; - const { selected, all } = notebookKernelService.getNotebookKernels(notebook); + const { selected, all } = notebookKernelService.getMatchingKernel(notebook); if (selected && context && selected.id === context.id && ExtensionIdentifier.equals(selected.extension, context.extension)) { // current kernel is wanted kernel -> done @@ -115,7 +115,7 @@ registerAction2(class extends Action2 { }); const pick = await quickInputService.pick(picks, { onDidTriggerItemButton: (context) => { - notebookKernelService.updateNotebookTypeKernelBinding(notebook.viewType, context.item.kernel); + notebookKernelService.selectKernelForNotebookType(context.item.kernel, notebook.viewType); } }); @@ -125,7 +125,7 @@ registerAction2(class extends Action2 { } if (newKernel) { - notebookKernelService.updateNotebookInstanceKernelBinding(notebook, newKernel); + notebookKernelService.selectKernelForNotebook(newKernel, notebook); } } }); @@ -172,7 +172,7 @@ export class KernelStatus extends Disposable implements IWorkbenchContribution { private _showKernelStatus(notebook: INotebookTextModel) { - let { selected, all } = this._notebookKernelService.getNotebookKernels(notebook); + let { selected, all } = this._notebookKernelService.getMatchingKernel(notebook); let isSuggested = false; if (all.length === 0) { diff --git a/src/vs/workbench/contrib/notebook/browser/notebookEditorKernelManager.ts b/src/vs/workbench/contrib/notebook/browser/notebookEditorKernelManager.ts index 7c184e898ef..f20f7e634c0 100644 --- a/src/vs/workbench/contrib/notebook/browser/notebookEditorKernelManager.ts +++ b/src/vs/workbench/contrib/notebook/browser/notebookEditorKernelManager.ts @@ -22,7 +22,7 @@ export class NotebookEditorKernelManager extends Disposable { } getActiveKernel(notebook: INotebookTextModel): INotebookKernel | undefined { - const info = this._notebookKernelService.getNotebookKernels(notebook); + const info = this._notebookKernelService.getMatchingKernel(notebook); return info.selected ?? info.all[0]; } @@ -62,7 +62,7 @@ export class NotebookEditorKernelManager extends Disposable { } if (cellHandles.length > 0) { - this._notebookKernelService.updateNotebookInstanceKernelBinding(notebook, kernel); + this._notebookKernelService.selectKernelForNotebook(kernel, notebook); await kernel.executeNotebookCellsRequest(notebook.uri, cellHandles); } } diff --git a/src/vs/workbench/contrib/notebook/browser/notebookEditorWidgetContextKeys.ts b/src/vs/workbench/contrib/notebook/browser/notebookEditorWidgetContextKeys.ts index 7358f0d2971..ba83b21978b 100644 --- a/src/vs/workbench/contrib/notebook/browser/notebookEditorWidgetContextKeys.ts +++ b/src/vs/workbench/contrib/notebook/browser/notebookEditorWidgetContextKeys.ts @@ -91,7 +91,7 @@ export class NotebookEditorContextKeys { return; } - const { selected, all } = this._notebookKernelService.getNotebookKernels(this._editor.viewModel.notebookDocument); + const { selected, all } = this._notebookKernelService.getMatchingKernel(this._editor.viewModel.notebookDocument); this._notebookKernelCount.set(all.length); this._interruptibleKernel.set(selected?.implementsInterrupt ?? false); } diff --git a/src/vs/workbench/contrib/notebook/browser/notebookKernelServiceImpl.ts b/src/vs/workbench/contrib/notebook/browser/notebookKernelServiceImpl.ts index 5beb0d273c3..52cdfeadee7 100644 --- a/src/vs/workbench/contrib/notebook/browser/notebookKernelServiceImpl.ts +++ b/src/vs/workbench/contrib/notebook/browser/notebookKernelServiceImpl.ts @@ -6,7 +6,7 @@ import { Event, Emitter } from 'vs/base/common/event'; import { DisposableStore, IDisposable, toDisposable } from 'vs/base/common/lifecycle'; import { INotebookKernel, INotebookTextModel } from 'vs/workbench/contrib/notebook/common/notebookCommon'; -import { INotebookKernelBindEvent, INotebookKernelMatchInfo, INotebookKernelService, INotebookTextModelLike } from 'vs/workbench/contrib/notebook/common/notebookKernelService'; +import { INotebookKernelBindEvent, INotebookKernelMatchResult, INotebookKernelService, INotebookTextModelLike } from 'vs/workbench/contrib/notebook/common/notebookKernelService'; import { LRUCache, ResourceMap } from 'vs/base/common/map'; import { IStorageService, StorageScope, StorageTarget } from 'vs/platform/storage/common/storage'; import { URI } from 'vs/base/common/uri'; @@ -167,7 +167,7 @@ export class NotebookKernelService implements INotebookKernelService { }); } - getNotebookKernels(notebook: INotebookTextModelLike): INotebookKernelMatchInfo { + getMatchingKernel(notebook: INotebookTextModelLike): INotebookKernelMatchResult { // all applicable kernels const kernels: { kernel: INotebookKernel, instanceAffinity: number, typeAffinity: number, score: number }[] = []; @@ -195,7 +195,7 @@ export class NotebookKernelService implements INotebookKernelService { } // default kernel for notebookType - updateNotebookTypeKernelBinding(typeId: string, kernel: INotebookKernel): void { + selectKernelForNotebookType(kernel: INotebookKernel, typeId: string): void { const existing = this._typeBindings.get(typeId); if (existing !== kernel.id) { this._typeBindings.set(typeId, kernel.id); @@ -206,7 +206,7 @@ export class NotebookKernelService implements INotebookKernelService { // a notebook has one kernel, a kernel has N notebooks // notebook <-1----N-> kernel - updateNotebookInstanceKernelBinding(notebook: INotebookTextModelLike, kernel: INotebookKernel | undefined): void { + selectKernelForNotebook(kernel: INotebookKernel, notebook: INotebookTextModelLike): void { const key = NotebookTextModelLikeId.str(notebook); const oldKernel = this._notebookBindings.get(key); if (oldKernel !== kernel?.id) { @@ -215,7 +215,7 @@ export class NotebookKernelService implements INotebookKernelService { } else { this._notebookBindings.delete(key); } - this._onDidChangeNotebookKernelBinding.fire({ notebook: notebook.uri, oldKernel, newKernel: kernel?.id }); + this._onDidChangeNotebookKernelBinding.fire({ notebook: notebook.uri, oldKernel, newKernel: kernel.id }); this._persistMementos(); } } diff --git a/src/vs/workbench/contrib/notebook/common/notebookKernelService.ts b/src/vs/workbench/contrib/notebook/common/notebookKernelService.ts index 6214c51cf47..ffeabf5977b 100644 --- a/src/vs/workbench/contrib/notebook/common/notebookKernelService.ts +++ b/src/vs/workbench/contrib/notebook/common/notebookKernelService.ts @@ -15,7 +15,7 @@ export interface INotebookKernelBindEvent { newKernel: string | undefined; } -export interface INotebookKernelMatchInfo { +export interface INotebookKernelMatchResult { readonly selected: INotebookKernel | undefined; readonly all: INotebookKernel[]; } @@ -34,20 +34,20 @@ export interface INotebookKernelService { registerKernel(kernel: INotebookKernel): IDisposable; - getNotebookKernels(notebook: INotebookTextModelLike): INotebookKernelMatchInfo; + getMatchingKernel(notebook: INotebookTextModelLike): INotebookKernelMatchResult; /** * Bind a notebook document to a kernel. A notebook is only bound to one kernel * but a kernel can be bound to many notebooks (depending on its configuration) */ - updateNotebookInstanceKernelBinding(notebook: INotebookTextModelLike, kernel: INotebookKernel | undefined): void; + selectKernelForNotebook(kernel: INotebookKernel, notebook: INotebookTextModelLike): void; /** * Bind a notebook type to a kernel. * @param viewType * @param kernel */ - updateNotebookTypeKernelBinding(viewType: string, kernel: INotebookKernel): void; + selectKernelForNotebookType(kernel: INotebookKernel, viewType: string): void; /** * Set a perference of a kernel for a certain notebook. Higher values win, `undefined` removes the preference diff --git a/src/vs/workbench/contrib/notebook/test/notebookEditorKernelManager.test.ts b/src/vs/workbench/contrib/notebook/test/notebookEditorKernelManager.test.ts index f3cb4c07308..b1348c26f89 100644 --- a/src/vs/workbench/contrib/notebook/test/notebookEditorKernelManager.test.ts +++ b/src/vs/workbench/contrib/notebook/test/notebookEditorKernelManager.test.ts @@ -99,7 +99,7 @@ suite('NotebookEditorKernelManager', () => { // https://github.com/microsoft/vscode/issues/121904 return withTestNotebook([], async viewModel => { - assert.strictEqual(kernelService.getNotebookKernels(viewModel.notebookDocument).all.length, 0); + assert.strictEqual(kernelService.getMatchingKernel(viewModel.notebookDocument).all.length, 0); let didExecute = false; const kernel = new class extends TestNotebookKernel { diff --git a/src/vs/workbench/contrib/notebook/test/notebookKernelService.test.ts b/src/vs/workbench/contrib/notebook/test/notebookKernelService.test.ts index d2c46841767..fc9164586be 100644 --- a/src/vs/workbench/contrib/notebook/test/notebookKernelService.test.ts +++ b/src/vs/workbench/contrib/notebook/test/notebookKernelService.test.ts @@ -54,7 +54,7 @@ suite('NotebookKernelService', () => { kernelService.registerKernel(k2); // equal priorities -> sort by name - let info = kernelService.getNotebookKernels({ uri: u1, viewType: 'foo' }); + let info = kernelService.getMatchingKernel({ uri: u1, viewType: 'foo' }); assert.ok(info.all[0] === k2); assert.ok(info.all[1] === k1); @@ -63,18 +63,18 @@ suite('NotebookKernelService', () => { kernelService.updateKernelNotebookAffinity(k2, u2, 1); // updated - info = kernelService.getNotebookKernels({ uri: u1, viewType: 'foo' }); + info = kernelService.getMatchingKernel({ uri: u1, viewType: 'foo' }); assert.ok(info.all[0] === k2); assert.ok(info.all[1] === k1); // NOT updated - info = kernelService.getNotebookKernels({ uri: u2, viewType: 'foo' }); + info = kernelService.getMatchingKernel({ uri: u2, viewType: 'foo' }); assert.ok(info.all[0] === k2); assert.ok(info.all[1] === k1); // reset kernelService.updateKernelNotebookAffinity(k2, u1, undefined); - info = kernelService.getNotebookKernels({ uri: u1, viewType: 'foo' }); + info = kernelService.getMatchingKernel({ uri: u1, viewType: 'foo' }); assert.ok(info.all[0] === k2); assert.ok(info.all[1] === k1); }); @@ -85,18 +85,18 @@ suite('NotebookKernelService', () => { const kernel = new TestNotebookKernel(); kernelService.registerKernel(kernel); - let info = kernelService.getNotebookKernels({ uri: notebook, viewType: 'foo' }); + let info = kernelService.getMatchingKernel({ uri: notebook, viewType: 'foo' }); assert.strictEqual(info.all.length, 1); assert.ok(info.all[0] === kernel); const betterKernel = new TestNotebookKernel(); kernelService.registerKernel(betterKernel); - info = kernelService.getNotebookKernels({ uri: notebook, viewType: 'foo' }); + info = kernelService.getMatchingKernel({ uri: notebook, viewType: 'foo' }); assert.strictEqual(info.all.length, 2); kernelService.updateKernelNotebookAffinity(betterKernel, notebook, 2); - info = kernelService.getNotebookKernels({ uri: notebook, viewType: 'foo' }); + info = kernelService.getMatchingKernel({ uri: notebook, viewType: 'foo' }); assert.strictEqual(info.all.length, 2); assert.ok(info.all[0] === betterKernel); assert.ok(info.all[1] === kernel); @@ -113,13 +113,13 @@ suite('NotebookKernelService', () => { kernelService.registerKernel(jupyterKernel); kernelService.registerKernel(dotnetKernel); - kernelService.updateNotebookInstanceKernelBinding(jupyter, jupyterKernel); - kernelService.updateNotebookInstanceKernelBinding(dotnet, dotnetKernel); + kernelService.selectKernelForNotebook(jupyterKernel, jupyter); + kernelService.selectKernelForNotebook(dotnetKernel, dotnet); - let info = kernelService.getNotebookKernels(dotnet); + let info = kernelService.getMatchingKernel(dotnet); assert.strictEqual(info.selected === dotnetKernel, true); - info = kernelService.getNotebookKernels(jupyter); + info = kernelService.getMatchingKernel(jupyter); assert.strictEqual(info.selected === jupyterKernel, true); }); @@ -134,8 +134,8 @@ suite('NotebookKernelService', () => { kernelService.registerKernel(jupyterKernel); kernelService.registerKernel(dotnetKernel); - kernelService.updateNotebookInstanceKernelBinding(jupyter, jupyterKernel); - kernelService.updateNotebookInstanceKernelBinding(dotnet, dotnetKernel); + kernelService.selectKernelForNotebook(jupyterKernel, jupyter); + kernelService.selectKernelForNotebook(dotnetKernel, dotnet); { // open as jupyter -> bind event