@jupyterlab/mainmenu-extension 4.0.0-alpha.2 → 4.0.0-alpha.20

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 CHANGED
@@ -12,7 +12,7 @@ import { ServerConnection } from '@jupyterlab/services';
12
12
  import { ISettingRegistry, SettingRegistry } from '@jupyterlab/settingregistry';
13
13
  import { ITranslator } from '@jupyterlab/translation';
14
14
  import { fastForwardIcon, refreshIcon, runIcon, stopIcon } from '@jupyterlab/ui-components';
15
- import { each, find } from '@lumino/algorithm';
15
+ import { find } from '@lumino/algorithm';
16
16
  import { JSONExt } from '@lumino/coreutils';
17
17
  import { Widget } from '@lumino/widgets';
18
18
  const PLUGIN_ID = '@jupyterlab/mainmenu-extension:plugin';
@@ -76,8 +76,10 @@ const plugin = {
76
76
  // Built menu from settings
77
77
  if (registry) {
78
78
  await Private.loadSettingsMenu(registry, (aMenu) => {
79
- menu.addMenu(aMenu, { rank: aMenu.rank });
79
+ menu.addMenu(aMenu, false, { rank: aMenu.rank });
80
80
  }, options => MainMenu.generateMenu(commands, options, trans), translator);
81
+ // Trigger single update
82
+ menu.update();
81
83
  }
82
84
  // Only add quit button if the back-end supports it by checking page config.
83
85
  const quitButton = PageConfig.getOption('quitButton').toLowerCase();
@@ -192,11 +194,14 @@ export function createFileMenu(app, menu, router, trans) {
192
194
  // This one is a bit different, in that we consider it enabled
193
195
  // even if it cannot find a delegate for the activity.
194
196
  // In that case, we instead call the application `close` command.
195
- commands.addCommand(CommandIDs.closeAndCleanup, Object.assign(Object.assign({}, createSemanticCommand(app, menu.closeAndCleaners, {
196
- execute: 'application:close',
197
- label: trans.__('Close and Shut Down'),
198
- isEnabled: true
199
- }, trans)), { isEnabled: () => !!app.shell.currentWidget && !!app.shell.currentWidget.title.closable }));
197
+ commands.addCommand(CommandIDs.closeAndCleanup, {
198
+ ...createSemanticCommand(app, menu.closeAndCleaners, {
199
+ execute: 'application:close',
200
+ label: trans.__('Close and Shut Down'),
201
+ isEnabled: true
202
+ }, trans),
203
+ isEnabled: () => !!app.shell.currentWidget && !!app.shell.currentWidget.title.closable
204
+ });
200
205
  // Add a delegator command for creating a console for an activity.
201
206
  commands.addCommand(CommandIDs.createConsole, createSemanticCommand(app, menu.consoleCreators, {
202
207
  label: trans.__('New Console for Activity')
@@ -274,17 +279,23 @@ export function createFileMenu(app, menu, router, trans) {
274
279
  */
275
280
  export function createKernelMenu(app, menu, trans) {
276
281
  const commands = app.commands;
277
- commands.addCommand(CommandIDs.interruptKernel, Object.assign(Object.assign({}, createSemanticCommand(app, menu.kernelUsers.interruptKernel, {
278
- label: trans.__('Interrupt Kernel'),
279
- caption: trans.__('Interrupt the kernel')
280
- }, trans)), { icon: args => (args.toolbar ? stopIcon : undefined) }));
282
+ commands.addCommand(CommandIDs.interruptKernel, {
283
+ ...createSemanticCommand(app, menu.kernelUsers.interruptKernel, {
284
+ label: trans.__('Interrupt Kernel'),
285
+ caption: trans.__('Interrupt the kernel')
286
+ }, trans),
287
+ icon: args => (args.toolbar ? stopIcon : undefined)
288
+ });
281
289
  commands.addCommand(CommandIDs.reconnectToKernel, createSemanticCommand(app, menu.kernelUsers.reconnectToKernel, {
282
290
  label: trans.__('Reconnect to Kernel')
283
291
  }, trans));
284
- commands.addCommand(CommandIDs.restartKernel, Object.assign(Object.assign({}, createSemanticCommand(app, menu.kernelUsers.restartKernel, {
285
- label: trans.__('Restart Kernel…'),
286
- caption: trans.__('Restart the kernel')
287
- }, trans)), { icon: args => (args.toolbar ? refreshIcon : undefined) }));
292
+ commands.addCommand(CommandIDs.restartKernel, {
293
+ ...createSemanticCommand(app, menu.kernelUsers.restartKernel, {
294
+ label: trans.__('Restart Kernel…'),
295
+ caption: trans.__('Restart the kernel')
296
+ }, trans),
297
+ icon: args => (args.toolbar ? refreshIcon : undefined)
298
+ });
288
299
  commands.addCommand(CommandIDs.restartKernelAndClear, createSemanticCommand(app, [menu.kernelUsers.restartKernel, menu.kernelUsers.clearWidget], {
289
300
  label: trans.__('Restart Kernel and Clear…')
290
301
  }, trans));
@@ -298,7 +309,7 @@ export function createKernelMenu(app, menu, trans) {
298
309
  commands.addCommand(CommandIDs.shutdownAllKernels, {
299
310
  label: trans.__('Shut Down All Kernels…'),
300
311
  isEnabled: () => {
301
- return app.serviceManager.sessions.running().next() !== undefined;
312
+ return !app.serviceManager.sessions.running().next().done;
302
313
  },
303
314
  execute: () => {
304
315
  return showDialog({
@@ -327,7 +338,7 @@ export function createViewMenu(app, menu, trans) {
327
338
  commands.addCommand(CommandIDs.matchBrackets, createSemanticCommand(app, menu.editorViewers.toggleMatchBrackets, {
328
339
  label: trans.__('Match Brackets')
329
340
  }, trans));
330
- commands.addCommand(CommandIDs.wordWrap, createSemanticCommand(app, menu.editorViewers.toggleMatchBrackets, {
341
+ commands.addCommand(CommandIDs.wordWrap, createSemanticCommand(app, menu.editorViewers.toggleWordWrap, {
331
342
  label: trans.__('Wrap Words')
332
343
  }, trans));
333
344
  }
@@ -336,18 +347,24 @@ export function createViewMenu(app, menu, trans) {
336
347
  */
337
348
  export function createRunMenu(app, menu, trans) {
338
349
  const commands = app.commands;
339
- commands.addCommand(CommandIDs.run, Object.assign(Object.assign({}, createSemanticCommand(app, menu.codeRunners.run, {
340
- label: trans.__('Run Selected'),
341
- caption: trans.__('Run Selected')
342
- }, trans)), { icon: args => (args.toolbar ? runIcon : undefined) }));
350
+ commands.addCommand(CommandIDs.run, {
351
+ ...createSemanticCommand(app, menu.codeRunners.run, {
352
+ label: trans.__('Run Selected'),
353
+ caption: trans.__('Run Selected')
354
+ }, trans),
355
+ icon: args => (args.toolbar ? runIcon : undefined)
356
+ });
343
357
  commands.addCommand(CommandIDs.runAll, createSemanticCommand(app, menu.codeRunners.runAll, {
344
358
  label: trans.__('Run All'),
345
359
  caption: trans.__('Run All')
346
360
  }, trans));
347
- commands.addCommand(CommandIDs.restartAndRunAll, Object.assign(Object.assign({}, createSemanticCommand(app, [menu.codeRunners.restart, menu.codeRunners.runAll], {
348
- label: trans.__('Restart Kernel and Run All'),
349
- caption: trans.__('Restart Kernel and Run All')
350
- }, trans)), { icon: args => (args.toolbar ? fastForwardIcon : undefined) }));
361
+ commands.addCommand(CommandIDs.restartAndRunAll, {
362
+ ...createSemanticCommand(app, [menu.codeRunners.restart, menu.codeRunners.runAll], {
363
+ label: trans.__('Restart Kernel and Run All'),
364
+ caption: trans.__('Restart Kernel and Run All')
365
+ }, trans),
366
+ icon: args => (args.toolbar ? fastForwardIcon : undefined)
367
+ });
351
368
  }
352
369
  /**
353
370
  * Create the basic `Tabs` menu.
@@ -361,6 +378,9 @@ export function createTabsMenu(app, menu, labShell, trans) {
361
378
  // Command to activate a widget by id.
362
379
  commands.addCommand(CommandIDs.activateById, {
363
380
  label: args => {
381
+ if (args.id === undefined) {
382
+ return trans.__('Activate a widget by its `id`.');
383
+ }
364
384
  const id = args['id'] || '';
365
385
  const widget = find(app.shell.widgets('main'), w => w.id === id);
366
386
  return (widget && widget.title.label) || '';
@@ -391,7 +411,7 @@ export function createTabsMenu(app, menu, labShell, trans) {
391
411
  }
392
412
  tabGroup.length = 0;
393
413
  let isPreviouslyUsedTabAttached = false;
394
- each(app.shell.widgets('main'), widget => {
414
+ for (const widget of app.shell.widgets('main')) {
395
415
  if (widget.id === previousId) {
396
416
  isPreviouslyUsedTabAttached = true;
397
417
  }
@@ -399,7 +419,7 @@ export function createTabsMenu(app, menu, labShell, trans) {
399
419
  command: CommandIDs.activateById,
400
420
  args: { id: widget.id }
401
421
  });
402
- });
422
+ }
403
423
  disposable = menu.addGroup(tabGroup, 1);
404
424
  previousId = isPreviouslyUsedTabAttached ? previousId : '';
405
425
  };
@@ -449,7 +469,7 @@ var Private;
449
469
  async function loadSettingsMenu(registry, addMenu, menuFactory, translator) {
450
470
  var _a;
451
471
  const trans = translator.load('jupyterlab');
452
- let canonical;
472
+ let canonical = null;
453
473
  let loaded = {};
454
474
  /**
455
475
  * Populate the plugin's schema defaults.
@@ -483,8 +503,14 @@ var Private;
483
503
  populate(canonical);
484
504
  }
485
505
  const defaults = (_c = (_b = (_a = canonical.properties) === null || _a === void 0 ? void 0 : _a.menus) === null || _b === void 0 ? void 0 : _b.default) !== null && _c !== void 0 ? _c : [];
486
- const user = Object.assign(Object.assign({}, plugin.data.user), { menus: (_d = plugin.data.user.menus) !== null && _d !== void 0 ? _d : [] });
487
- const composite = Object.assign(Object.assign({}, plugin.data.composite), { menus: SettingRegistry.reconcileMenus(defaults, user.menus) });
506
+ const user = {
507
+ ...plugin.data.user,
508
+ menus: (_d = plugin.data.user.menus) !== null && _d !== void 0 ? _d : []
509
+ };
510
+ const composite = {
511
+ ...plugin.data.composite,
512
+ menus: SettingRegistry.reconcileMenus(defaults, user.menus)
513
+ };
488
514
  plugin.data = { composite, user };
489
515
  return plugin;
490
516
  },
@@ -505,7 +531,6 @@ var Private;
505
531
  });
506
532
  // Repopulate the canonical variable after the setting registry has
507
533
  // preloaded all initial plugins.
508
- canonical = null;
509
534
  const settings = await registry.load(PLUGIN_ID);
510
535
  const currentMenus = (_a = JSONExt.deepCopy(settings.composite.menus)) !== null && _a !== void 0 ? _a : [];
511
536
  const menus = new Array();
@@ -514,7 +539,10 @@ var Private;
514
539
  .filter(menu => !menu.disabled)
515
540
  .map(menu => {
516
541
  var _a;
517
- return Object.assign(Object.assign({}, menu), { items: SettingRegistry.filterDisabledItems((_a = menu.items) !== null && _a !== void 0 ? _a : []) });
542
+ return {
543
+ ...menu,
544
+ items: SettingRegistry.filterDisabledItems((_a = menu.items) !== null && _a !== void 0 ? _a : [])
545
+ };
518
546
  }), menuFactory).forEach(menu => {
519
547
  menus.push(menu);
520
548
  addMenu(menu);
@@ -547,7 +575,10 @@ var Private;
547
575
  .filter(menu => !menu.disabled)
548
576
  .map(menu => {
549
577
  var _a;
550
- return Object.assign(Object.assign({}, menu), { items: SettingRegistry.filterDisabledItems((_a = menu.items) !== null && _a !== void 0 ? _a : []) });
578
+ return {
579
+ ...menu,
580
+ items: SettingRegistry.filterDisabledItems((_a = menu.items) !== null && _a !== void 0 ? _a : [])
581
+ };
551
582
  });
552
583
  MenuFactory.updateMenus(menus, toAdd, menuFactory).forEach(menu => {
553
584
  addMenu(menu);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jupyterlab/mainmenu-extension",
3
- "version": "4.0.0-alpha.2",
3
+ "version": "4.0.0-alpha.20",
4
4
  "description": "JupyterLab - Main Menu Extension",
5
5
  "homepage": "https://github.com/jupyterlab/jupyterlab",
6
6
  "bugs": {
@@ -28,7 +28,8 @@
28
28
  "lib/*.js",
29
29
  "schema/*.json",
30
30
  "style/**/*.css",
31
- "style/index.js"
31
+ "style/index.js",
32
+ "src/**/*.{ts,tsx}"
32
33
  ],
33
34
  "scripts": {
34
35
  "build": "tsc -b",
@@ -37,23 +38,23 @@
37
38
  "watch": "tsc -b --watch"
38
39
  },
39
40
  "dependencies": {
40
- "@jupyterlab/application": "^4.0.0-alpha.2",
41
- "@jupyterlab/apputils": "^4.0.0-alpha.2",
42
- "@jupyterlab/coreutils": "^6.0.0-alpha.2",
43
- "@jupyterlab/mainmenu": "^4.0.0-alpha.2",
44
- "@jupyterlab/services": "^7.0.0-alpha.2",
45
- "@jupyterlab/settingregistry": "^4.0.0-alpha.2",
46
- "@jupyterlab/translation": "^4.0.0-alpha.2",
47
- "@jupyterlab/ui-components": "^4.0.0-alpha.17",
48
- "@lumino/algorithm": "^1.9.1",
49
- "@lumino/coreutils": "^1.11.1",
50
- "@lumino/disposable": "^1.10.1",
51
- "@lumino/widgets": "^1.30.0"
41
+ "@jupyterlab/application": "^4.0.0-alpha.20",
42
+ "@jupyterlab/apputils": "^4.0.0-alpha.20",
43
+ "@jupyterlab/coreutils": "^6.0.0-alpha.20",
44
+ "@jupyterlab/mainmenu": "^4.0.0-alpha.20",
45
+ "@jupyterlab/services": "^7.0.0-alpha.20",
46
+ "@jupyterlab/settingregistry": "^4.0.0-alpha.20",
47
+ "@jupyterlab/translation": "^4.0.0-alpha.20",
48
+ "@jupyterlab/ui-components": "^4.0.0-alpha.35",
49
+ "@lumino/algorithm": "^2.0.0-rc.0",
50
+ "@lumino/coreutils": "^2.0.0-rc.0",
51
+ "@lumino/disposable": "^2.0.0-rc.0",
52
+ "@lumino/widgets": "^2.0.0-rc.0"
52
53
  },
53
54
  "devDependencies": {
54
55
  "rimraf": "~3.0.0",
55
- "typedoc": "~0.21.2",
56
- "typescript": "~4.5.2"
56
+ "typedoc": "~0.23.25",
57
+ "typescript": "~5.0.0-beta"
57
58
  },
58
59
  "publishConfig": {
59
60
  "access": "public"
package/src/index.ts ADDED
@@ -0,0 +1,935 @@
1
+ // Copyright (c) Jupyter Development Team.
2
+ // Distributed under the terms of the Modified BSD License.
3
+ /**
4
+ * @packageDocumentation
5
+ * @module mainmenu-extension
6
+ */
7
+
8
+ import {
9
+ createSemanticCommand,
10
+ ILabShell,
11
+ IRouter,
12
+ JupyterFrontEnd,
13
+ JupyterFrontEndPlugin
14
+ } from '@jupyterlab/application';
15
+ import {
16
+ Dialog,
17
+ ICommandPalette,
18
+ MenuFactory,
19
+ showDialog
20
+ } from '@jupyterlab/apputils';
21
+ import { PageConfig, URLExt } from '@jupyterlab/coreutils';
22
+ import {
23
+ IEditMenu,
24
+ IFileMenu,
25
+ IHelpMenu,
26
+ IKernelMenu,
27
+ IMainMenu,
28
+ IRunMenu,
29
+ ITabsMenu,
30
+ IViewMenu,
31
+ JupyterLabMenu,
32
+ MainMenu
33
+ } from '@jupyterlab/mainmenu';
34
+ import { ServerConnection } from '@jupyterlab/services';
35
+ import { ISettingRegistry, SettingRegistry } from '@jupyterlab/settingregistry';
36
+ import { ITranslator, TranslationBundle } from '@jupyterlab/translation';
37
+ import {
38
+ fastForwardIcon,
39
+ refreshIcon,
40
+ runIcon,
41
+ stopIcon
42
+ } from '@jupyterlab/ui-components';
43
+ import { find } from '@lumino/algorithm';
44
+ import { JSONExt } from '@lumino/coreutils';
45
+ import { IDisposable } from '@lumino/disposable';
46
+ import { Menu, Widget } from '@lumino/widgets';
47
+
48
+ const PLUGIN_ID = '@jupyterlab/mainmenu-extension:plugin';
49
+
50
+ /**
51
+ * A namespace for command IDs of semantic extension points.
52
+ */
53
+ export namespace CommandIDs {
54
+ export const openEdit = 'editmenu:open';
55
+
56
+ export const undo = 'editmenu:undo';
57
+
58
+ export const redo = 'editmenu:redo';
59
+
60
+ export const clearCurrent = 'editmenu:clear-current';
61
+
62
+ export const clearAll = 'editmenu:clear-all';
63
+
64
+ export const find = 'editmenu:find';
65
+
66
+ export const goToLine = 'editmenu:go-to-line';
67
+
68
+ export const openFile = 'filemenu:open';
69
+
70
+ export const closeAndCleanup = 'filemenu:close-and-cleanup';
71
+
72
+ export const createConsole = 'filemenu:create-console';
73
+
74
+ export const shutdown = 'filemenu:shutdown';
75
+
76
+ export const logout = 'filemenu:logout';
77
+
78
+ export const openKernel = 'kernelmenu:open';
79
+
80
+ export const interruptKernel = 'kernelmenu:interrupt';
81
+
82
+ export const reconnectToKernel = 'kernelmenu:reconnect-to-kernel';
83
+
84
+ export const restartKernel = 'kernelmenu:restart';
85
+
86
+ export const restartKernelAndClear = 'kernelmenu:restart-and-clear';
87
+
88
+ export const changeKernel = 'kernelmenu:change';
89
+
90
+ export const shutdownKernel = 'kernelmenu:shutdown';
91
+
92
+ export const shutdownAllKernels = 'kernelmenu:shutdownAll';
93
+
94
+ export const openView = 'viewmenu:open';
95
+
96
+ export const wordWrap = 'viewmenu:word-wrap';
97
+
98
+ export const lineNumbering = 'viewmenu:line-numbering';
99
+
100
+ export const matchBrackets = 'viewmenu:match-brackets';
101
+
102
+ export const openRun = 'runmenu:open';
103
+
104
+ export const run = 'runmenu:run';
105
+
106
+ export const runAll = 'runmenu:run-all';
107
+
108
+ export const restartAndRunAll = 'runmenu:restart-and-run-all';
109
+
110
+ export const runAbove = 'runmenu:run-above';
111
+
112
+ export const runBelow = 'runmenu:run-below';
113
+
114
+ export const openTabs = 'tabsmenu:open';
115
+
116
+ export const activateById = 'tabsmenu:activate-by-id';
117
+
118
+ export const activatePreviouslyUsedTab =
119
+ 'tabsmenu:activate-previously-used-tab';
120
+
121
+ export const openSettings = 'settingsmenu:open';
122
+
123
+ export const openHelp = 'helpmenu:open';
124
+
125
+ export const getKernel = 'helpmenu:get-kernel';
126
+
127
+ export const openFirst = 'mainmenu:open-first';
128
+ }
129
+
130
+ /**
131
+ * A service providing an interface to the main menu.
132
+ */
133
+ const plugin: JupyterFrontEndPlugin<IMainMenu> = {
134
+ id: PLUGIN_ID,
135
+ requires: [IRouter, ITranslator],
136
+ optional: [ICommandPalette, ILabShell, ISettingRegistry],
137
+ provides: IMainMenu,
138
+ activate: async (
139
+ app: JupyterFrontEnd,
140
+ router: IRouter,
141
+ translator: ITranslator,
142
+ palette: ICommandPalette | null,
143
+ labShell: ILabShell | null,
144
+ registry: ISettingRegistry | null
145
+ ): Promise<IMainMenu> => {
146
+ const { commands } = app;
147
+ const trans = translator.load('jupyterlab');
148
+
149
+ const menu = new MainMenu(commands);
150
+ menu.id = 'jp-MainMenu';
151
+ menu.addClass('jp-scrollbar-tiny');
152
+
153
+ // Built menu from settings
154
+ if (registry) {
155
+ await Private.loadSettingsMenu(
156
+ registry,
157
+ (aMenu: JupyterLabMenu) => {
158
+ menu.addMenu(aMenu, false, { rank: aMenu.rank });
159
+ },
160
+ options => MainMenu.generateMenu(commands, options, trans),
161
+ translator
162
+ );
163
+
164
+ // Trigger single update
165
+ menu.update();
166
+ }
167
+
168
+ // Only add quit button if the back-end supports it by checking page config.
169
+ const quitButton = PageConfig.getOption('quitButton').toLowerCase();
170
+ menu.fileMenu.quitEntry = quitButton === 'true';
171
+
172
+ // Create the application menus.
173
+ createEditMenu(app, menu.editMenu, trans);
174
+ createFileMenu(app, menu.fileMenu, router, trans);
175
+ createKernelMenu(app, menu.kernelMenu, trans);
176
+ createRunMenu(app, menu.runMenu, trans);
177
+ createViewMenu(app, menu.viewMenu, trans);
178
+ createHelpMenu(app, menu.helpMenu, trans);
179
+
180
+ // The tabs menu relies on lab shell functionality.
181
+ if (labShell) {
182
+ createTabsMenu(app, menu.tabsMenu, labShell, trans);
183
+ }
184
+
185
+ // Create commands to open the main application menus.
186
+ const activateMenu = (item: Menu) => {
187
+ menu.activeMenu = item;
188
+ menu.openActiveMenu();
189
+ };
190
+
191
+ commands.addCommand(CommandIDs.openEdit, {
192
+ label: trans.__('Open Edit Menu'),
193
+ execute: () => activateMenu(menu.editMenu)
194
+ });
195
+ commands.addCommand(CommandIDs.openFile, {
196
+ label: trans.__('Open File Menu'),
197
+ execute: () => activateMenu(menu.fileMenu)
198
+ });
199
+ commands.addCommand(CommandIDs.openKernel, {
200
+ label: trans.__('Open Kernel Menu'),
201
+ execute: () => activateMenu(menu.kernelMenu)
202
+ });
203
+ commands.addCommand(CommandIDs.openRun, {
204
+ label: trans.__('Open Run Menu'),
205
+ execute: () => activateMenu(menu.runMenu)
206
+ });
207
+ commands.addCommand(CommandIDs.openView, {
208
+ label: trans.__('Open View Menu'),
209
+ execute: () => activateMenu(menu.viewMenu)
210
+ });
211
+ commands.addCommand(CommandIDs.openSettings, {
212
+ label: trans.__('Open Settings Menu'),
213
+ execute: () => activateMenu(menu.settingsMenu)
214
+ });
215
+ commands.addCommand(CommandIDs.openTabs, {
216
+ label: trans.__('Open Tabs Menu'),
217
+ execute: () => activateMenu(menu.tabsMenu)
218
+ });
219
+ commands.addCommand(CommandIDs.openHelp, {
220
+ label: trans.__('Open Help Menu'),
221
+ execute: () => activateMenu(menu.helpMenu)
222
+ });
223
+ commands.addCommand(CommandIDs.openFirst, {
224
+ label: trans.__('Open First Menu'),
225
+ execute: () => {
226
+ menu.activeIndex = 0;
227
+ menu.openActiveMenu();
228
+ }
229
+ });
230
+
231
+ if (palette) {
232
+ // Add some of the commands defined here to the command palette.
233
+ palette.addItem({
234
+ command: CommandIDs.shutdown,
235
+ category: trans.__('Main Area')
236
+ });
237
+ palette.addItem({
238
+ command: CommandIDs.logout,
239
+ category: trans.__('Main Area')
240
+ });
241
+
242
+ palette.addItem({
243
+ command: CommandIDs.shutdownAllKernels,
244
+ category: trans.__('Kernel Operations')
245
+ });
246
+
247
+ palette.addItem({
248
+ command: CommandIDs.activatePreviouslyUsedTab,
249
+ category: trans.__('Main Area')
250
+ });
251
+ }
252
+
253
+ app.shell.add(menu, 'menu', { rank: 100 });
254
+
255
+ return menu;
256
+ }
257
+ };
258
+
259
+ /**
260
+ * Create the basic `Edit` menu.
261
+ */
262
+ export function createEditMenu(
263
+ app: JupyterFrontEnd,
264
+ menu: IEditMenu,
265
+ trans: TranslationBundle
266
+ ): void {
267
+ const commands = app.commands;
268
+
269
+ // Add the undo/redo commands the the Edit menu.
270
+ commands.addCommand(
271
+ CommandIDs.undo,
272
+ createSemanticCommand(
273
+ app,
274
+ menu.undoers.undo,
275
+ {
276
+ label: trans.__('Undo')
277
+ },
278
+ trans
279
+ )
280
+ );
281
+ commands.addCommand(
282
+ CommandIDs.redo,
283
+ createSemanticCommand(
284
+ app,
285
+ menu.undoers.redo,
286
+ {
287
+ label: trans.__('Redo')
288
+ },
289
+ trans
290
+ )
291
+ );
292
+
293
+ // Add the clear commands to the Edit menu.
294
+ commands.addCommand(
295
+ CommandIDs.clearCurrent,
296
+ createSemanticCommand(
297
+ app,
298
+ menu.clearers.clearCurrent,
299
+ {
300
+ label: trans.__('Clear')
301
+ },
302
+ trans
303
+ )
304
+ );
305
+ commands.addCommand(
306
+ CommandIDs.clearAll,
307
+ createSemanticCommand(
308
+ app,
309
+ menu.clearers.clearAll,
310
+ {
311
+ label: trans.__('Clear All')
312
+ },
313
+ trans
314
+ )
315
+ );
316
+
317
+ commands.addCommand(
318
+ CommandIDs.goToLine,
319
+ createSemanticCommand(
320
+ app,
321
+ menu.goToLiners,
322
+ {
323
+ label: trans.__('Go to Line…')
324
+ },
325
+ trans
326
+ )
327
+ );
328
+ }
329
+
330
+ /**
331
+ * Create the basic `File` menu.
332
+ */
333
+ export function createFileMenu(
334
+ app: JupyterFrontEnd,
335
+ menu: IFileMenu,
336
+ router: IRouter,
337
+ trans: TranslationBundle
338
+ ): void {
339
+ const commands = app.commands;
340
+
341
+ // Add a delegator command for closing and cleaning up an activity.
342
+ // This one is a bit different, in that we consider it enabled
343
+ // even if it cannot find a delegate for the activity.
344
+ // In that case, we instead call the application `close` command.
345
+ commands.addCommand(CommandIDs.closeAndCleanup, {
346
+ ...createSemanticCommand(
347
+ app,
348
+ menu.closeAndCleaners,
349
+ {
350
+ execute: 'application:close',
351
+ label: trans.__('Close and Shut Down'),
352
+ isEnabled: true
353
+ },
354
+ trans
355
+ ),
356
+ isEnabled: () =>
357
+ !!app.shell.currentWidget && !!app.shell.currentWidget.title.closable
358
+ });
359
+
360
+ // Add a delegator command for creating a console for an activity.
361
+ commands.addCommand(
362
+ CommandIDs.createConsole,
363
+ createSemanticCommand(
364
+ app,
365
+ menu.consoleCreators,
366
+ {
367
+ label: trans.__('New Console for Activity')
368
+ },
369
+ trans
370
+ )
371
+ );
372
+
373
+ commands.addCommand(CommandIDs.shutdown, {
374
+ label: trans.__('Shut Down'),
375
+ caption: trans.__('Shut down JupyterLab'),
376
+ isVisible: () => menu.quitEntry,
377
+ isEnabled: () => menu.quitEntry,
378
+ execute: () => {
379
+ return showDialog({
380
+ title: trans.__('Shutdown confirmation'),
381
+ body: trans.__('Please confirm you want to shut down JupyterLab.'),
382
+ buttons: [
383
+ Dialog.cancelButton(),
384
+ Dialog.warnButton({ label: trans.__('Shut Down') })
385
+ ]
386
+ }).then(async result => {
387
+ if (result.button.accept) {
388
+ const setting = ServerConnection.makeSettings();
389
+ const apiURL = URLExt.join(setting.baseUrl, 'api/shutdown');
390
+
391
+ // Shutdown all kernel and terminal sessions before shutting down the server
392
+ // If this fails, we continue execution so we can post an api/shutdown request
393
+ try {
394
+ await Promise.all([
395
+ app.serviceManager.sessions.shutdownAll(),
396
+ app.serviceManager.terminals.shutdownAll()
397
+ ]);
398
+ } catch (e) {
399
+ // Do nothing
400
+ console.log(`Failed to shutdown sessions and terminals: ${e}`);
401
+ }
402
+
403
+ return ServerConnection.makeRequest(
404
+ apiURL,
405
+ { method: 'POST' },
406
+ setting
407
+ )
408
+ .then(result => {
409
+ if (result.ok) {
410
+ // Close this window if the shutdown request has been successful
411
+ const body = document.createElement('div');
412
+ const p1 = document.createElement('p');
413
+ p1.textContent = trans.__(
414
+ 'You have shut down the Jupyter server. You can now close this tab.'
415
+ );
416
+ const p2 = document.createElement('p');
417
+ p2.textContent = trans.__(
418
+ 'To use JupyterLab again, you will need to relaunch it.'
419
+ );
420
+
421
+ body.appendChild(p1);
422
+ body.appendChild(p2);
423
+ void showDialog({
424
+ title: trans.__('Server stopped'),
425
+ body: new Widget({ node: body }),
426
+ buttons: []
427
+ });
428
+ window.close();
429
+ } else {
430
+ throw new ServerConnection.ResponseError(result);
431
+ }
432
+ })
433
+ .catch(data => {
434
+ throw new ServerConnection.NetworkError(data);
435
+ });
436
+ }
437
+ });
438
+ }
439
+ });
440
+
441
+ commands.addCommand(CommandIDs.logout, {
442
+ label: trans.__('Log Out'),
443
+ caption: trans.__('Log out of JupyterLab'),
444
+ isVisible: () => menu.quitEntry,
445
+ isEnabled: () => menu.quitEntry,
446
+ execute: () => {
447
+ router.navigate('/logout', { hard: true });
448
+ }
449
+ });
450
+ }
451
+
452
+ /**
453
+ * Create the basic `Kernel` menu.
454
+ */
455
+ export function createKernelMenu(
456
+ app: JupyterFrontEnd,
457
+ menu: IKernelMenu,
458
+ trans: TranslationBundle
459
+ ): void {
460
+ const commands = app.commands;
461
+
462
+ commands.addCommand(CommandIDs.interruptKernel, {
463
+ ...createSemanticCommand(
464
+ app,
465
+ menu.kernelUsers.interruptKernel,
466
+ {
467
+ label: trans.__('Interrupt Kernel'),
468
+ caption: trans.__('Interrupt the kernel')
469
+ },
470
+ trans
471
+ ),
472
+ icon: args => (args.toolbar ? stopIcon : undefined)
473
+ });
474
+
475
+ commands.addCommand(
476
+ CommandIDs.reconnectToKernel,
477
+ createSemanticCommand(
478
+ app,
479
+ menu.kernelUsers.reconnectToKernel,
480
+ {
481
+ label: trans.__('Reconnect to Kernel')
482
+ },
483
+ trans
484
+ )
485
+ );
486
+
487
+ commands.addCommand(CommandIDs.restartKernel, {
488
+ ...createSemanticCommand(
489
+ app,
490
+ menu.kernelUsers.restartKernel,
491
+ {
492
+ label: trans.__('Restart Kernel…'),
493
+ caption: trans.__('Restart the kernel')
494
+ },
495
+ trans
496
+ ),
497
+ icon: args => (args.toolbar ? refreshIcon : undefined)
498
+ });
499
+
500
+ commands.addCommand(
501
+ CommandIDs.restartKernelAndClear,
502
+ createSemanticCommand(
503
+ app,
504
+ [menu.kernelUsers.restartKernel, menu.kernelUsers.clearWidget],
505
+ {
506
+ label: trans.__('Restart Kernel and Clear…')
507
+ },
508
+ trans
509
+ )
510
+ );
511
+
512
+ commands.addCommand(
513
+ CommandIDs.changeKernel,
514
+ createSemanticCommand(
515
+ app,
516
+ menu.kernelUsers.changeKernel,
517
+ {
518
+ label: trans.__('Change Kernel…')
519
+ },
520
+ trans
521
+ )
522
+ );
523
+
524
+ commands.addCommand(
525
+ CommandIDs.shutdownKernel,
526
+ createSemanticCommand(
527
+ app,
528
+ menu.kernelUsers.shutdownKernel,
529
+ {
530
+ label: trans.__('Shut Down Kernel'),
531
+ caption: trans.__('Shut down kernel')
532
+ },
533
+ trans
534
+ )
535
+ );
536
+
537
+ commands.addCommand(CommandIDs.shutdownAllKernels, {
538
+ label: trans.__('Shut Down All Kernels…'),
539
+ isEnabled: () => {
540
+ return !app.serviceManager.sessions.running().next().done;
541
+ },
542
+ execute: () => {
543
+ return showDialog({
544
+ title: trans.__('Shut Down All?'),
545
+ body: trans.__('Shut down all kernels?'),
546
+ buttons: [
547
+ Dialog.cancelButton({ label: trans.__('Dismiss') }),
548
+ Dialog.warnButton({ label: trans.__('Shut Down All') })
549
+ ]
550
+ }).then(result => {
551
+ if (result.button.accept) {
552
+ return app.serviceManager.sessions.shutdownAll();
553
+ }
554
+ });
555
+ }
556
+ });
557
+ }
558
+
559
+ /**
560
+ * Create the basic `View` menu.
561
+ */
562
+ export function createViewMenu(
563
+ app: JupyterFrontEnd,
564
+ menu: IViewMenu,
565
+ trans: TranslationBundle
566
+ ): void {
567
+ const commands = app.commands;
568
+
569
+ commands.addCommand(
570
+ CommandIDs.lineNumbering,
571
+ createSemanticCommand(
572
+ app,
573
+ menu.editorViewers.toggleLineNumbers,
574
+ {
575
+ label: trans.__('Show Line Numbers')
576
+ },
577
+ trans
578
+ )
579
+ );
580
+
581
+ commands.addCommand(
582
+ CommandIDs.matchBrackets,
583
+ createSemanticCommand(
584
+ app,
585
+ menu.editorViewers.toggleMatchBrackets,
586
+ {
587
+ label: trans.__('Match Brackets')
588
+ },
589
+ trans
590
+ )
591
+ );
592
+
593
+ commands.addCommand(
594
+ CommandIDs.wordWrap,
595
+ createSemanticCommand(
596
+ app,
597
+ menu.editorViewers.toggleWordWrap,
598
+ {
599
+ label: trans.__('Wrap Words')
600
+ },
601
+ trans
602
+ )
603
+ );
604
+ }
605
+
606
+ /**
607
+ * Create the basic `Run` menu.
608
+ */
609
+ export function createRunMenu(
610
+ app: JupyterFrontEnd,
611
+ menu: IRunMenu,
612
+ trans: TranslationBundle
613
+ ): void {
614
+ const commands = app.commands;
615
+
616
+ commands.addCommand(CommandIDs.run, {
617
+ ...createSemanticCommand(
618
+ app,
619
+ menu.codeRunners.run,
620
+ {
621
+ label: trans.__('Run Selected'),
622
+ caption: trans.__('Run Selected')
623
+ },
624
+ trans
625
+ ),
626
+ icon: args => (args.toolbar ? runIcon : undefined)
627
+ });
628
+
629
+ commands.addCommand(
630
+ CommandIDs.runAll,
631
+ createSemanticCommand(
632
+ app,
633
+ menu.codeRunners.runAll,
634
+ {
635
+ label: trans.__('Run All'),
636
+ caption: trans.__('Run All')
637
+ },
638
+ trans
639
+ )
640
+ );
641
+
642
+ commands.addCommand(CommandIDs.restartAndRunAll, {
643
+ ...createSemanticCommand(
644
+ app,
645
+ [menu.codeRunners.restart, menu.codeRunners.runAll],
646
+ {
647
+ label: trans.__('Restart Kernel and Run All'),
648
+ caption: trans.__('Restart Kernel and Run All')
649
+ },
650
+ trans
651
+ ),
652
+ icon: args => (args.toolbar ? fastForwardIcon : undefined)
653
+ });
654
+ }
655
+
656
+ /**
657
+ * Create the basic `Tabs` menu.
658
+ */
659
+ export function createTabsMenu(
660
+ app: JupyterFrontEnd,
661
+ menu: ITabsMenu,
662
+ labShell: ILabShell | null,
663
+ trans: TranslationBundle
664
+ ): void {
665
+ const commands = app.commands;
666
+
667
+ // A list of the active tabs in the main area.
668
+ const tabGroup: Menu.IItemOptions[] = [];
669
+ // A disposable for getting rid of the out-of-date tabs list.
670
+ let disposable: IDisposable;
671
+
672
+ // Command to activate a widget by id.
673
+ commands.addCommand(CommandIDs.activateById, {
674
+ label: args => {
675
+ if (args.id === undefined) {
676
+ return trans.__('Activate a widget by its `id`.');
677
+ }
678
+ const id = args['id'] || '';
679
+ const widget = find(app.shell.widgets('main'), w => w.id === id);
680
+ return (widget && widget.title.label) || '';
681
+ },
682
+ isToggled: args => {
683
+ const id = args['id'] || '';
684
+ return !!app.shell.currentWidget && app.shell.currentWidget.id === id;
685
+ },
686
+ execute: args => app.shell.activateById((args['id'] as string) || '')
687
+ });
688
+
689
+ let previousId = '';
690
+ // Command to toggle between the current
691
+ // tab and the last modified tab.
692
+ commands.addCommand(CommandIDs.activatePreviouslyUsedTab, {
693
+ label: trans.__('Activate Previously Used Tab'),
694
+ isEnabled: () => !!previousId,
695
+ execute: () => commands.execute(CommandIDs.activateById, { id: previousId })
696
+ });
697
+
698
+ if (labShell) {
699
+ void app.restored.then(() => {
700
+ // Iterate over the current widgets in the
701
+ // main area, and add them to the tab group
702
+ // of the menu.
703
+ const populateTabs = () => {
704
+ // remove the previous tab list
705
+ if (disposable && !disposable.isDisposed) {
706
+ disposable.dispose();
707
+ }
708
+ tabGroup.length = 0;
709
+
710
+ let isPreviouslyUsedTabAttached = false;
711
+ for (const widget of app.shell.widgets('main')) {
712
+ if (widget.id === previousId) {
713
+ isPreviouslyUsedTabAttached = true;
714
+ }
715
+ tabGroup.push({
716
+ command: CommandIDs.activateById,
717
+ args: { id: widget.id }
718
+ });
719
+ }
720
+ disposable = menu.addGroup(tabGroup, 1);
721
+ previousId = isPreviouslyUsedTabAttached ? previousId : '';
722
+ };
723
+ populateTabs();
724
+ labShell.layoutModified.connect(() => {
725
+ populateTabs();
726
+ });
727
+ // Update the ID of the previous active tab if a new tab is selected.
728
+ labShell.currentChanged.connect((_, args) => {
729
+ const widget = args.oldValue;
730
+ if (!widget) {
731
+ return;
732
+ }
733
+ previousId = widget.id;
734
+ });
735
+ });
736
+ }
737
+ }
738
+
739
+ /**
740
+ * Create the basic `Help` menu.
741
+ */
742
+ export function createHelpMenu(
743
+ app: JupyterFrontEnd,
744
+ menu: IHelpMenu,
745
+ trans: TranslationBundle
746
+ ): void {
747
+ app.commands.addCommand(
748
+ CommandIDs.getKernel,
749
+ createSemanticCommand(
750
+ app,
751
+ menu.getKernel,
752
+ {
753
+ label: trans.__('Get Kernel'),
754
+ isVisible: false
755
+ },
756
+ trans
757
+ )
758
+ );
759
+ }
760
+
761
+ export default plugin;
762
+
763
+ /**
764
+ * A namespace for Private data.
765
+ */
766
+ namespace Private {
767
+ async function displayInformation(trans: TranslationBundle): Promise<void> {
768
+ const result = await showDialog({
769
+ title: trans.__('Information'),
770
+ body: trans.__(
771
+ 'Menu customization has changed. You will need to reload JupyterLab to see the changes.'
772
+ ),
773
+ buttons: [
774
+ Dialog.cancelButton(),
775
+ Dialog.okButton({ label: trans.__('Reload') })
776
+ ]
777
+ });
778
+
779
+ if (result.button.accept) {
780
+ location.reload();
781
+ }
782
+ }
783
+
784
+ export async function loadSettingsMenu(
785
+ registry: ISettingRegistry,
786
+ addMenu: (menu: Menu) => void,
787
+ menuFactory: (options: IMainMenu.IMenuOptions) => JupyterLabMenu,
788
+ translator: ITranslator
789
+ ): Promise<void> {
790
+ const trans = translator.load('jupyterlab');
791
+ let canonical: ISettingRegistry.ISchema | null = null;
792
+ let loaded: { [name: string]: ISettingRegistry.IMenu[] } = {};
793
+
794
+ /**
795
+ * Populate the plugin's schema defaults.
796
+ */
797
+ function populate(schema: ISettingRegistry.ISchema) {
798
+ loaded = {};
799
+ const pluginDefaults = Object.keys(registry.plugins)
800
+ .map(plugin => {
801
+ const menus =
802
+ registry.plugins[plugin]!.schema['jupyter.lab.menus']?.main ?? [];
803
+ loaded[plugin] = menus;
804
+ return menus;
805
+ })
806
+ .concat([schema['jupyter.lab.menus']?.main ?? []])
807
+ .reduceRight(
808
+ (acc, val) => SettingRegistry.reconcileMenus(acc, val, true),
809
+ schema.properties!.menus.default as any[]
810
+ );
811
+
812
+ // Apply default value as last step to take into account overrides.json
813
+ // The standard default being [] as the plugin must use `jupyter.lab.menus.main`
814
+ // to define their default value.
815
+ schema.properties!.menus.default = SettingRegistry.reconcileMenus(
816
+ pluginDefaults,
817
+ schema.properties!.menus.default as any[],
818
+ true
819
+ )
820
+ // flatten one level
821
+ .sort((a, b) => (a.rank ?? Infinity) - (b.rank ?? Infinity));
822
+ }
823
+
824
+ // Transform the plugin object to return different schema than the default.
825
+ registry.transform(PLUGIN_ID, {
826
+ compose: plugin => {
827
+ // Only override the canonical schema the first time.
828
+ if (!canonical) {
829
+ canonical = JSONExt.deepCopy(plugin.schema);
830
+ populate(canonical);
831
+ }
832
+
833
+ const defaults = canonical.properties?.menus?.default ?? [];
834
+ const user = {
835
+ ...plugin.data.user,
836
+ menus: plugin.data.user.menus ?? []
837
+ };
838
+ const composite = {
839
+ ...plugin.data.composite,
840
+ menus: SettingRegistry.reconcileMenus(
841
+ defaults as ISettingRegistry.IMenu[],
842
+ user.menus as ISettingRegistry.IMenu[]
843
+ )
844
+ };
845
+
846
+ plugin.data = { composite, user };
847
+
848
+ return plugin;
849
+ },
850
+ fetch: plugin => {
851
+ // Only override the canonical schema the first time.
852
+ if (!canonical) {
853
+ canonical = JSONExt.deepCopy(plugin.schema);
854
+ populate(canonical);
855
+ }
856
+
857
+ return {
858
+ data: plugin.data,
859
+ id: plugin.id,
860
+ raw: plugin.raw,
861
+ schema: canonical,
862
+ version: plugin.version
863
+ };
864
+ }
865
+ });
866
+
867
+ // Repopulate the canonical variable after the setting registry has
868
+ // preloaded all initial plugins.
869
+ const settings = await registry.load(PLUGIN_ID);
870
+
871
+ const currentMenus: ISettingRegistry.IMenu[] =
872
+ JSONExt.deepCopy(settings.composite.menus as any) ?? [];
873
+ const menus = new Array<Menu>();
874
+ // Create menu for non-disabled element
875
+ MenuFactory.createMenus(
876
+ currentMenus
877
+ .filter(menu => !menu.disabled)
878
+ .map(menu => {
879
+ return {
880
+ ...menu,
881
+ items: SettingRegistry.filterDisabledItems(menu.items ?? [])
882
+ };
883
+ }),
884
+ menuFactory
885
+ ).forEach(menu => {
886
+ menus.push(menu);
887
+ addMenu(menu);
888
+ });
889
+
890
+ settings.changed.connect(() => {
891
+ // As extension may change menu through API, prompt the user to reload if the
892
+ // menu has been updated.
893
+ const newMenus = (settings.composite.menus as any) ?? [];
894
+ if (!JSONExt.deepEqual(currentMenus, newMenus)) {
895
+ void displayInformation(trans);
896
+ }
897
+ });
898
+
899
+ registry.pluginChanged.connect(async (sender, plugin) => {
900
+ if (plugin !== PLUGIN_ID) {
901
+ // If the plugin changed its menu.
902
+ const oldMenus = loaded[plugin] ?? [];
903
+ const newMenus =
904
+ registry.plugins[plugin]!.schema['jupyter.lab.menus']?.main ?? [];
905
+ if (!JSONExt.deepEqual(oldMenus, newMenus)) {
906
+ if (loaded[plugin]) {
907
+ // The plugin has changed, request the user to reload the UI - this should not happen
908
+ await displayInformation(trans);
909
+ } else {
910
+ // The plugin was not yet loaded when the menu was built => update the menu
911
+ loaded[plugin] = JSONExt.deepCopy(newMenus);
912
+ // Merge potential disabled state
913
+ const toAdd = SettingRegistry.reconcileMenus(
914
+ newMenus,
915
+ currentMenus,
916
+ false,
917
+ false
918
+ )
919
+ .filter(menu => !menu.disabled)
920
+ .map(menu => {
921
+ return {
922
+ ...menu,
923
+ items: SettingRegistry.filterDisabledItems(menu.items ?? [])
924
+ };
925
+ });
926
+
927
+ MenuFactory.updateMenus(menus, toAdd, menuFactory).forEach(menu => {
928
+ addMenu(menu);
929
+ });
930
+ }
931
+ }
932
+ }
933
+ });
934
+ }
935
+ }