parent
c45540033a
commit
bd2402a6e8
1 changed files with 24 additions and 1 deletions
|
@ -39,7 +39,7 @@ import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
|
|||
import { INotificationService } from 'vs/platform/notification/common/notification';
|
||||
import { BOTTOM_CELL_TOOLBAR_GAP, CELL_BOTTOM_MARGIN, CELL_TOP_MARGIN, EDITOR_BOTTOM_PADDING, EDITOR_BOTTOM_PADDING_WITHOUT_STATUSBAR, EDITOR_TOOLBAR_HEIGHT } from 'vs/workbench/contrib/notebook/browser/constants';
|
||||
import { DeleteCellAction, INotebookCellActionContext } from 'vs/workbench/contrib/notebook/browser/contrib/coreActions';
|
||||
import { BaseCellRenderTemplate, CellEditState, CodeCellRenderTemplate, EditorTopPaddingChangeEvent, EXPAND_CELL_INPUT_COMMAND_ID, getEditorTopPadding, ICellViewModel, INotebookEditor, isCodeCellRenderTemplate, MarkdownCellRenderTemplate } from 'vs/workbench/contrib/notebook/browser/notebookBrowser';
|
||||
import { BaseCellRenderTemplate, CellEditState, CodeCellLayoutInfo, CodeCellRenderTemplate, EditorTopPaddingChangeEvent, EXPAND_CELL_INPUT_COMMAND_ID, getEditorTopPadding, ICellViewModel, INotebookEditor, isCodeCellRenderTemplate, MarkdownCellRenderTemplate } from 'vs/workbench/contrib/notebook/browser/notebookBrowser';
|
||||
import { CellContextKeyManager } from 'vs/workbench/contrib/notebook/browser/view/renderers/cellContextKeys';
|
||||
import { CellDragAndDropController, DRAGGING_CLASS } from 'vs/workbench/contrib/notebook/browser/view/renderers/cellDnd';
|
||||
import { CellMenus } from 'vs/workbench/contrib/notebook/browser/view/renderers/cellMenus';
|
||||
|
@ -842,6 +842,7 @@ export class CodeCellRenderer extends AbstractCellRenderer implements IListRende
|
|||
|
||||
this.dndController.registerDragHandle(templateData, rootContainer, dragHandle, () => new CodeCellDragImageRenderer().getDragImage(templateData, templateData.editor, 'code'));
|
||||
|
||||
disposables.add(this.addDoubleClickCollapseHandler(templateData));
|
||||
disposables.add(DOM.addDisposableListener(focusSinkElement, DOM.EventType.FOCUS, () => {
|
||||
if (templateData.currentRenderedCell && (templateData.currentRenderedCell as CodeCellViewModel).outputsViewModels.length) {
|
||||
this.notebookEditor.focusNotebookCell(templateData.currentRenderedCell, 'output');
|
||||
|
@ -853,6 +854,28 @@ export class CodeCellRenderer extends AbstractCellRenderer implements IListRende
|
|||
return templateData;
|
||||
}
|
||||
|
||||
private addDoubleClickCollapseHandler(templateData: CodeCellRenderTemplate): IDisposable {
|
||||
return DOM.addDisposableListener(templateData.dragHandle, DOM.EventType.DBLCLICK, e => {
|
||||
const cell = templateData.currentRenderedCell;
|
||||
if (!cell) {
|
||||
return;
|
||||
}
|
||||
|
||||
const clickedOnInput = e.offsetY < (cell.layoutInfo as CodeCellLayoutInfo).outputContainerOffset;
|
||||
const viewModel = this.notebookEditor.viewModel!;
|
||||
const metadata: Partial<NotebookCellMetadata> = clickedOnInput ?
|
||||
{ inputCollapsed: !cell.metadata?.inputCollapsed } :
|
||||
{ outputCollapsed: !cell.metadata?.outputCollapsed };
|
||||
viewModel.notebookDocument.applyEdits([
|
||||
{
|
||||
editType: CellEditType.PartialMetadata,
|
||||
index: viewModel.getCellIndex(cell),
|
||||
metadata
|
||||
}
|
||||
], true, undefined, () => undefined, undefined);
|
||||
});
|
||||
}
|
||||
|
||||
private setupRunToolbar(runButtonContainer: HTMLElement, contextKeyService: IContextKeyService, disposables: DisposableStore): ToolBar {
|
||||
const runToolbar = this.createToolbar(runButtonContainer);
|
||||
const runMenu = this.cellMenus.getCellExecuteMenu(contextKeyService);
|
||||
|
|
Loading…
Reference in a new issue