From 995c9a4c685fad4d18aead1b80ed921ea318f352 Mon Sep 17 00:00:00 2001 From: Jonah Iden Date: Fri, 24 Nov 2023 16:03:39 +0100 Subject: [PATCH] review changes Signed-off-by: Jonah Iden --- .../contributions/notebook-actions-contribution.ts | 4 ++-- packages/notebook/src/browser/notebook-frontend-module.ts | 4 ++-- .../src/browser/service/notebook-editor-widget-service.ts | 2 +- .../src/browser/service/notebook-execution-service.ts | 4 ++-- .../browser/service/notebook-kernel-quick-pick-service.ts | 4 +--- .../notebook/src/browser/view-model/notebook-model.ts | 8 ++++++-- .../notebook/src/browser/view/notebook-cell-list-view.tsx | 4 ++-- 7 files changed, 16 insertions(+), 14 deletions(-) diff --git a/packages/notebook/src/browser/contributions/notebook-actions-contribution.ts b/packages/notebook/src/browser/contributions/notebook-actions-contribution.ts index 1f4aff462c969..9d73b6a766323 100644 --- a/packages/notebook/src/browser/contributions/notebook-actions-contribution.ts +++ b/packages/notebook/src/browser/contributions/notebook-actions-contribution.ts @@ -20,7 +20,7 @@ import { ApplicationShell, codicon, CommonCommands } from '@theia/core/lib/brows import { NotebookModel } from '../view-model/notebook-model'; import { NotebookService } from '../service/notebook-service'; import { CellEditType, CellKind } from '../../common'; -import { NotebookKernelQuickPickService, NotebookKernelQuickPickServiceImpl } from '../service/notebook-kernel-quick-pick-service'; +import { NotebookKernelQuickPickService } from '../service/notebook-kernel-quick-pick-service'; import { NotebookExecutionService } from '../service/notebook-execution-service'; import { NotebookEditorWidget } from '../notebook-editor-widget'; @@ -66,7 +66,7 @@ export class NotebookActionsContribution implements CommandContribution, MenuCon protected notebookService: NotebookService; @inject(NotebookKernelQuickPickService) - protected notebookKernelQuickPickService: NotebookKernelQuickPickServiceImpl; + protected notebookKernelQuickPickService: NotebookKernelQuickPickService; @inject(NotebookExecutionService) protected notebookExecutionService: NotebookExecutionService; diff --git a/packages/notebook/src/browser/notebook-frontend-module.ts b/packages/notebook/src/browser/notebook-frontend-module.ts index 2e31556824d41..7839f0aa1f631 100644 --- a/packages/notebook/src/browser/notebook-frontend-module.ts +++ b/packages/notebook/src/browser/notebook-frontend-module.ts @@ -37,7 +37,7 @@ import { NotebookActionsContribution } from './contributions/notebook-actions-co import { NotebookExecutionService } from './service/notebook-execution-service'; import { NotebookExecutionStateService } from './service/notebook-execution-state-service'; import { NotebookKernelService } from './service/notebook-kernel-service'; -import { NotebookKernelQuickPickService, NotebookKernelQuickPickServiceImpl } from './service/notebook-kernel-quick-pick-service'; +import { NotebookKernelQuickPickService } from './service/notebook-kernel-quick-pick-service'; import { NotebookKernelHistoryService } from './service/notebook-kernel-history-service'; import { NotebookEditorWidgetService } from './service/notebook-editor-widget-service'; import { NotebookRendererMessagingService } from './service/notebook-renderer-messaging-service'; @@ -65,7 +65,7 @@ export default new ContainerModule(bind => { bind(NotebookKernelService).toSelf().inSingletonScope(); bind(NotebookRendererMessagingService).toSelf().inSingletonScope(); bind(NotebookKernelHistoryService).toSelf().inSingletonScope(); - bind(NotebookKernelQuickPickService).to(NotebookKernelQuickPickServiceImpl).inSingletonScope(); + bind(NotebookKernelQuickPickService).toSelf().inSingletonScope(); bind(NotebookCellResourceResolver).toSelf().inSingletonScope(); bind(ResourceResolver).toService(NotebookCellResourceResolver); diff --git a/packages/notebook/src/browser/service/notebook-editor-widget-service.ts b/packages/notebook/src/browser/service/notebook-editor-widget-service.ts index 4261a153275f7..3416285f4adc7 100644 --- a/packages/notebook/src/browser/service/notebook-editor-widget-service.ts +++ b/packages/notebook/src/browser/service/notebook-editor-widget-service.ts @@ -87,7 +87,7 @@ export class NotebookEditorWidgetService implements Disposable { } getNotebookEditors(): readonly NotebookEditorWidget[] { - return [...this.notebookEditors].map(e => e[1]); + return Array.from(this.notebookEditors.values()); } } diff --git a/packages/notebook/src/browser/service/notebook-execution-service.ts b/packages/notebook/src/browser/service/notebook-execution-service.ts index 67b32b7e26b47..022607a5720ff 100644 --- a/packages/notebook/src/browser/service/notebook-execution-service.ts +++ b/packages/notebook/src/browser/service/notebook-execution-service.ts @@ -25,7 +25,7 @@ import { NotebookCellModel } from '../view-model/notebook-cell-model'; import { NotebookModel } from '../view-model/notebook-model'; import { NotebookKernelService } from './notebook-kernel-service'; import { CommandService, Disposable } from '@theia/core'; -import { NotebookKernelQuickPickService, NotebookKernelQuickPickServiceImpl } from './notebook-kernel-quick-pick-service'; +import { NotebookKernelQuickPickService } from './notebook-kernel-quick-pick-service'; import { NotebookKernelHistoryService } from './notebook-kernel-history-service'; export interface CellExecutionParticipant { @@ -48,7 +48,7 @@ export class NotebookExecutionService { protected commandService: CommandService; @inject(NotebookKernelQuickPickService) - protected notebookKernelQuickPickService: NotebookKernelQuickPickServiceImpl; + protected notebookKernelQuickPickService: NotebookKernelQuickPickService; private readonly cellExecutionParticipants = new Set(); diff --git a/packages/notebook/src/browser/service/notebook-kernel-quick-pick-service.ts b/packages/notebook/src/browser/service/notebook-kernel-quick-pick-service.ts index 057447f741dae..874672cee0ab7 100644 --- a/packages/notebook/src/browser/service/notebook-kernel-quick-pick-service.ts +++ b/packages/notebook/src/browser/service/notebook-kernel-quick-pick-service.ts @@ -29,8 +29,6 @@ import debounce = require('@theia/core/shared/lodash.debounce'); export const JUPYTER_EXTENSION_ID = 'ms-toolsai.jupyter'; -export const NotebookKernelQuickPickService = Symbol('NotebookKernelQuickPickService'); - type KernelPick = QuickPickItem & { kernel: NotebookKernel }; function isKernelPick(item: QuickPickInput): item is KernelPick { return 'kernel' in item; @@ -82,7 +80,7 @@ function toKernelQuickPick(kernel: NotebookKernel, selected: NotebookKernel | un } @injectable() -export class NotebookKernelQuickPickServiceImpl { +export class NotebookKernelQuickPickService { @inject(NotebookKernelService) protected readonly notebookKernelService: NotebookKernelService; diff --git a/packages/notebook/src/browser/view-model/notebook-model.ts b/packages/notebook/src/browser/view-model/notebook-model.ts index 187d89dfedf1b..9ec960c104787 100644 --- a/packages/notebook/src/browser/view-model/notebook-model.ts +++ b/packages/notebook/src/browser/view-model/notebook-model.ts @@ -60,7 +60,7 @@ export class NotebookModel implements Saveable, Disposable { protected readonly onDidAddOrRemoveCellEmitter = new Emitter(); readonly onDidAddOrRemoveCell = this.onDidAddOrRemoveCellEmitter.event; - private readonly onDidChangeContentEmitter = new Emitter(); + protected readonly onDidChangeContentEmitter = new Emitter(); readonly onDidChangeContent = this.onDidChangeContentEmitter.event; @inject(FileService) @@ -164,7 +164,11 @@ export class NotebookModel implements Saveable, Disposable { } async applySnapshot(snapshot: Saveable.Snapshot): Promise { - const data = 'read' in snapshot ? JSON.parse(snapshot.read()!) : JSON.parse(snapshot.value); + const rawData = 'read' in snapshot ? snapshot.read() : snapshot.value; + if (!rawData) { + throw new Error('could not read notebook snapshot'); + } + const data = JSON.parse(rawData); const cells = data.cells.map((cell: CellData, index: number) => { const handle = this.nextHandle++; return this.cellModelFactory({ diff --git a/packages/notebook/src/browser/view/notebook-cell-list-view.tsx b/packages/notebook/src/browser/view/notebook-cell-list-view.tsx index 24700df0b98a0..f1ea9aab4945a 100644 --- a/packages/notebook/src/browser/view/notebook-cell-list-view.tsx +++ b/packages/notebook/src/browser/view/notebook-cell-list-view.tsx @@ -105,7 +105,7 @@ export class NotebookCellListView extends React.Component, index: number): void { event.stopPropagation(); - event.dataTransfer.setData('text/theia-notbook-cell-index', index.toString()); + event.dataTransfer.setData('text/theia-notebook-cell-index', index.toString()); event.dataTransfer.setData('text/plain', this.props.notebookModel.cells[index].source); } @@ -117,7 +117,7 @@ export class NotebookCellListView extends React.Component, dropElementIndex: number): void { - const index = parseInt(event.dataTransfer.getData('text/theia-notbook-cell-index')); + const index = parseInt(event.dataTransfer.getData('text/theia-notebook-cell-index')); const isTargetBelow = index < dropElementIndex; let newIdx = this.state.dragOverIndicator?.position === 'top' ? dropElementIndex : dropElementIndex + 1; newIdx = isTargetBelow ? newIdx - 1 : newIdx;