@jupyterlab/notebook-extension 0.18.3 → 0.18.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/package.json +12 -12
package/lib/index.js
CHANGED
|
@@ -347,7 +347,7 @@ function activateNotebookHandler(app, mainMenu, palette, contentFactory, editorS
|
|
|
347
347
|
return 'Notebook';
|
|
348
348
|
},
|
|
349
349
|
caption: 'Create a new notebook',
|
|
350
|
-
iconClass: args => args['
|
|
350
|
+
iconClass: args => (args['isPalette'] ? '' : 'jp-NotebookIcon'),
|
|
351
351
|
execute: args => {
|
|
352
352
|
const cwd = args['cwd'] ||
|
|
353
353
|
(browserFactory ? browserFactory.defaultBrowser.model.path : '');
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../notebook-extension/src/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport {\n ILayoutRestorer,\n JupyterLab,\n JupyterLabPlugin\n} from '@jupyterlab/application';\n\nimport {\n Dialog,\n ICommandPalette,\n MainAreaWidget,\n showDialog\n} from '@jupyterlab/apputils';\n\nimport { CodeCell } from '@jupyterlab/cells';\n\nimport { CodeEditor, IEditorServices } from '@jupyterlab/codeeditor';\n\nimport {\n ISettingRegistry,\n IStateDB,\n PageConfig,\n URLExt\n} from '@jupyterlab/coreutils';\n\nimport { UUID } from '@phosphor/coreutils';\n\nimport { IFileBrowserFactory } from '@jupyterlab/filebrowser';\n\nimport { ILauncher } from '@jupyterlab/launcher';\n\nimport {\n IMainMenu,\n IEditMenu,\n IFileMenu,\n IHelpMenu,\n IKernelMenu,\n IRunMenu,\n IViewMenu\n} from '@jupyterlab/mainmenu';\n\nimport {\n CellTools,\n ICellTools,\n INotebookTracker,\n NotebookActions,\n NotebookModelFactory,\n NotebookPanel,\n NotebookTracker,\n NotebookWidgetFactory,\n StaticNotebook\n} from '@jupyterlab/notebook';\n\nimport { IRenderMimeRegistry } from '@jupyterlab/rendermime';\n\nimport { ServiceManager } from '@jupyterlab/services';\n\nimport { ReadonlyJSONObject } from '@phosphor/coreutils';\n\nimport { Message, MessageLoop } from '@phosphor/messaging';\n\nimport { Menu } from '@phosphor/widgets';\n\n/**\n * The command IDs used by the notebook plugin.\n */\nnamespace CommandIDs {\n export const createNew = 'notebook:create-new';\n\n export const interrupt = 'notebook:interrupt-kernel';\n\n export const restart = 'notebook:restart-kernel';\n\n export const restartClear = 'notebook:restart-clear-output';\n\n export const restartRunAll = 'notebook:restart-run-all';\n\n export const reconnectToKernel = 'notebook:reconnect-to-kernel';\n\n export const changeKernel = 'notebook:change-kernel';\n\n export const createConsole = 'notebook:create-console';\n\n export const createOutputView = 'notebook:create-output-view';\n\n export const clearAllOutputs = 'notebook:clear-all-cell-outputs';\n\n export const closeAndShutdown = 'notebook:close-and-shutdown';\n\n export const trust = 'notebook:trust';\n\n export const exportToFormat = 'notebook:export-to-format';\n\n export const run = 'notebook:run-cell';\n\n export const runAndAdvance = 'notebook:run-cell-and-select-next';\n\n export const runAndInsert = 'notebook:run-cell-and-insert-below';\n\n export const runInConsole = 'notebook:run-in-console';\n\n export const runAll = 'notebook:run-all-cells';\n\n export const runAllAbove = 'notebook:run-all-above';\n\n export const runAllBelow = 'notebook:run-all-below';\n\n export const toCode = 'notebook:change-cell-to-code';\n\n export const toMarkdown = 'notebook:change-cell-to-markdown';\n\n export const toRaw = 'notebook:change-cell-to-raw';\n\n export const cut = 'notebook:cut-cell';\n\n export const copy = 'notebook:copy-cell';\n\n export const pasteAbove = 'notebook:paste-cell-above';\n\n export const pasteBelow = 'notebook:paste-cell-below';\n\n export const pasteAndReplace = 'notebook:paste-and-replace-cell';\n\n export const moveUp = 'notebook:move-cell-up';\n\n export const moveDown = 'notebook:move-cell-down';\n\n export const clearOutputs = 'notebook:clear-cell-output';\n\n export const deleteCell = 'notebook:delete-cell';\n\n export const insertAbove = 'notebook:insert-cell-above';\n\n export const insertBelow = 'notebook:insert-cell-below';\n\n export const selectAbove = 'notebook:move-cursor-up';\n\n export const selectBelow = 'notebook:move-cursor-down';\n\n export const extendAbove = 'notebook:extend-marked-cells-above';\n\n export const extendBelow = 'notebook:extend-marked-cells-below';\n\n export const selectAll = 'notebook:select-all';\n\n export const deselectAll = 'notebook:deselect-all';\n\n export const editMode = 'notebook:enter-edit-mode';\n\n export const merge = 'notebook:merge-cells';\n\n export const split = 'notebook:split-cell-at-cursor';\n\n export const commandMode = 'notebook:enter-command-mode';\n\n export const toggleAllLines = 'notebook:toggle-all-cell-line-numbers';\n\n export const undoCellAction = 'notebook:undo-cell-action';\n\n export const redoCellAction = 'notebook:redo-cell-action';\n\n export const markdown1 = 'notebook:change-cell-to-heading-1';\n\n export const markdown2 = 'notebook:change-cell-to-heading-2';\n\n export const markdown3 = 'notebook:change-cell-to-heading-3';\n\n export const markdown4 = 'notebook:change-cell-to-heading-4';\n\n export const markdown5 = 'notebook:change-cell-to-heading-5';\n\n export const markdown6 = 'notebook:change-cell-to-heading-6';\n\n export const hideCode = 'notebook:hide-cell-code';\n\n export const showCode = 'notebook:show-cell-code';\n\n export const hideAllCode = 'notebook:hide-all-cell-code';\n\n export const showAllCode = 'notebook:show-all-cell-code';\n\n export const hideOutput = 'notebook:hide-cell-outputs';\n\n export const showOutput = 'notebook:show-cell-outputs';\n\n export const hideAllOutputs = 'notebook:hide-all-cell-outputs';\n\n export const showAllOutputs = 'notebook:show-all-cell-outputs';\n\n export const enableOutputScrolling = 'notebook:enable-output-scrolling';\n\n export const disableOutputScrolling = 'notebook:disable-output-scrolling';\n\n export const saveWithView = 'notebook:save-with-view';\n}\n\n/**\n * The class name for the notebook icon from the default theme.\n */\nconst NOTEBOOK_ICON_CLASS = 'jp-NotebookIcon';\n\n/**\n * The name of the factory that creates notebooks.\n */\nconst FACTORY = 'Notebook';\n\n/**\n * The rank of the cell tools tab in the sidebar\n */\nconst CELL_TOOLS_RANK = 400;\n\n/**\n * The allowed Export To ... formats and their human readable labels.\n */\nconst EXPORT_TO_FORMATS = [\n { format: 'html', label: 'HTML' },\n { format: 'latex', label: 'LaTeX' },\n { format: 'markdown', label: 'Markdown' },\n { format: 'pdf', label: 'PDF' },\n { format: 'rst', label: 'ReStructured Text' },\n { format: 'script', label: 'Executable Script' },\n { format: 'slides', label: 'Reveal.js Slides' }\n];\n\n/**\n * The notebook widget tracker provider.\n */\nconst trackerPlugin: JupyterLabPlugin<INotebookTracker> = {\n id: '@jupyterlab/notebook-extension:tracker',\n provides: INotebookTracker,\n requires: [\n IMainMenu,\n ICommandPalette,\n NotebookPanel.IContentFactory,\n IEditorServices,\n ILayoutRestorer,\n IRenderMimeRegistry,\n ISettingRegistry\n ],\n optional: [IFileBrowserFactory, ILauncher],\n activate: activateNotebookHandler,\n autoStart: true\n};\n\n/**\n * The notebook cell factory provider.\n */\nconst factory: JupyterLabPlugin<NotebookPanel.IContentFactory> = {\n id: '@jupyterlab/notebook-extension:factory',\n provides: NotebookPanel.IContentFactory,\n requires: [IEditorServices],\n autoStart: true,\n activate: (app: JupyterLab, editorServices: IEditorServices) => {\n let editorFactory = editorServices.factoryService.newInlineEditor;\n return new NotebookPanel.ContentFactory({ editorFactory });\n }\n};\n\n/**\n * The cell tools extension.\n */\nconst tools: JupyterLabPlugin<ICellTools> = {\n activate: activateCellTools,\n provides: ICellTools,\n id: '@jupyterlab/notebook-extension:tools',\n autoStart: true,\n requires: [INotebookTracker, IEditorServices, IStateDB]\n};\n\n/**\n * Export the plugins as default.\n */\nconst plugins: JupyterLabPlugin<any>[] = [factory, trackerPlugin, tools];\nexport default plugins;\n\n/**\n * Activate the cell tools extension.\n */\nfunction activateCellTools(\n app: JupyterLab,\n tracker: INotebookTracker,\n editorServices: IEditorServices,\n state: IStateDB\n): Promise<ICellTools> {\n const id = 'cell-tools';\n const celltools = new CellTools({ tracker });\n const activeCellTool = new CellTools.ActiveCellTool();\n const slideShow = CellTools.createSlideShowSelector();\n const nbConvert = CellTools.createNBConvertSelector();\n const editorFactory = editorServices.factoryService.newInlineEditor;\n const metadataEditor = new CellTools.MetadataEditorTool({ editorFactory });\n\n // Create message hook for triggers to save to the database.\n const hook = (sender: any, message: Message): boolean => {\n switch (message.type) {\n case 'activate-request':\n state.save(id, { open: true });\n break;\n case 'after-hide':\n case 'close-request':\n state.remove(id);\n break;\n default:\n break;\n }\n return true;\n };\n\n celltools.title.iconClass = 'jp-BuildIcon jp-SideBar-tabIcon';\n celltools.title.caption = 'Cell Inspector';\n celltools.id = id;\n celltools.addItem({ tool: activeCellTool, rank: 1 });\n celltools.addItem({ tool: slideShow, rank: 2 });\n celltools.addItem({ tool: nbConvert, rank: 3 });\n celltools.addItem({ tool: metadataEditor, rank: 4 });\n MessageLoop.installMessageHook(celltools, hook);\n\n // Wait until the application has finished restoring before rendering.\n Promise.all([state.fetch(id), app.restored]).then(([args]) => {\n const open = !!(args && ((args as ReadonlyJSONObject)['open'] as boolean));\n\n // After initial restoration, check if the cell tools should render.\n if (tracker.size) {\n app.shell.addToLeftArea(celltools, { rank: CELL_TOOLS_RANK });\n if (open) {\n app.shell.activateById(celltools.id);\n }\n }\n\n // For all subsequent widget changes, check if the cell tools should render.\n app.shell.currentChanged.connect((sender, args) => {\n // If there are any open notebooks, add cell tools to the side panel if\n // it is not already there.\n if (tracker.size) {\n if (!celltools.isAttached) {\n app.shell.addToLeftArea(celltools, { rank: CELL_TOOLS_RANK });\n }\n return;\n }\n // If there are no notebooks, close cell tools.\n celltools.close();\n });\n });\n\n return Promise.resolve(celltools);\n}\n\n/**\n * Activate the notebook handler extension.\n */\nfunction activateNotebookHandler(\n app: JupyterLab,\n mainMenu: IMainMenu,\n palette: ICommandPalette,\n contentFactory: NotebookPanel.IContentFactory,\n editorServices: IEditorServices,\n restorer: ILayoutRestorer,\n rendermime: IRenderMimeRegistry,\n settingRegistry: ISettingRegistry,\n browserFactory: IFileBrowserFactory | null,\n launcher: ILauncher | null\n): INotebookTracker {\n const services = app.serviceManager;\n // An object for tracking the current notebook settings.\n let editorConfig = StaticNotebook.defaultEditorConfig;\n const factory = new NotebookWidgetFactory({\n name: FACTORY,\n fileTypes: ['notebook'],\n modelName: 'notebook',\n defaultFor: ['notebook'],\n preferKernel: true,\n canStartKernel: true,\n rendermime: rendermime,\n contentFactory,\n editorConfig,\n mimeTypeService: editorServices.mimeTypeService\n });\n const { commands, restored } = app;\n const tracker = new NotebookTracker({ namespace: 'notebook' });\n\n // Handle state restoration.\n restorer.restore(tracker, {\n command: 'docmanager:open',\n args: panel => ({ path: panel.context.path, factory: FACTORY }),\n name: panel => panel.context.path,\n when: services.ready\n });\n\n let registry = app.docRegistry;\n registry.addModelFactory(new NotebookModelFactory({}));\n registry.addWidgetFactory(factory);\n\n addCommands(app, services, tracker);\n populatePalette(palette);\n\n let id = 0; // The ID counter for notebook panels.\n\n factory.widgetCreated.connect((sender, widget) => {\n // If the notebook panel does not have an ID, assign it one.\n widget.id = widget.id || `notebook-${++id}`;\n widget.title.icon = NOTEBOOK_ICON_CLASS;\n // Notify the instance tracker if restore data needs to update.\n widget.context.pathChanged.connect(() => {\n tracker.save(widget);\n });\n // Add the notebook panel to the tracker.\n tracker.add(widget);\n });\n\n /**\n * Update the setting values.\n */\n function updateConfig(settings: ISettingRegistry.ISettings): void {\n let cached = settings.get('codeCellConfig').composite as Partial<\n CodeEditor.IConfig\n >;\n let code = { ...StaticNotebook.defaultEditorConfig.code };\n Object.keys(code).forEach((key: keyof CodeEditor.IConfig) => {\n code[key] =\n cached[key] === null || cached[key] === undefined\n ? code[key]\n : cached[key];\n });\n cached = settings.get('markdownCellConfig').composite as Partial<\n CodeEditor.IConfig\n >;\n let markdown = { ...StaticNotebook.defaultEditorConfig.markdown };\n Object.keys(markdown).forEach((key: keyof CodeEditor.IConfig) => {\n markdown[key] =\n cached[key] === null || cached[key] === undefined\n ? markdown[key]\n : cached[key];\n });\n cached = settings.get('rawCellConfig').composite as Partial<\n CodeEditor.IConfig\n >;\n let raw = { ...StaticNotebook.defaultEditorConfig.raw };\n Object.keys(raw).forEach((key: keyof CodeEditor.IConfig) => {\n raw[key] =\n cached[key] === null || cached[key] === undefined\n ? raw[key]\n : cached[key];\n });\n factory.editorConfig = editorConfig = { code, markdown, raw };\n }\n\n /**\n * Update the settings of the current tracker instances.\n */\n function updateTracker(): void {\n tracker.forEach(widget => {\n widget.content.editorConfig = editorConfig;\n });\n }\n\n // Fetch the initial state of the settings.\n Promise.all([settingRegistry.load(trackerPlugin.id), restored])\n .then(([settings]) => {\n updateConfig(settings);\n updateTracker();\n settings.changed.connect(() => {\n updateConfig(settings);\n updateTracker();\n });\n })\n .catch((reason: Error) => {\n console.error(reason.message);\n updateTracker();\n });\n\n // Add main menu notebook menu.\n populateMenus(app, mainMenu, tracker);\n\n // Utility function to create a new notebook.\n const createNew = (cwd: string, kernelName?: string) => {\n return commands\n .execute('docmanager:new-untitled', { path: cwd, type: 'notebook' })\n .then(model => {\n return commands.execute('docmanager:open', {\n path: model.path,\n factory: FACTORY,\n kernel: { name: kernelName }\n });\n });\n };\n\n // Add a command for creating a new notebook.\n commands.addCommand(CommandIDs.createNew, {\n label: args => {\n const kernelName = (args['kernelName'] as string) || '';\n if (args['isLauncher'] && args['kernelName']) {\n return services.specs.kernelspecs[kernelName].display_name;\n }\n if (args['isPalette']) {\n return 'New Notebook';\n }\n return 'Notebook';\n },\n caption: 'Create a new notebook',\n iconClass: args =>\n args['isLauncher'] || args['isPalette'] ? '' : 'jp-NotebookIcon',\n execute: args => {\n const cwd =\n (args['cwd'] as string) ||\n (browserFactory ? browserFactory.defaultBrowser.model.path : '');\n const kernelName = (args['kernelName'] as string) || '';\n return createNew(cwd, kernelName);\n }\n });\n\n // Add a launcher item if the launcher is available.\n if (launcher) {\n services.ready.then(() => {\n const specs = services.specs;\n const baseUrl = PageConfig.getBaseUrl();\n\n for (let name in specs.kernelspecs) {\n let rank = name === specs.default ? 0 : Infinity;\n let kernelIconUrl = specs.kernelspecs[name].resources['logo-64x64'];\n if (kernelIconUrl) {\n let index = kernelIconUrl.indexOf('kernelspecs');\n kernelIconUrl = baseUrl + kernelIconUrl.slice(index);\n }\n launcher.add({\n command: CommandIDs.createNew,\n args: { isLauncher: true, kernelName: name },\n category: 'Notebook',\n rank,\n kernelIconUrl\n });\n }\n });\n }\n\n // Cell context menu groups\n app.contextMenu.addItem({\n type: 'separator',\n selector: '.jp-Notebook .jp-Cell',\n rank: 0\n });\n app.contextMenu.addItem({\n command: CommandIDs.cut,\n selector: '.jp-Notebook .jp-Cell',\n rank: 1\n });\n app.contextMenu.addItem({\n command: CommandIDs.copy,\n selector: '.jp-Notebook .jp-Cell',\n rank: 2\n });\n app.contextMenu.addItem({\n command: CommandIDs.pasteBelow,\n selector: '.jp-Notebook .jp-Cell',\n rank: 3\n });\n app.contextMenu.addItem({\n type: 'separator',\n selector: '.jp-Notebook .jp-Cell',\n rank: 4\n });\n app.contextMenu.addItem({\n command: CommandIDs.deleteCell,\n selector: '.jp-Notebook .jp-Cell',\n rank: 5\n });\n app.contextMenu.addItem({\n type: 'separator',\n selector: '.jp-Notebook .jp-Cell',\n rank: 6\n });\n app.contextMenu.addItem({\n command: CommandIDs.split,\n selector: '.jp-Notebook .jp-Cell',\n rank: 7\n });\n app.contextMenu.addItem({\n type: 'separator',\n selector: '.jp-Notebook .jp-Cell',\n rank: 8\n });\n\n // CodeCell context menu groups\n app.contextMenu.addItem({\n command: CommandIDs.createOutputView,\n selector: '.jp-Notebook .jp-CodeCell',\n rank: 9\n });\n app.contextMenu.addItem({\n type: 'separator',\n selector: '.jp-Notebook .jp-CodeCell',\n rank: 10\n });\n app.contextMenu.addItem({\n command: CommandIDs.clearOutputs,\n selector: '.jp-Notebook .jp-CodeCell',\n rank: 11\n });\n\n // Notebook context menu groups\n app.contextMenu.addItem({\n command: CommandIDs.clearAllOutputs,\n selector: '.jp-Notebook',\n rank: 0\n });\n app.contextMenu.addItem({\n type: 'separator',\n selector: '.jp-Notebook',\n rank: 1\n });\n app.contextMenu.addItem({\n command: CommandIDs.enableOutputScrolling,\n selector: '.jp-Notebook',\n rank: 2\n });\n app.contextMenu.addItem({\n command: CommandIDs.disableOutputScrolling,\n selector: '.jp-Notebook',\n rank: 3\n });\n app.contextMenu.addItem({\n type: 'separator',\n selector: '.jp-Notebook',\n rank: 4\n });\n app.contextMenu.addItem({\n command: CommandIDs.undoCellAction,\n selector: '.jp-Notebook',\n rank: 5\n });\n app.contextMenu.addItem({\n command: CommandIDs.redoCellAction,\n selector: '.jp-Notebook',\n rank: 6\n });\n app.contextMenu.addItem({\n command: CommandIDs.restart,\n selector: '.jp-Notebook',\n rank: 7\n });\n app.contextMenu.addItem({\n type: 'separator',\n selector: '.jp-Notebook',\n rank: 8\n });\n app.contextMenu.addItem({\n command: CommandIDs.createConsole,\n selector: '.jp-Notebook',\n rank: 9\n });\n\n return tracker;\n}\n\n/**\n * Add the notebook commands to the application's command registry.\n */\nfunction addCommands(\n app: JupyterLab,\n services: ServiceManager,\n tracker: NotebookTracker\n): void {\n const { commands, shell } = app;\n\n // Get the current widget and activate unless the args specify otherwise.\n function getCurrent(args: ReadonlyJSONObject): NotebookPanel | null {\n const widget = tracker.currentWidget;\n const activate = args['activate'] !== false;\n\n if (activate && widget) {\n shell.activateById(widget.id);\n }\n\n return widget;\n }\n\n /**\n * Whether there is an active notebook.\n */\n function isEnabled(): boolean {\n return (\n tracker.currentWidget !== null &&\n tracker.currentWidget === app.shell.currentWidget\n );\n }\n\n /**\n * Whether there is an notebook active, with a single selected cell.\n */\n function isEnabledAndSingleSelected(): boolean {\n if (!isEnabled()) {\n return false;\n }\n const { content } = tracker.currentWidget;\n const index = content.activeCellIndex;\n // If there are selections that are not the active cell,\n // this command is confusing, so disable it.\n for (let i = 0; i < content.widgets.length; ++i) {\n if (content.isSelected(content.widgets[i]) && i !== index) {\n return false;\n }\n }\n return true;\n }\n\n commands.addCommand(CommandIDs.runAndAdvance, {\n label: 'Run Selected Cells',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n const { context, content } = current;\n\n return NotebookActions.runAndAdvance(content, context.session);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.run, {\n label: \"Run Selected Cells and Don't Advance\",\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n const { context, content } = current;\n\n return NotebookActions.run(content, context.session);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.runAndInsert, {\n label: 'Run Selected Cells and Insert Below',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n const { context, content } = current;\n\n return NotebookActions.runAndInsert(content, context.session);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.runInConsole, {\n label: 'Run Selected Text or Current Line in Console',\n execute: async args => {\n // Default to not activating the notebook (thereby putting the notebook\n // into command mode)\n const current = getCurrent({ activate: false, ...args });\n\n if (!current) {\n return;\n }\n\n const { context, content } = current;\n\n let cell = content.activeCell;\n let path = context.path;\n // ignore action in non-code cell\n if (!cell || cell.model.type !== 'code') {\n return;\n }\n\n let code: string;\n const editor = cell.editor;\n const selection = editor.getSelection();\n const { start, end } = selection;\n let selected = start.column !== end.column || start.line !== end.line;\n\n if (selected) {\n // Get the selected code from the editor.\n const start = editor.getOffsetAt(selection.start);\n const end = editor.getOffsetAt(selection.end);\n code = editor.model.value.text.substring(start, end);\n } else {\n // no selection, submit whole line and advance\n code = editor.getLine(selection.start.line);\n const cursor = editor.getCursorPosition();\n if (cursor.line + 1 !== editor.lineCount) {\n editor.setCursorPosition({\n line: cursor.line + 1,\n column: cursor.column\n });\n }\n }\n\n if (!code) {\n return;\n }\n\n await commands.execute('console:open', {\n activate: false,\n insertMode: 'split-bottom',\n path\n });\n await commands.execute('console:inject', {\n activate: false,\n code,\n path\n });\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.runAll, {\n label: 'Run All Cells',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n const { context, content } = current;\n\n return NotebookActions.runAll(content, context.session);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.runAllAbove, {\n label: 'Run All Above Selected Cell',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n const { context, content } = current;\n\n return NotebookActions.runAllAbove(content, context.session);\n }\n },\n isEnabled: () => {\n // Can't run above if there are multiple cells selected,\n // or if we are at the top of the notebook.\n return (\n isEnabledAndSingleSelected() &&\n tracker.currentWidget.content.activeCellIndex !== 0\n );\n }\n });\n commands.addCommand(CommandIDs.runAllBelow, {\n label: 'Run Selected Cell and All Below',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n const { context, content } = current;\n\n return NotebookActions.runAllBelow(content, context.session);\n }\n },\n isEnabled: () => {\n // Can't run below if there are multiple cells selected,\n // or if we are at the bottom of the notebook.\n return (\n isEnabledAndSingleSelected() &&\n tracker.currentWidget.content.activeCellIndex !==\n tracker.currentWidget.content.widgets.length - 1\n );\n }\n });\n commands.addCommand(CommandIDs.restart, {\n label: 'Restart Kernel…',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return current.session.restart();\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.closeAndShutdown, {\n label: 'Close and Shutdown',\n execute: args => {\n const current = getCurrent(args);\n\n if (!current) {\n return;\n }\n\n const fileName = current.title.label;\n\n return showDialog({\n title: 'Shutdown the notebook?',\n body: `Are you sure you want to close \"${fileName}\"?`,\n buttons: [Dialog.cancelButton(), Dialog.warnButton()]\n }).then(result => {\n if (result.button.accept) {\n return current.context.session.shutdown().then(() => {\n current.dispose();\n });\n }\n });\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.trust, {\n label: () => 'Trust Notebook',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n const { context, content } = current;\n\n return NotebookActions.trust(content).then(() => context.save());\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.exportToFormat, {\n label: args => {\n const formatLabel = args['label'] as string;\n\n return (args['isPalette'] ? 'Export Notebook to ' : '') + formatLabel;\n },\n execute: args => {\n const current = getCurrent(args);\n\n if (!current) {\n return;\n }\n\n const notebookPath = URLExt.encodeParts(current.context.path);\n const url =\n URLExt.join(\n services.serverSettings.baseUrl,\n 'nbconvert',\n args['format'] as string,\n notebookPath\n ) + '?download=true';\n const child = window.open('', '_blank');\n const { context } = current;\n\n if (context.model.dirty && !context.model.readOnly) {\n return context.save().then(() => {\n child.location.assign(url);\n });\n }\n\n return new Promise<void>(resolve => {\n child.location.assign(url);\n resolve(undefined);\n });\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.restartClear, {\n label: 'Restart Kernel and Clear All Outputs…',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n const { content, session } = current;\n\n return session.restart().then(() => {\n NotebookActions.clearAllOutputs(content);\n });\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.restartRunAll, {\n label: 'Restart Kernel and Run All Cells…',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n const { context, content, session } = current;\n\n return session.restart().then(restarted => {\n if (restarted) {\n NotebookActions.runAll(content, context.session);\n }\n return restarted;\n });\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.clearAllOutputs, {\n label: 'Clear All Outputs',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.clearAllOutputs(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.clearOutputs, {\n label: 'Clear Outputs',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.clearOutputs(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.interrupt, {\n label: 'Interrupt Kernel',\n execute: args => {\n const current = getCurrent(args);\n\n if (!current) {\n return;\n }\n\n const kernel = current.context.session.kernel;\n\n if (kernel) {\n return kernel.interrupt();\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.toCode, {\n label: 'Change to Code Cell Type',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.changeCellType(current.content, 'code');\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.toMarkdown, {\n label: 'Change to Markdown Cell Type',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.changeCellType(current.content, 'markdown');\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.toRaw, {\n label: 'Change to Raw Cell Type',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.changeCellType(current.content, 'raw');\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.cut, {\n label: 'Cut Cells',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.cut(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.copy, {\n label: 'Copy Cells',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.copy(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.pasteBelow, {\n label: 'Paste Cells Below',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.paste(current.content, 'below');\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.pasteAbove, {\n label: 'Paste Cells Above',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.paste(current.content, 'above');\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.pasteAndReplace, {\n label: 'Paste Cells and Replace',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.paste(current.content, 'replace');\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.deleteCell, {\n label: 'Delete Cells',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.deleteCells(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.split, {\n label: 'Split Cell',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.splitCell(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.merge, {\n label: 'Merge Selected Cells',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.mergeCells(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.insertAbove, {\n label: 'Insert Cell Above',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.insertAbove(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.insertBelow, {\n label: 'Insert Cell Below',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.insertBelow(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.selectAbove, {\n label: 'Select Cell Above',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.selectAbove(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.selectBelow, {\n label: 'Select Cell Below',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.selectBelow(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.extendAbove, {\n label: 'Extend Selection Above',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.extendSelectionAbove(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.extendBelow, {\n label: 'Extend Selection Below',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.extendSelectionBelow(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.selectAll, {\n label: 'Select All Cells',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.selectAll(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.deselectAll, {\n label: 'Deselect All Cells',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.deselectAll(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.moveUp, {\n label: 'Move Cells Up',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.moveUp(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.moveDown, {\n label: 'Move Cells Down',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.moveDown(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.toggleAllLines, {\n label: 'Toggle All Line Numbers',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.toggleAllLineNumbers(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.commandMode, {\n label: 'Enter Command Mode',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n current.content.mode = 'command';\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.editMode, {\n label: 'Enter Edit Mode',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n current.content.mode = 'edit';\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.undoCellAction, {\n label: 'Undo Cell Operation',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.undo(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.redoCellAction, {\n label: 'Redo Cell Operation',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.redo(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.changeKernel, {\n label: 'Change Kernel…',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return current.context.session.selectKernel();\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.reconnectToKernel, {\n label: 'Reconnect To Kernel',\n execute: args => {\n const current = getCurrent(args);\n\n if (!current) {\n return;\n }\n\n const kernel = current.context.session.kernel;\n\n if (kernel) {\n return kernel.reconnect();\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.createOutputView, {\n label: 'Create New View for Output',\n execute: args => {\n // Clone the OutputArea\n const current = getCurrent({ ...args, activate: false });\n const nb = current.content;\n const content = (nb.activeCell as CodeCell).cloneOutputArea();\n // Create a MainAreaWidget\n const widget = new MainAreaWidget({ content });\n widget.id = `LinkedOutputView-${UUID.uuid4()}`;\n widget.title.label = 'Output View';\n widget.title.icon = NOTEBOOK_ICON_CLASS;\n widget.title.caption = current.title.label\n ? `For Notebook: ${current.title.label}`\n : 'For Notebook:';\n widget.addClass('jp-LinkedOutputView');\n current.context.addSibling(widget, {\n ref: current.id,\n mode: 'split-bottom'\n });\n\n // Remove the output view if the parent notebook is closed.\n nb.disposed.connect(widget.dispose);\n },\n isEnabled: isEnabledAndSingleSelected\n });\n commands.addCommand(CommandIDs.createConsole, {\n label: 'New Console for Notebook',\n execute: args => {\n const current = getCurrent({ ...args, activate: false });\n const widget = tracker.currentWidget;\n\n if (!current || !widget) {\n return;\n }\n\n const options: ReadonlyJSONObject = {\n path: widget.context.path,\n preferredLanguage: widget.context.model.defaultKernelLanguage,\n activate: args['activate'],\n ref: current.id,\n insertMode: 'split-bottom'\n };\n\n return commands.execute('console:create', options);\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.markdown1, {\n label: 'Change to Heading 1',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.setMarkdownHeader(current.content, 1);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.markdown2, {\n label: 'Change to Heading 2',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.setMarkdownHeader(current.content, 2);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.markdown3, {\n label: 'Change to Heading 3',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.setMarkdownHeader(current.content, 3);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.markdown4, {\n label: 'Change to Heading 4',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.setMarkdownHeader(current.content, 4);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.markdown5, {\n label: 'Change to Heading 5',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.setMarkdownHeader(current.content, 5);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.markdown6, {\n label: 'Change to Heading 6',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.setMarkdownHeader(current.content, 6);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.hideCode, {\n label: 'Collapse Selected Code',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.hideCode(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.showCode, {\n label: 'Expand Selected Code',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.showCode(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.hideAllCode, {\n label: 'Collapse All Code',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.hideAllCode(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.showAllCode, {\n label: 'Expand All Code',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.showAllCode(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.hideOutput, {\n label: 'Collapse Selected Outputs',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.hideOutput(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.showOutput, {\n label: 'Expand Selected Outputs',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.showOutput(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.hideAllOutputs, {\n label: 'Collapse All Outputs',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.hideAllOutputs(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.showAllOutputs, {\n label: 'Expand All Outputs',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.showAllOutputs(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.enableOutputScrolling, {\n label: 'Enable Scrolling for Outputs',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.enableOutputScrolling(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.disableOutputScrolling, {\n label: 'Disable Scrolling for Outputs',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.disableOutputScrolling(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.saveWithView, {\n label: 'Save Notebook with View State',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n NotebookActions.persistViewState(current.content);\n app.commands.execute('docmanager:save');\n }\n },\n isEnabled\n });\n}\n\n/**\n * Populate the application's command palette with notebook commands.\n */\nfunction populatePalette(palette: ICommandPalette): void {\n let category = 'Notebook Operations';\n [\n CommandIDs.interrupt,\n CommandIDs.restart,\n CommandIDs.restartClear,\n CommandIDs.restartRunAll,\n CommandIDs.runAll,\n CommandIDs.runAllAbove,\n CommandIDs.runAllBelow,\n CommandIDs.selectAll,\n CommandIDs.deselectAll,\n CommandIDs.clearAllOutputs,\n CommandIDs.toggleAllLines,\n CommandIDs.editMode,\n CommandIDs.commandMode,\n CommandIDs.changeKernel,\n CommandIDs.reconnectToKernel,\n CommandIDs.createConsole,\n CommandIDs.closeAndShutdown,\n CommandIDs.trust,\n CommandIDs.saveWithView\n ].forEach(command => {\n palette.addItem({ command, category });\n });\n\n palette.addItem({\n command: CommandIDs.createNew,\n category,\n args: { isPalette: true }\n });\n\n EXPORT_TO_FORMATS.forEach(exportToFormat => {\n let args = {\n format: exportToFormat['format'],\n label: exportToFormat['label'],\n isPalette: true\n };\n palette.addItem({ command: CommandIDs.exportToFormat, category, args });\n });\n\n category = 'Notebook Cell Operations';\n [\n CommandIDs.run,\n CommandIDs.runAndAdvance,\n CommandIDs.runAndInsert,\n CommandIDs.runInConsole,\n CommandIDs.clearOutputs,\n CommandIDs.toCode,\n CommandIDs.toMarkdown,\n CommandIDs.toRaw,\n CommandIDs.cut,\n CommandIDs.copy,\n CommandIDs.pasteBelow,\n CommandIDs.pasteAbove,\n CommandIDs.pasteAndReplace,\n CommandIDs.deleteCell,\n CommandIDs.split,\n CommandIDs.merge,\n CommandIDs.insertAbove,\n CommandIDs.insertBelow,\n CommandIDs.selectAbove,\n CommandIDs.selectBelow,\n CommandIDs.extendAbove,\n CommandIDs.extendBelow,\n CommandIDs.moveDown,\n CommandIDs.moveUp,\n CommandIDs.undoCellAction,\n CommandIDs.redoCellAction,\n CommandIDs.markdown1,\n CommandIDs.markdown2,\n CommandIDs.markdown3,\n CommandIDs.markdown4,\n CommandIDs.markdown5,\n CommandIDs.markdown6,\n CommandIDs.hideCode,\n CommandIDs.showCode,\n CommandIDs.hideAllCode,\n CommandIDs.showAllCode,\n CommandIDs.hideOutput,\n CommandIDs.showOutput,\n CommandIDs.hideAllOutputs,\n CommandIDs.showAllOutputs,\n CommandIDs.enableOutputScrolling,\n CommandIDs.disableOutputScrolling\n ].forEach(command => {\n palette.addItem({ command, category });\n });\n}\n\n/**\n * Populates the application menus for the notebook.\n */\nfunction populateMenus(\n app: JupyterLab,\n mainMenu: IMainMenu,\n tracker: INotebookTracker\n): void {\n let { commands } = app;\n\n // Add undo/redo hooks to the edit menu.\n mainMenu.editMenu.undoers.add({\n tracker,\n undo: widget => {\n widget.content.activeCell.editor.undo();\n },\n redo: widget => {\n widget.content.activeCell.editor.redo();\n }\n } as IEditMenu.IUndoer<NotebookPanel>);\n\n // Add a clearer to the edit menu\n mainMenu.editMenu.clearers.add({\n tracker,\n noun: 'Outputs',\n pluralNoun: 'Outputs',\n clearCurrent: (current: NotebookPanel) => {\n return NotebookActions.clearOutputs(current.content);\n },\n clearAll: (current: NotebookPanel) => {\n return NotebookActions.clearAllOutputs(current.content);\n }\n } as IEditMenu.IClearer<NotebookPanel>);\n\n // Add new notebook creation to the file menu.\n mainMenu.fileMenu.newMenu.addGroup([{ command: CommandIDs.createNew }], 10);\n\n // Add a close and shutdown command to the file menu.\n mainMenu.fileMenu.closeAndCleaners.add({\n tracker,\n action: 'Shutdown',\n name: 'Notebook',\n closeAndCleanup: (current: NotebookPanel) => {\n const fileName = current.title.label;\n return showDialog({\n title: 'Shutdown the notebook?',\n body: `Are you sure you want to close \"${fileName}\"?`,\n buttons: [Dialog.cancelButton(), Dialog.warnButton()]\n }).then(result => {\n if (result.button.accept) {\n return current.context.session.shutdown().then(() => {\n current.dispose();\n });\n }\n });\n }\n } as IFileMenu.ICloseAndCleaner<NotebookPanel>);\n\n // Add a save with view command to the file menu.\n mainMenu.fileMenu.persistAndSavers.add({\n tracker,\n action: 'with View State',\n name: 'Notebook',\n persistAndSave: (current: NotebookPanel) => {\n NotebookActions.persistViewState(current.content);\n return app.commands.execute('docmanager:save');\n }\n } as IFileMenu.IPersistAndSave<NotebookPanel>);\n\n // Add a notebook group to the File menu.\n let exportTo = new Menu({ commands });\n exportTo.title.label = 'Export Notebook As…';\n EXPORT_TO_FORMATS.forEach(exportToFormat => {\n exportTo.addItem({\n command: CommandIDs.exportToFormat,\n args: exportToFormat\n });\n });\n const fileGroup = [\n { command: CommandIDs.trust },\n { type: 'submenu', submenu: exportTo } as Menu.IItemOptions\n ];\n mainMenu.fileMenu.addGroup(fileGroup, 10);\n\n // Add a kernel user to the Kernel menu\n mainMenu.kernelMenu.kernelUsers.add({\n tracker,\n interruptKernel: current => {\n let kernel = current.session.kernel;\n if (kernel) {\n return kernel.interrupt();\n }\n return Promise.resolve(void 0);\n },\n noun: 'All Outputs',\n restartKernel: current => current.session.restart(),\n restartKernelAndClear: current => {\n return current.session.restart().then(restarted => {\n if (restarted) {\n NotebookActions.clearAllOutputs(current.content);\n }\n return restarted;\n });\n },\n changeKernel: current => current.session.selectKernel(),\n shutdownKernel: current => current.session.shutdown()\n } as IKernelMenu.IKernelUser<NotebookPanel>);\n\n // Add a console creator the the Kernel menu\n mainMenu.fileMenu.consoleCreators.add({\n tracker,\n name: 'Notebook',\n createConsole: current => {\n const options: ReadonlyJSONObject = {\n path: current.context.path,\n preferredLanguage: current.context.model.defaultKernelLanguage,\n activate: true,\n ref: current.id,\n insertMode: 'split-bottom'\n };\n return commands.execute('console:create', options);\n }\n } as IFileMenu.IConsoleCreator<NotebookPanel>);\n\n // Add some commands to the application view menu.\n const collapseGroup = [\n CommandIDs.hideCode,\n CommandIDs.hideOutput,\n CommandIDs.hideAllCode,\n CommandIDs.hideAllOutputs\n ].map(command => {\n return { command };\n });\n mainMenu.viewMenu.addGroup(collapseGroup, 10);\n\n const expandGroup = [\n CommandIDs.showCode,\n CommandIDs.showOutput,\n CommandIDs.showAllCode,\n CommandIDs.showAllOutputs\n ].map(command => {\n return { command };\n });\n mainMenu.viewMenu.addGroup(expandGroup, 11);\n\n // Add an IEditorViewer to the application view menu\n mainMenu.viewMenu.editorViewers.add({\n tracker,\n toggleLineNumbers: widget => {\n NotebookActions.toggleAllLineNumbers(widget.content);\n },\n lineNumbersToggled: widget => {\n const config = widget.content.editorConfig;\n return !!(\n config.code.lineNumbers &&\n config.markdown.lineNumbers &&\n config.raw.lineNumbers\n );\n }\n } as IViewMenu.IEditorViewer<NotebookPanel>);\n\n // Add an ICodeRunner to the application run menu\n mainMenu.runMenu.codeRunners.add({\n tracker,\n noun: 'Cells',\n run: current => {\n const { context, content } = current;\n return NotebookActions.runAndAdvance(content, context.session).then(\n () => void 0\n );\n },\n runAll: current => {\n const { context, content } = current;\n return NotebookActions.runAll(content, context.session).then(\n () => void 0\n );\n },\n restartAndRunAll: current => {\n const { context, content } = current;\n return context.session.restart().then(restarted => {\n if (restarted) {\n NotebookActions.runAll(content, context.session);\n }\n return restarted;\n });\n }\n } as IRunMenu.ICodeRunner<NotebookPanel>);\n\n // Add a run+insert and run+don't advance group to the run menu.\n const runExtras = [\n CommandIDs.runAndInsert,\n CommandIDs.run,\n CommandIDs.runInConsole\n ].map(command => {\n return { command };\n });\n\n // Add a run all above/below group to the run menu.\n const runAboveBelowGroup = [\n CommandIDs.runAllAbove,\n CommandIDs.runAllBelow\n ].map(command => {\n return { command };\n });\n\n // Add commands to the application edit menu.\n const undoCellActionGroup = [\n CommandIDs.undoCellAction,\n CommandIDs.redoCellAction\n ].map(command => {\n return { command };\n });\n\n const copyGroup = [\n CommandIDs.cut,\n CommandIDs.copy,\n CommandIDs.pasteBelow,\n CommandIDs.pasteAbove,\n CommandIDs.pasteAndReplace\n ].map(command => {\n return { command };\n });\n\n const selectGroup = [CommandIDs.selectAll, CommandIDs.deselectAll].map(\n command => {\n return { command };\n }\n );\n\n const splitMergeGroup = [CommandIDs.split, CommandIDs.merge].map(command => {\n return { command };\n });\n\n const moveCellsGroup = [CommandIDs.moveUp, CommandIDs.moveDown].map(\n command => {\n return { command };\n }\n );\n\n mainMenu.editMenu.addGroup(undoCellActionGroup, 4);\n mainMenu.editMenu.addGroup(copyGroup, 5);\n mainMenu.editMenu.addGroup([{ command: CommandIDs.deleteCell }], 6);\n mainMenu.editMenu.addGroup(selectGroup, 7);\n mainMenu.editMenu.addGroup(moveCellsGroup, 8);\n mainMenu.editMenu.addGroup(splitMergeGroup, 9);\n mainMenu.runMenu.addGroup(runExtras, 10);\n mainMenu.runMenu.addGroup(runAboveBelowGroup, 11);\n\n // Add kernel information to the application help menu.\n mainMenu.helpMenu.kernelUsers.add({\n tracker,\n getKernel: current => current.session.kernel\n } as IHelpMenu.IKernelUser<NotebookPanel>);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../notebook-extension/src/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport {\n ILayoutRestorer,\n JupyterLab,\n JupyterLabPlugin\n} from '@jupyterlab/application';\n\nimport {\n Dialog,\n ICommandPalette,\n MainAreaWidget,\n showDialog\n} from '@jupyterlab/apputils';\n\nimport { CodeCell } from '@jupyterlab/cells';\n\nimport { CodeEditor, IEditorServices } from '@jupyterlab/codeeditor';\n\nimport {\n ISettingRegistry,\n IStateDB,\n PageConfig,\n URLExt\n} from '@jupyterlab/coreutils';\n\nimport { UUID } from '@phosphor/coreutils';\n\nimport { IFileBrowserFactory } from '@jupyterlab/filebrowser';\n\nimport { ILauncher } from '@jupyterlab/launcher';\n\nimport {\n IMainMenu,\n IEditMenu,\n IFileMenu,\n IHelpMenu,\n IKernelMenu,\n IRunMenu,\n IViewMenu\n} from '@jupyterlab/mainmenu';\n\nimport {\n CellTools,\n ICellTools,\n INotebookTracker,\n NotebookActions,\n NotebookModelFactory,\n NotebookPanel,\n NotebookTracker,\n NotebookWidgetFactory,\n StaticNotebook\n} from '@jupyterlab/notebook';\n\nimport { IRenderMimeRegistry } from '@jupyterlab/rendermime';\n\nimport { ServiceManager } from '@jupyterlab/services';\n\nimport { ReadonlyJSONObject } from '@phosphor/coreutils';\n\nimport { Message, MessageLoop } from '@phosphor/messaging';\n\nimport { Menu } from '@phosphor/widgets';\n\n/**\n * The command IDs used by the notebook plugin.\n */\nnamespace CommandIDs {\n export const createNew = 'notebook:create-new';\n\n export const interrupt = 'notebook:interrupt-kernel';\n\n export const restart = 'notebook:restart-kernel';\n\n export const restartClear = 'notebook:restart-clear-output';\n\n export const restartRunAll = 'notebook:restart-run-all';\n\n export const reconnectToKernel = 'notebook:reconnect-to-kernel';\n\n export const changeKernel = 'notebook:change-kernel';\n\n export const createConsole = 'notebook:create-console';\n\n export const createOutputView = 'notebook:create-output-view';\n\n export const clearAllOutputs = 'notebook:clear-all-cell-outputs';\n\n export const closeAndShutdown = 'notebook:close-and-shutdown';\n\n export const trust = 'notebook:trust';\n\n export const exportToFormat = 'notebook:export-to-format';\n\n export const run = 'notebook:run-cell';\n\n export const runAndAdvance = 'notebook:run-cell-and-select-next';\n\n export const runAndInsert = 'notebook:run-cell-and-insert-below';\n\n export const runInConsole = 'notebook:run-in-console';\n\n export const runAll = 'notebook:run-all-cells';\n\n export const runAllAbove = 'notebook:run-all-above';\n\n export const runAllBelow = 'notebook:run-all-below';\n\n export const toCode = 'notebook:change-cell-to-code';\n\n export const toMarkdown = 'notebook:change-cell-to-markdown';\n\n export const toRaw = 'notebook:change-cell-to-raw';\n\n export const cut = 'notebook:cut-cell';\n\n export const copy = 'notebook:copy-cell';\n\n export const pasteAbove = 'notebook:paste-cell-above';\n\n export const pasteBelow = 'notebook:paste-cell-below';\n\n export const pasteAndReplace = 'notebook:paste-and-replace-cell';\n\n export const moveUp = 'notebook:move-cell-up';\n\n export const moveDown = 'notebook:move-cell-down';\n\n export const clearOutputs = 'notebook:clear-cell-output';\n\n export const deleteCell = 'notebook:delete-cell';\n\n export const insertAbove = 'notebook:insert-cell-above';\n\n export const insertBelow = 'notebook:insert-cell-below';\n\n export const selectAbove = 'notebook:move-cursor-up';\n\n export const selectBelow = 'notebook:move-cursor-down';\n\n export const extendAbove = 'notebook:extend-marked-cells-above';\n\n export const extendBelow = 'notebook:extend-marked-cells-below';\n\n export const selectAll = 'notebook:select-all';\n\n export const deselectAll = 'notebook:deselect-all';\n\n export const editMode = 'notebook:enter-edit-mode';\n\n export const merge = 'notebook:merge-cells';\n\n export const split = 'notebook:split-cell-at-cursor';\n\n export const commandMode = 'notebook:enter-command-mode';\n\n export const toggleAllLines = 'notebook:toggle-all-cell-line-numbers';\n\n export const undoCellAction = 'notebook:undo-cell-action';\n\n export const redoCellAction = 'notebook:redo-cell-action';\n\n export const markdown1 = 'notebook:change-cell-to-heading-1';\n\n export const markdown2 = 'notebook:change-cell-to-heading-2';\n\n export const markdown3 = 'notebook:change-cell-to-heading-3';\n\n export const markdown4 = 'notebook:change-cell-to-heading-4';\n\n export const markdown5 = 'notebook:change-cell-to-heading-5';\n\n export const markdown6 = 'notebook:change-cell-to-heading-6';\n\n export const hideCode = 'notebook:hide-cell-code';\n\n export const showCode = 'notebook:show-cell-code';\n\n export const hideAllCode = 'notebook:hide-all-cell-code';\n\n export const showAllCode = 'notebook:show-all-cell-code';\n\n export const hideOutput = 'notebook:hide-cell-outputs';\n\n export const showOutput = 'notebook:show-cell-outputs';\n\n export const hideAllOutputs = 'notebook:hide-all-cell-outputs';\n\n export const showAllOutputs = 'notebook:show-all-cell-outputs';\n\n export const enableOutputScrolling = 'notebook:enable-output-scrolling';\n\n export const disableOutputScrolling = 'notebook:disable-output-scrolling';\n\n export const saveWithView = 'notebook:save-with-view';\n}\n\n/**\n * The class name for the notebook icon from the default theme.\n */\nconst NOTEBOOK_ICON_CLASS = 'jp-NotebookIcon';\n\n/**\n * The name of the factory that creates notebooks.\n */\nconst FACTORY = 'Notebook';\n\n/**\n * The rank of the cell tools tab in the sidebar\n */\nconst CELL_TOOLS_RANK = 400;\n\n/**\n * The allowed Export To ... formats and their human readable labels.\n */\nconst EXPORT_TO_FORMATS = [\n { format: 'html', label: 'HTML' },\n { format: 'latex', label: 'LaTeX' },\n { format: 'markdown', label: 'Markdown' },\n { format: 'pdf', label: 'PDF' },\n { format: 'rst', label: 'ReStructured Text' },\n { format: 'script', label: 'Executable Script' },\n { format: 'slides', label: 'Reveal.js Slides' }\n];\n\n/**\n * The notebook widget tracker provider.\n */\nconst trackerPlugin: JupyterLabPlugin<INotebookTracker> = {\n id: '@jupyterlab/notebook-extension:tracker',\n provides: INotebookTracker,\n requires: [\n IMainMenu,\n ICommandPalette,\n NotebookPanel.IContentFactory,\n IEditorServices,\n ILayoutRestorer,\n IRenderMimeRegistry,\n ISettingRegistry\n ],\n optional: [IFileBrowserFactory, ILauncher],\n activate: activateNotebookHandler,\n autoStart: true\n};\n\n/**\n * The notebook cell factory provider.\n */\nconst factory: JupyterLabPlugin<NotebookPanel.IContentFactory> = {\n id: '@jupyterlab/notebook-extension:factory',\n provides: NotebookPanel.IContentFactory,\n requires: [IEditorServices],\n autoStart: true,\n activate: (app: JupyterLab, editorServices: IEditorServices) => {\n let editorFactory = editorServices.factoryService.newInlineEditor;\n return new NotebookPanel.ContentFactory({ editorFactory });\n }\n};\n\n/**\n * The cell tools extension.\n */\nconst tools: JupyterLabPlugin<ICellTools> = {\n activate: activateCellTools,\n provides: ICellTools,\n id: '@jupyterlab/notebook-extension:tools',\n autoStart: true,\n requires: [INotebookTracker, IEditorServices, IStateDB]\n};\n\n/**\n * Export the plugins as default.\n */\nconst plugins: JupyterLabPlugin<any>[] = [factory, trackerPlugin, tools];\nexport default plugins;\n\n/**\n * Activate the cell tools extension.\n */\nfunction activateCellTools(\n app: JupyterLab,\n tracker: INotebookTracker,\n editorServices: IEditorServices,\n state: IStateDB\n): Promise<ICellTools> {\n const id = 'cell-tools';\n const celltools = new CellTools({ tracker });\n const activeCellTool = new CellTools.ActiveCellTool();\n const slideShow = CellTools.createSlideShowSelector();\n const nbConvert = CellTools.createNBConvertSelector();\n const editorFactory = editorServices.factoryService.newInlineEditor;\n const metadataEditor = new CellTools.MetadataEditorTool({ editorFactory });\n\n // Create message hook for triggers to save to the database.\n const hook = (sender: any, message: Message): boolean => {\n switch (message.type) {\n case 'activate-request':\n state.save(id, { open: true });\n break;\n case 'after-hide':\n case 'close-request':\n state.remove(id);\n break;\n default:\n break;\n }\n return true;\n };\n\n celltools.title.iconClass = 'jp-BuildIcon jp-SideBar-tabIcon';\n celltools.title.caption = 'Cell Inspector';\n celltools.id = id;\n celltools.addItem({ tool: activeCellTool, rank: 1 });\n celltools.addItem({ tool: slideShow, rank: 2 });\n celltools.addItem({ tool: nbConvert, rank: 3 });\n celltools.addItem({ tool: metadataEditor, rank: 4 });\n MessageLoop.installMessageHook(celltools, hook);\n\n // Wait until the application has finished restoring before rendering.\n Promise.all([state.fetch(id), app.restored]).then(([args]) => {\n const open = !!(args && ((args as ReadonlyJSONObject)['open'] as boolean));\n\n // After initial restoration, check if the cell tools should render.\n if (tracker.size) {\n app.shell.addToLeftArea(celltools, { rank: CELL_TOOLS_RANK });\n if (open) {\n app.shell.activateById(celltools.id);\n }\n }\n\n // For all subsequent widget changes, check if the cell tools should render.\n app.shell.currentChanged.connect((sender, args) => {\n // If there are any open notebooks, add cell tools to the side panel if\n // it is not already there.\n if (tracker.size) {\n if (!celltools.isAttached) {\n app.shell.addToLeftArea(celltools, { rank: CELL_TOOLS_RANK });\n }\n return;\n }\n // If there are no notebooks, close cell tools.\n celltools.close();\n });\n });\n\n return Promise.resolve(celltools);\n}\n\n/**\n * Activate the notebook handler extension.\n */\nfunction activateNotebookHandler(\n app: JupyterLab,\n mainMenu: IMainMenu,\n palette: ICommandPalette,\n contentFactory: NotebookPanel.IContentFactory,\n editorServices: IEditorServices,\n restorer: ILayoutRestorer,\n rendermime: IRenderMimeRegistry,\n settingRegistry: ISettingRegistry,\n browserFactory: IFileBrowserFactory | null,\n launcher: ILauncher | null\n): INotebookTracker {\n const services = app.serviceManager;\n // An object for tracking the current notebook settings.\n let editorConfig = StaticNotebook.defaultEditorConfig;\n const factory = new NotebookWidgetFactory({\n name: FACTORY,\n fileTypes: ['notebook'],\n modelName: 'notebook',\n defaultFor: ['notebook'],\n preferKernel: true,\n canStartKernel: true,\n rendermime: rendermime,\n contentFactory,\n editorConfig,\n mimeTypeService: editorServices.mimeTypeService\n });\n const { commands, restored } = app;\n const tracker = new NotebookTracker({ namespace: 'notebook' });\n\n // Handle state restoration.\n restorer.restore(tracker, {\n command: 'docmanager:open',\n args: panel => ({ path: panel.context.path, factory: FACTORY }),\n name: panel => panel.context.path,\n when: services.ready\n });\n\n let registry = app.docRegistry;\n registry.addModelFactory(new NotebookModelFactory({}));\n registry.addWidgetFactory(factory);\n\n addCommands(app, services, tracker);\n populatePalette(palette);\n\n let id = 0; // The ID counter for notebook panels.\n\n factory.widgetCreated.connect((sender, widget) => {\n // If the notebook panel does not have an ID, assign it one.\n widget.id = widget.id || `notebook-${++id}`;\n widget.title.icon = NOTEBOOK_ICON_CLASS;\n // Notify the instance tracker if restore data needs to update.\n widget.context.pathChanged.connect(() => {\n tracker.save(widget);\n });\n // Add the notebook panel to the tracker.\n tracker.add(widget);\n });\n\n /**\n * Update the setting values.\n */\n function updateConfig(settings: ISettingRegistry.ISettings): void {\n let cached = settings.get('codeCellConfig').composite as Partial<\n CodeEditor.IConfig\n >;\n let code = { ...StaticNotebook.defaultEditorConfig.code };\n Object.keys(code).forEach((key: keyof CodeEditor.IConfig) => {\n code[key] =\n cached[key] === null || cached[key] === undefined\n ? code[key]\n : cached[key];\n });\n cached = settings.get('markdownCellConfig').composite as Partial<\n CodeEditor.IConfig\n >;\n let markdown = { ...StaticNotebook.defaultEditorConfig.markdown };\n Object.keys(markdown).forEach((key: keyof CodeEditor.IConfig) => {\n markdown[key] =\n cached[key] === null || cached[key] === undefined\n ? markdown[key]\n : cached[key];\n });\n cached = settings.get('rawCellConfig').composite as Partial<\n CodeEditor.IConfig\n >;\n let raw = { ...StaticNotebook.defaultEditorConfig.raw };\n Object.keys(raw).forEach((key: keyof CodeEditor.IConfig) => {\n raw[key] =\n cached[key] === null || cached[key] === undefined\n ? raw[key]\n : cached[key];\n });\n factory.editorConfig = editorConfig = { code, markdown, raw };\n }\n\n /**\n * Update the settings of the current tracker instances.\n */\n function updateTracker(): void {\n tracker.forEach(widget => {\n widget.content.editorConfig = editorConfig;\n });\n }\n\n // Fetch the initial state of the settings.\n Promise.all([settingRegistry.load(trackerPlugin.id), restored])\n .then(([settings]) => {\n updateConfig(settings);\n updateTracker();\n settings.changed.connect(() => {\n updateConfig(settings);\n updateTracker();\n });\n })\n .catch((reason: Error) => {\n console.error(reason.message);\n updateTracker();\n });\n\n // Add main menu notebook menu.\n populateMenus(app, mainMenu, tracker);\n\n // Utility function to create a new notebook.\n const createNew = (cwd: string, kernelName?: string) => {\n return commands\n .execute('docmanager:new-untitled', { path: cwd, type: 'notebook' })\n .then(model => {\n return commands.execute('docmanager:open', {\n path: model.path,\n factory: FACTORY,\n kernel: { name: kernelName }\n });\n });\n };\n\n // Add a command for creating a new notebook.\n commands.addCommand(CommandIDs.createNew, {\n label: args => {\n const kernelName = (args['kernelName'] as string) || '';\n if (args['isLauncher'] && args['kernelName']) {\n return services.specs.kernelspecs[kernelName].display_name;\n }\n if (args['isPalette']) {\n return 'New Notebook';\n }\n return 'Notebook';\n },\n caption: 'Create a new notebook',\n iconClass: args => (args['isPalette'] ? '' : 'jp-NotebookIcon'),\n execute: args => {\n const cwd =\n (args['cwd'] as string) ||\n (browserFactory ? browserFactory.defaultBrowser.model.path : '');\n const kernelName = (args['kernelName'] as string) || '';\n return createNew(cwd, kernelName);\n }\n });\n\n // Add a launcher item if the launcher is available.\n if (launcher) {\n services.ready.then(() => {\n const specs = services.specs;\n const baseUrl = PageConfig.getBaseUrl();\n\n for (let name in specs.kernelspecs) {\n let rank = name === specs.default ? 0 : Infinity;\n let kernelIconUrl = specs.kernelspecs[name].resources['logo-64x64'];\n if (kernelIconUrl) {\n let index = kernelIconUrl.indexOf('kernelspecs');\n kernelIconUrl = baseUrl + kernelIconUrl.slice(index);\n }\n launcher.add({\n command: CommandIDs.createNew,\n args: { isLauncher: true, kernelName: name },\n category: 'Notebook',\n rank,\n kernelIconUrl\n });\n }\n });\n }\n\n // Cell context menu groups\n app.contextMenu.addItem({\n type: 'separator',\n selector: '.jp-Notebook .jp-Cell',\n rank: 0\n });\n app.contextMenu.addItem({\n command: CommandIDs.cut,\n selector: '.jp-Notebook .jp-Cell',\n rank: 1\n });\n app.contextMenu.addItem({\n command: CommandIDs.copy,\n selector: '.jp-Notebook .jp-Cell',\n rank: 2\n });\n app.contextMenu.addItem({\n command: CommandIDs.pasteBelow,\n selector: '.jp-Notebook .jp-Cell',\n rank: 3\n });\n app.contextMenu.addItem({\n type: 'separator',\n selector: '.jp-Notebook .jp-Cell',\n rank: 4\n });\n app.contextMenu.addItem({\n command: CommandIDs.deleteCell,\n selector: '.jp-Notebook .jp-Cell',\n rank: 5\n });\n app.contextMenu.addItem({\n type: 'separator',\n selector: '.jp-Notebook .jp-Cell',\n rank: 6\n });\n app.contextMenu.addItem({\n command: CommandIDs.split,\n selector: '.jp-Notebook .jp-Cell',\n rank: 7\n });\n app.contextMenu.addItem({\n type: 'separator',\n selector: '.jp-Notebook .jp-Cell',\n rank: 8\n });\n\n // CodeCell context menu groups\n app.contextMenu.addItem({\n command: CommandIDs.createOutputView,\n selector: '.jp-Notebook .jp-CodeCell',\n rank: 9\n });\n app.contextMenu.addItem({\n type: 'separator',\n selector: '.jp-Notebook .jp-CodeCell',\n rank: 10\n });\n app.contextMenu.addItem({\n command: CommandIDs.clearOutputs,\n selector: '.jp-Notebook .jp-CodeCell',\n rank: 11\n });\n\n // Notebook context menu groups\n app.contextMenu.addItem({\n command: CommandIDs.clearAllOutputs,\n selector: '.jp-Notebook',\n rank: 0\n });\n app.contextMenu.addItem({\n type: 'separator',\n selector: '.jp-Notebook',\n rank: 1\n });\n app.contextMenu.addItem({\n command: CommandIDs.enableOutputScrolling,\n selector: '.jp-Notebook',\n rank: 2\n });\n app.contextMenu.addItem({\n command: CommandIDs.disableOutputScrolling,\n selector: '.jp-Notebook',\n rank: 3\n });\n app.contextMenu.addItem({\n type: 'separator',\n selector: '.jp-Notebook',\n rank: 4\n });\n app.contextMenu.addItem({\n command: CommandIDs.undoCellAction,\n selector: '.jp-Notebook',\n rank: 5\n });\n app.contextMenu.addItem({\n command: CommandIDs.redoCellAction,\n selector: '.jp-Notebook',\n rank: 6\n });\n app.contextMenu.addItem({\n command: CommandIDs.restart,\n selector: '.jp-Notebook',\n rank: 7\n });\n app.contextMenu.addItem({\n type: 'separator',\n selector: '.jp-Notebook',\n rank: 8\n });\n app.contextMenu.addItem({\n command: CommandIDs.createConsole,\n selector: '.jp-Notebook',\n rank: 9\n });\n\n return tracker;\n}\n\n/**\n * Add the notebook commands to the application's command registry.\n */\nfunction addCommands(\n app: JupyterLab,\n services: ServiceManager,\n tracker: NotebookTracker\n): void {\n const { commands, shell } = app;\n\n // Get the current widget and activate unless the args specify otherwise.\n function getCurrent(args: ReadonlyJSONObject): NotebookPanel | null {\n const widget = tracker.currentWidget;\n const activate = args['activate'] !== false;\n\n if (activate && widget) {\n shell.activateById(widget.id);\n }\n\n return widget;\n }\n\n /**\n * Whether there is an active notebook.\n */\n function isEnabled(): boolean {\n return (\n tracker.currentWidget !== null &&\n tracker.currentWidget === app.shell.currentWidget\n );\n }\n\n /**\n * Whether there is an notebook active, with a single selected cell.\n */\n function isEnabledAndSingleSelected(): boolean {\n if (!isEnabled()) {\n return false;\n }\n const { content } = tracker.currentWidget;\n const index = content.activeCellIndex;\n // If there are selections that are not the active cell,\n // this command is confusing, so disable it.\n for (let i = 0; i < content.widgets.length; ++i) {\n if (content.isSelected(content.widgets[i]) && i !== index) {\n return false;\n }\n }\n return true;\n }\n\n commands.addCommand(CommandIDs.runAndAdvance, {\n label: 'Run Selected Cells',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n const { context, content } = current;\n\n return NotebookActions.runAndAdvance(content, context.session);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.run, {\n label: \"Run Selected Cells and Don't Advance\",\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n const { context, content } = current;\n\n return NotebookActions.run(content, context.session);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.runAndInsert, {\n label: 'Run Selected Cells and Insert Below',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n const { context, content } = current;\n\n return NotebookActions.runAndInsert(content, context.session);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.runInConsole, {\n label: 'Run Selected Text or Current Line in Console',\n execute: async args => {\n // Default to not activating the notebook (thereby putting the notebook\n // into command mode)\n const current = getCurrent({ activate: false, ...args });\n\n if (!current) {\n return;\n }\n\n const { context, content } = current;\n\n let cell = content.activeCell;\n let path = context.path;\n // ignore action in non-code cell\n if (!cell || cell.model.type !== 'code') {\n return;\n }\n\n let code: string;\n const editor = cell.editor;\n const selection = editor.getSelection();\n const { start, end } = selection;\n let selected = start.column !== end.column || start.line !== end.line;\n\n if (selected) {\n // Get the selected code from the editor.\n const start = editor.getOffsetAt(selection.start);\n const end = editor.getOffsetAt(selection.end);\n code = editor.model.value.text.substring(start, end);\n } else {\n // no selection, submit whole line and advance\n code = editor.getLine(selection.start.line);\n const cursor = editor.getCursorPosition();\n if (cursor.line + 1 !== editor.lineCount) {\n editor.setCursorPosition({\n line: cursor.line + 1,\n column: cursor.column\n });\n }\n }\n\n if (!code) {\n return;\n }\n\n await commands.execute('console:open', {\n activate: false,\n insertMode: 'split-bottom',\n path\n });\n await commands.execute('console:inject', {\n activate: false,\n code,\n path\n });\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.runAll, {\n label: 'Run All Cells',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n const { context, content } = current;\n\n return NotebookActions.runAll(content, context.session);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.runAllAbove, {\n label: 'Run All Above Selected Cell',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n const { context, content } = current;\n\n return NotebookActions.runAllAbove(content, context.session);\n }\n },\n isEnabled: () => {\n // Can't run above if there are multiple cells selected,\n // or if we are at the top of the notebook.\n return (\n isEnabledAndSingleSelected() &&\n tracker.currentWidget.content.activeCellIndex !== 0\n );\n }\n });\n commands.addCommand(CommandIDs.runAllBelow, {\n label: 'Run Selected Cell and All Below',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n const { context, content } = current;\n\n return NotebookActions.runAllBelow(content, context.session);\n }\n },\n isEnabled: () => {\n // Can't run below if there are multiple cells selected,\n // or if we are at the bottom of the notebook.\n return (\n isEnabledAndSingleSelected() &&\n tracker.currentWidget.content.activeCellIndex !==\n tracker.currentWidget.content.widgets.length - 1\n );\n }\n });\n commands.addCommand(CommandIDs.restart, {\n label: 'Restart Kernel…',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return current.session.restart();\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.closeAndShutdown, {\n label: 'Close and Shutdown',\n execute: args => {\n const current = getCurrent(args);\n\n if (!current) {\n return;\n }\n\n const fileName = current.title.label;\n\n return showDialog({\n title: 'Shutdown the notebook?',\n body: `Are you sure you want to close \"${fileName}\"?`,\n buttons: [Dialog.cancelButton(), Dialog.warnButton()]\n }).then(result => {\n if (result.button.accept) {\n return current.context.session.shutdown().then(() => {\n current.dispose();\n });\n }\n });\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.trust, {\n label: () => 'Trust Notebook',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n const { context, content } = current;\n\n return NotebookActions.trust(content).then(() => context.save());\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.exportToFormat, {\n label: args => {\n const formatLabel = args['label'] as string;\n\n return (args['isPalette'] ? 'Export Notebook to ' : '') + formatLabel;\n },\n execute: args => {\n const current = getCurrent(args);\n\n if (!current) {\n return;\n }\n\n const notebookPath = URLExt.encodeParts(current.context.path);\n const url =\n URLExt.join(\n services.serverSettings.baseUrl,\n 'nbconvert',\n args['format'] as string,\n notebookPath\n ) + '?download=true';\n const child = window.open('', '_blank');\n const { context } = current;\n\n if (context.model.dirty && !context.model.readOnly) {\n return context.save().then(() => {\n child.location.assign(url);\n });\n }\n\n return new Promise<void>(resolve => {\n child.location.assign(url);\n resolve(undefined);\n });\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.restartClear, {\n label: 'Restart Kernel and Clear All Outputs…',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n const { content, session } = current;\n\n return session.restart().then(() => {\n NotebookActions.clearAllOutputs(content);\n });\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.restartRunAll, {\n label: 'Restart Kernel and Run All Cells…',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n const { context, content, session } = current;\n\n return session.restart().then(restarted => {\n if (restarted) {\n NotebookActions.runAll(content, context.session);\n }\n return restarted;\n });\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.clearAllOutputs, {\n label: 'Clear All Outputs',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.clearAllOutputs(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.clearOutputs, {\n label: 'Clear Outputs',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.clearOutputs(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.interrupt, {\n label: 'Interrupt Kernel',\n execute: args => {\n const current = getCurrent(args);\n\n if (!current) {\n return;\n }\n\n const kernel = current.context.session.kernel;\n\n if (kernel) {\n return kernel.interrupt();\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.toCode, {\n label: 'Change to Code Cell Type',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.changeCellType(current.content, 'code');\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.toMarkdown, {\n label: 'Change to Markdown Cell Type',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.changeCellType(current.content, 'markdown');\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.toRaw, {\n label: 'Change to Raw Cell Type',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.changeCellType(current.content, 'raw');\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.cut, {\n label: 'Cut Cells',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.cut(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.copy, {\n label: 'Copy Cells',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.copy(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.pasteBelow, {\n label: 'Paste Cells Below',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.paste(current.content, 'below');\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.pasteAbove, {\n label: 'Paste Cells Above',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.paste(current.content, 'above');\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.pasteAndReplace, {\n label: 'Paste Cells and Replace',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.paste(current.content, 'replace');\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.deleteCell, {\n label: 'Delete Cells',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.deleteCells(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.split, {\n label: 'Split Cell',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.splitCell(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.merge, {\n label: 'Merge Selected Cells',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.mergeCells(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.insertAbove, {\n label: 'Insert Cell Above',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.insertAbove(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.insertBelow, {\n label: 'Insert Cell Below',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.insertBelow(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.selectAbove, {\n label: 'Select Cell Above',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.selectAbove(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.selectBelow, {\n label: 'Select Cell Below',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.selectBelow(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.extendAbove, {\n label: 'Extend Selection Above',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.extendSelectionAbove(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.extendBelow, {\n label: 'Extend Selection Below',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.extendSelectionBelow(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.selectAll, {\n label: 'Select All Cells',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.selectAll(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.deselectAll, {\n label: 'Deselect All Cells',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.deselectAll(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.moveUp, {\n label: 'Move Cells Up',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.moveUp(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.moveDown, {\n label: 'Move Cells Down',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.moveDown(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.toggleAllLines, {\n label: 'Toggle All Line Numbers',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.toggleAllLineNumbers(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.commandMode, {\n label: 'Enter Command Mode',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n current.content.mode = 'command';\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.editMode, {\n label: 'Enter Edit Mode',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n current.content.mode = 'edit';\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.undoCellAction, {\n label: 'Undo Cell Operation',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.undo(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.redoCellAction, {\n label: 'Redo Cell Operation',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.redo(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.changeKernel, {\n label: 'Change Kernel…',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return current.context.session.selectKernel();\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.reconnectToKernel, {\n label: 'Reconnect To Kernel',\n execute: args => {\n const current = getCurrent(args);\n\n if (!current) {\n return;\n }\n\n const kernel = current.context.session.kernel;\n\n if (kernel) {\n return kernel.reconnect();\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.createOutputView, {\n label: 'Create New View for Output',\n execute: args => {\n // Clone the OutputArea\n const current = getCurrent({ ...args, activate: false });\n const nb = current.content;\n const content = (nb.activeCell as CodeCell).cloneOutputArea();\n // Create a MainAreaWidget\n const widget = new MainAreaWidget({ content });\n widget.id = `LinkedOutputView-${UUID.uuid4()}`;\n widget.title.label = 'Output View';\n widget.title.icon = NOTEBOOK_ICON_CLASS;\n widget.title.caption = current.title.label\n ? `For Notebook: ${current.title.label}`\n : 'For Notebook:';\n widget.addClass('jp-LinkedOutputView');\n current.context.addSibling(widget, {\n ref: current.id,\n mode: 'split-bottom'\n });\n\n // Remove the output view if the parent notebook is closed.\n nb.disposed.connect(widget.dispose);\n },\n isEnabled: isEnabledAndSingleSelected\n });\n commands.addCommand(CommandIDs.createConsole, {\n label: 'New Console for Notebook',\n execute: args => {\n const current = getCurrent({ ...args, activate: false });\n const widget = tracker.currentWidget;\n\n if (!current || !widget) {\n return;\n }\n\n const options: ReadonlyJSONObject = {\n path: widget.context.path,\n preferredLanguage: widget.context.model.defaultKernelLanguage,\n activate: args['activate'],\n ref: current.id,\n insertMode: 'split-bottom'\n };\n\n return commands.execute('console:create', options);\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.markdown1, {\n label: 'Change to Heading 1',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.setMarkdownHeader(current.content, 1);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.markdown2, {\n label: 'Change to Heading 2',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.setMarkdownHeader(current.content, 2);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.markdown3, {\n label: 'Change to Heading 3',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.setMarkdownHeader(current.content, 3);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.markdown4, {\n label: 'Change to Heading 4',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.setMarkdownHeader(current.content, 4);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.markdown5, {\n label: 'Change to Heading 5',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.setMarkdownHeader(current.content, 5);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.markdown6, {\n label: 'Change to Heading 6',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.setMarkdownHeader(current.content, 6);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.hideCode, {\n label: 'Collapse Selected Code',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.hideCode(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.showCode, {\n label: 'Expand Selected Code',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.showCode(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.hideAllCode, {\n label: 'Collapse All Code',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.hideAllCode(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.showAllCode, {\n label: 'Expand All Code',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.showAllCode(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.hideOutput, {\n label: 'Collapse Selected Outputs',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.hideOutput(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.showOutput, {\n label: 'Expand Selected Outputs',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.showOutput(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.hideAllOutputs, {\n label: 'Collapse All Outputs',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.hideAllOutputs(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.showAllOutputs, {\n label: 'Expand All Outputs',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.showAllOutputs(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.enableOutputScrolling, {\n label: 'Enable Scrolling for Outputs',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.enableOutputScrolling(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.disableOutputScrolling, {\n label: 'Disable Scrolling for Outputs',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n return NotebookActions.disableOutputScrolling(current.content);\n }\n },\n isEnabled\n });\n commands.addCommand(CommandIDs.saveWithView, {\n label: 'Save Notebook with View State',\n execute: args => {\n const current = getCurrent(args);\n\n if (current) {\n NotebookActions.persistViewState(current.content);\n app.commands.execute('docmanager:save');\n }\n },\n isEnabled\n });\n}\n\n/**\n * Populate the application's command palette with notebook commands.\n */\nfunction populatePalette(palette: ICommandPalette): void {\n let category = 'Notebook Operations';\n [\n CommandIDs.interrupt,\n CommandIDs.restart,\n CommandIDs.restartClear,\n CommandIDs.restartRunAll,\n CommandIDs.runAll,\n CommandIDs.runAllAbove,\n CommandIDs.runAllBelow,\n CommandIDs.selectAll,\n CommandIDs.deselectAll,\n CommandIDs.clearAllOutputs,\n CommandIDs.toggleAllLines,\n CommandIDs.editMode,\n CommandIDs.commandMode,\n CommandIDs.changeKernel,\n CommandIDs.reconnectToKernel,\n CommandIDs.createConsole,\n CommandIDs.closeAndShutdown,\n CommandIDs.trust,\n CommandIDs.saveWithView\n ].forEach(command => {\n palette.addItem({ command, category });\n });\n\n palette.addItem({\n command: CommandIDs.createNew,\n category,\n args: { isPalette: true }\n });\n\n EXPORT_TO_FORMATS.forEach(exportToFormat => {\n let args = {\n format: exportToFormat['format'],\n label: exportToFormat['label'],\n isPalette: true\n };\n palette.addItem({ command: CommandIDs.exportToFormat, category, args });\n });\n\n category = 'Notebook Cell Operations';\n [\n CommandIDs.run,\n CommandIDs.runAndAdvance,\n CommandIDs.runAndInsert,\n CommandIDs.runInConsole,\n CommandIDs.clearOutputs,\n CommandIDs.toCode,\n CommandIDs.toMarkdown,\n CommandIDs.toRaw,\n CommandIDs.cut,\n CommandIDs.copy,\n CommandIDs.pasteBelow,\n CommandIDs.pasteAbove,\n CommandIDs.pasteAndReplace,\n CommandIDs.deleteCell,\n CommandIDs.split,\n CommandIDs.merge,\n CommandIDs.insertAbove,\n CommandIDs.insertBelow,\n CommandIDs.selectAbove,\n CommandIDs.selectBelow,\n CommandIDs.extendAbove,\n CommandIDs.extendBelow,\n CommandIDs.moveDown,\n CommandIDs.moveUp,\n CommandIDs.undoCellAction,\n CommandIDs.redoCellAction,\n CommandIDs.markdown1,\n CommandIDs.markdown2,\n CommandIDs.markdown3,\n CommandIDs.markdown4,\n CommandIDs.markdown5,\n CommandIDs.markdown6,\n CommandIDs.hideCode,\n CommandIDs.showCode,\n CommandIDs.hideAllCode,\n CommandIDs.showAllCode,\n CommandIDs.hideOutput,\n CommandIDs.showOutput,\n CommandIDs.hideAllOutputs,\n CommandIDs.showAllOutputs,\n CommandIDs.enableOutputScrolling,\n CommandIDs.disableOutputScrolling\n ].forEach(command => {\n palette.addItem({ command, category });\n });\n}\n\n/**\n * Populates the application menus for the notebook.\n */\nfunction populateMenus(\n app: JupyterLab,\n mainMenu: IMainMenu,\n tracker: INotebookTracker\n): void {\n let { commands } = app;\n\n // Add undo/redo hooks to the edit menu.\n mainMenu.editMenu.undoers.add({\n tracker,\n undo: widget => {\n widget.content.activeCell.editor.undo();\n },\n redo: widget => {\n widget.content.activeCell.editor.redo();\n }\n } as IEditMenu.IUndoer<NotebookPanel>);\n\n // Add a clearer to the edit menu\n mainMenu.editMenu.clearers.add({\n tracker,\n noun: 'Outputs',\n pluralNoun: 'Outputs',\n clearCurrent: (current: NotebookPanel) => {\n return NotebookActions.clearOutputs(current.content);\n },\n clearAll: (current: NotebookPanel) => {\n return NotebookActions.clearAllOutputs(current.content);\n }\n } as IEditMenu.IClearer<NotebookPanel>);\n\n // Add new notebook creation to the file menu.\n mainMenu.fileMenu.newMenu.addGroup([{ command: CommandIDs.createNew }], 10);\n\n // Add a close and shutdown command to the file menu.\n mainMenu.fileMenu.closeAndCleaners.add({\n tracker,\n action: 'Shutdown',\n name: 'Notebook',\n closeAndCleanup: (current: NotebookPanel) => {\n const fileName = current.title.label;\n return showDialog({\n title: 'Shutdown the notebook?',\n body: `Are you sure you want to close \"${fileName}\"?`,\n buttons: [Dialog.cancelButton(), Dialog.warnButton()]\n }).then(result => {\n if (result.button.accept) {\n return current.context.session.shutdown().then(() => {\n current.dispose();\n });\n }\n });\n }\n } as IFileMenu.ICloseAndCleaner<NotebookPanel>);\n\n // Add a save with view command to the file menu.\n mainMenu.fileMenu.persistAndSavers.add({\n tracker,\n action: 'with View State',\n name: 'Notebook',\n persistAndSave: (current: NotebookPanel) => {\n NotebookActions.persistViewState(current.content);\n return app.commands.execute('docmanager:save');\n }\n } as IFileMenu.IPersistAndSave<NotebookPanel>);\n\n // Add a notebook group to the File menu.\n let exportTo = new Menu({ commands });\n exportTo.title.label = 'Export Notebook As…';\n EXPORT_TO_FORMATS.forEach(exportToFormat => {\n exportTo.addItem({\n command: CommandIDs.exportToFormat,\n args: exportToFormat\n });\n });\n const fileGroup = [\n { command: CommandIDs.trust },\n { type: 'submenu', submenu: exportTo } as Menu.IItemOptions\n ];\n mainMenu.fileMenu.addGroup(fileGroup, 10);\n\n // Add a kernel user to the Kernel menu\n mainMenu.kernelMenu.kernelUsers.add({\n tracker,\n interruptKernel: current => {\n let kernel = current.session.kernel;\n if (kernel) {\n return kernel.interrupt();\n }\n return Promise.resolve(void 0);\n },\n noun: 'All Outputs',\n restartKernel: current => current.session.restart(),\n restartKernelAndClear: current => {\n return current.session.restart().then(restarted => {\n if (restarted) {\n NotebookActions.clearAllOutputs(current.content);\n }\n return restarted;\n });\n },\n changeKernel: current => current.session.selectKernel(),\n shutdownKernel: current => current.session.shutdown()\n } as IKernelMenu.IKernelUser<NotebookPanel>);\n\n // Add a console creator the the Kernel menu\n mainMenu.fileMenu.consoleCreators.add({\n tracker,\n name: 'Notebook',\n createConsole: current => {\n const options: ReadonlyJSONObject = {\n path: current.context.path,\n preferredLanguage: current.context.model.defaultKernelLanguage,\n activate: true,\n ref: current.id,\n insertMode: 'split-bottom'\n };\n return commands.execute('console:create', options);\n }\n } as IFileMenu.IConsoleCreator<NotebookPanel>);\n\n // Add some commands to the application view menu.\n const collapseGroup = [\n CommandIDs.hideCode,\n CommandIDs.hideOutput,\n CommandIDs.hideAllCode,\n CommandIDs.hideAllOutputs\n ].map(command => {\n return { command };\n });\n mainMenu.viewMenu.addGroup(collapseGroup, 10);\n\n const expandGroup = [\n CommandIDs.showCode,\n CommandIDs.showOutput,\n CommandIDs.showAllCode,\n CommandIDs.showAllOutputs\n ].map(command => {\n return { command };\n });\n mainMenu.viewMenu.addGroup(expandGroup, 11);\n\n // Add an IEditorViewer to the application view menu\n mainMenu.viewMenu.editorViewers.add({\n tracker,\n toggleLineNumbers: widget => {\n NotebookActions.toggleAllLineNumbers(widget.content);\n },\n lineNumbersToggled: widget => {\n const config = widget.content.editorConfig;\n return !!(\n config.code.lineNumbers &&\n config.markdown.lineNumbers &&\n config.raw.lineNumbers\n );\n }\n } as IViewMenu.IEditorViewer<NotebookPanel>);\n\n // Add an ICodeRunner to the application run menu\n mainMenu.runMenu.codeRunners.add({\n tracker,\n noun: 'Cells',\n run: current => {\n const { context, content } = current;\n return NotebookActions.runAndAdvance(content, context.session).then(\n () => void 0\n );\n },\n runAll: current => {\n const { context, content } = current;\n return NotebookActions.runAll(content, context.session).then(\n () => void 0\n );\n },\n restartAndRunAll: current => {\n const { context, content } = current;\n return context.session.restart().then(restarted => {\n if (restarted) {\n NotebookActions.runAll(content, context.session);\n }\n return restarted;\n });\n }\n } as IRunMenu.ICodeRunner<NotebookPanel>);\n\n // Add a run+insert and run+don't advance group to the run menu.\n const runExtras = [\n CommandIDs.runAndInsert,\n CommandIDs.run,\n CommandIDs.runInConsole\n ].map(command => {\n return { command };\n });\n\n // Add a run all above/below group to the run menu.\n const runAboveBelowGroup = [\n CommandIDs.runAllAbove,\n CommandIDs.runAllBelow\n ].map(command => {\n return { command };\n });\n\n // Add commands to the application edit menu.\n const undoCellActionGroup = [\n CommandIDs.undoCellAction,\n CommandIDs.redoCellAction\n ].map(command => {\n return { command };\n });\n\n const copyGroup = [\n CommandIDs.cut,\n CommandIDs.copy,\n CommandIDs.pasteBelow,\n CommandIDs.pasteAbove,\n CommandIDs.pasteAndReplace\n ].map(command => {\n return { command };\n });\n\n const selectGroup = [CommandIDs.selectAll, CommandIDs.deselectAll].map(\n command => {\n return { command };\n }\n );\n\n const splitMergeGroup = [CommandIDs.split, CommandIDs.merge].map(command => {\n return { command };\n });\n\n const moveCellsGroup = [CommandIDs.moveUp, CommandIDs.moveDown].map(\n command => {\n return { command };\n }\n );\n\n mainMenu.editMenu.addGroup(undoCellActionGroup, 4);\n mainMenu.editMenu.addGroup(copyGroup, 5);\n mainMenu.editMenu.addGroup([{ command: CommandIDs.deleteCell }], 6);\n mainMenu.editMenu.addGroup(selectGroup, 7);\n mainMenu.editMenu.addGroup(moveCellsGroup, 8);\n mainMenu.editMenu.addGroup(splitMergeGroup, 9);\n mainMenu.runMenu.addGroup(runExtras, 10);\n mainMenu.runMenu.addGroup(runAboveBelowGroup, 11);\n\n // Add kernel information to the application help menu.\n mainMenu.helpMenu.kernelUsers.add({\n tracker,\n getKernel: current => current.session.kernel\n } as IHelpMenu.IKernelUser<NotebookPanel>);\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jupyterlab/notebook-extension",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.4",
|
|
4
4
|
"description": "JupyterLab - Notebook Extension",
|
|
5
5
|
"homepage": "https://github.com/jupyterlab/jupyterlab",
|
|
6
6
|
"bugs": {
|
|
@@ -30,17 +30,17 @@
|
|
|
30
30
|
"watch": "tsc -w --listEmittedFiles"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@jupyterlab/application": "^0.18.
|
|
34
|
-
"@jupyterlab/apputils": "^0.18.
|
|
35
|
-
"@jupyterlab/cells": "^0.18.
|
|
36
|
-
"@jupyterlab/codeeditor": "^0.18.
|
|
37
|
-
"@jupyterlab/coreutils": "^2.1.
|
|
38
|
-
"@jupyterlab/filebrowser": "^0.18.
|
|
39
|
-
"@jupyterlab/launcher": "^0.18.
|
|
40
|
-
"@jupyterlab/mainmenu": "^0.7.
|
|
41
|
-
"@jupyterlab/notebook": "^0.18.
|
|
42
|
-
"@jupyterlab/rendermime": "^0.18.
|
|
43
|
-
"@jupyterlab/services": "^3.1.
|
|
33
|
+
"@jupyterlab/application": "^0.18.4",
|
|
34
|
+
"@jupyterlab/apputils": "^0.18.4",
|
|
35
|
+
"@jupyterlab/cells": "^0.18.4",
|
|
36
|
+
"@jupyterlab/codeeditor": "^0.18.4",
|
|
37
|
+
"@jupyterlab/coreutils": "^2.1.4",
|
|
38
|
+
"@jupyterlab/filebrowser": "^0.18.4",
|
|
39
|
+
"@jupyterlab/launcher": "^0.18.4",
|
|
40
|
+
"@jupyterlab/mainmenu": "^0.7.4",
|
|
41
|
+
"@jupyterlab/notebook": "^0.18.4",
|
|
42
|
+
"@jupyterlab/rendermime": "^0.18.4",
|
|
43
|
+
"@jupyterlab/services": "^3.1.4",
|
|
44
44
|
"@phosphor/coreutils": "^1.3.0",
|
|
45
45
|
"@phosphor/messaging": "^1.2.2",
|
|
46
46
|
"@phosphor/widgets": "^1.6.0"
|