Forráskód Böngészése

Update file browser plugin commands.

Afshin Darian 8 éve
szülő
commit
cac9699ff1

+ 2 - 2
src/csvwidget/plugin.ts

@@ -14,7 +14,7 @@ import {
 } from '../docregistry';
 
 import {
-  cmdIds as fileBrowserCmdIds
+  CommandIDs as FileBrowserCommandIDs
 } from '../filebrowser';
 
 import {
@@ -62,7 +62,7 @@ function activate(app: JupyterLab, registry: IDocumentRegistry, restorer: IInsta
 
   // Handle state restoration.
   restorer.restore(tracker, {
-    command: fileBrowserCmdIds.open,
+    command: FileBrowserCommandIDs.open,
     args: widget => ({ path: widget.context.path, factory: FACTORY }),
     name: widget => widget.context.path
   });

+ 2 - 2
src/editorwidget/plugin.ts

@@ -26,7 +26,7 @@ import {
 } from '../docregistry';
 
 import {
-  cmdIds as fileBrowserCmdIds
+  CommandIDs as FileBrowserCommandIDs
 } from '../filebrowser';
 
 import {
@@ -88,7 +88,7 @@ function activate(app: JupyterLab, registry: IDocumentRegistry, restorer: IInsta
 
   // Handle state restoration.
   restorer.restore(tracker, {
-    command: fileBrowserCmdIds.open,
+    command: FileBrowserCommandIDs.open,
     args: widget => ({ path: widget.context.path, factory: FACTORY }),
     name: widget => widget.context.path
   });

+ 34 - 13
src/filebrowser/index.ts

@@ -10,19 +10,40 @@ export * from './tracker';
 
 
 /**
- * The map of command ids used by the filebrowser plugin.
+ * The command IDs used by the file browser plugin.
  */
 export
-const cmdIds = {
-  save: 'file-operations:save',
-  restoreCheckpoint: 'file-operations:restore-checkpoint',
-  saveAs: 'file-operations:save-as',
-  close: 'file-operations:close',
-  closeAllFiles: 'file-operations:close-all-files',
-  open: 'file-operations:open',
-  newTextFile: 'file-operations:new-text-file',
-  newNotebook: 'file-operations:new-notebook-file',
-  showBrowser: 'file-browser:activate',
-  hideBrowser: 'file-browser:hide',
-  toggleBrowser: 'file-browser:toggle'
+namespace CommandIDs {
+  export
+  const save = 'file-operations:save';
+
+  export
+  const restoreCheckpoint = 'file-operations:restore-checkpoint';
+
+  export
+  const saveAs = 'file-operations:save-as';
+
+  export
+  const close = 'file-operations:close';
+
+  export
+  const closeAllFiles = 'file-operations:close-all-files';
+
+  export
+  const open = 'file-operations:open';
+
+  export
+  const newTextFile = 'file-operations:new-text-file';
+
+  export
+  const newNotebook = 'file-operations:new-notebook-file';
+
+  export
+  const showBrowser = 'file-browser:activate';
+
+  export
+  const hideBrowser = 'file-browser:hide';
+
+  export
+  const toggleBrowser = 'file-browser:toggle';
 };

+ 27 - 23
src/filebrowser/plugin.ts

@@ -46,7 +46,7 @@ import {
 } from '../statedb';
 
 import {
-  FileBrowserModel, FileBrowser, IPathTracker, cmdIds
+  CommandIDs, FileBrowserModel, FileBrowser, IPathTracker
 } from './';
 
 
@@ -166,11 +166,11 @@ function activate(app: JupyterLab, manager: IServiceManager, documentManager: ID
   addCommands(app, fbWidget, documentManager);
 
   [
-    cmdIds.save,
-    cmdIds.restoreCheckpoint,
-    cmdIds.saveAs,
-    cmdIds.close,
-    cmdIds.closeAllFiles,
+    CommandIDs.save,
+    CommandIDs.restoreCheckpoint,
+    CommandIDs.saveAs,
+    CommandIDs.close,
+    CommandIDs.closeAllFiles
   ].forEach(command => { palette.addItem({ command, category }); });
 
   let menu = createMenu(app, Object.keys(creatorCmds));
@@ -183,7 +183,7 @@ function activate(app: JupyterLab, manager: IServiceManager, documentManager: ID
   // If the layout is a fresh session without saved data, open file browser.
   app.restored.then(layout => {
     if (layout.fresh) {
-      app.commands.execute(cmdIds.showBrowser, void 0);
+      app.commands.execute(CommandIDs.showBrowser, void 0);
     }
   });
 
@@ -217,7 +217,7 @@ function addCommands(app: JupyterLab, fbWidget: FileBrowser, docManager: IDocume
     return !!(currentWidget && docManager.contextForWidget(currentWidget));
   };
 
-  commands.addCommand(cmdIds.save, {
+  commands.addCommand(CommandIDs.save, {
     label: 'Save',
     caption: 'Save and create checkpoint',
     isEnabled,
@@ -229,7 +229,7 @@ function addCommands(app: JupyterLab, fbWidget: FileBrowser, docManager: IDocume
     }
   });
 
-  commands.addCommand(cmdIds.restoreCheckpoint, {
+  commands.addCommand(CommandIDs.restoreCheckpoint, {
     label: 'Revert to Checkpoint',
     caption: 'Revert contents to previous checkpoint',
     isEnabled,
@@ -241,7 +241,7 @@ function addCommands(app: JupyterLab, fbWidget: FileBrowser, docManager: IDocume
     }
   });
 
-  commands.addCommand(cmdIds.saveAs, {
+  commands.addCommand(CommandIDs.saveAs, {
     label: 'Save As...',
     caption: 'Save with new path and create checkpoint',
     isEnabled,
@@ -255,7 +255,7 @@ function addCommands(app: JupyterLab, fbWidget: FileBrowser, docManager: IDocume
     }
   });
 
-  commands.addCommand(cmdIds.open, {
+  commands.addCommand(CommandIDs.open, {
     execute: args => {
       let path = args['path'] as string;
       let factory = args['factory'] as string || void 0;
@@ -264,7 +264,7 @@ function addCommands(app: JupyterLab, fbWidget: FileBrowser, docManager: IDocume
     }
   });
 
-  commands.addCommand(cmdIds.close, {
+  commands.addCommand(CommandIDs.close, {
     label: 'Close',
     execute: () => {
       if (app.shell.currentWidget) {
@@ -273,16 +273,16 @@ function addCommands(app: JupyterLab, fbWidget: FileBrowser, docManager: IDocume
     }
   });
 
-  commands.addCommand(cmdIds.closeAllFiles, {
+  commands.addCommand(CommandIDs.closeAllFiles, {
     label: 'Close All',
     execute: () => { app.shell.closeAll(); }
   });
 
-  commands.addCommand(cmdIds.showBrowser, {
+  commands.addCommand(CommandIDs.showBrowser, {
     execute: () => { app.shell.activateLeft(fbWidget.id); }
   });
 
-  commands.addCommand(cmdIds.hideBrowser, {
+  commands.addCommand(CommandIDs.hideBrowser, {
     execute: () => {
       if (!fbWidget.isHidden) {
         app.shell.collapseLeft();
@@ -290,12 +290,12 @@ function addCommands(app: JupyterLab, fbWidget: FileBrowser, docManager: IDocume
     }
   });
 
-  commands.addCommand(cmdIds.toggleBrowser, {
+  commands.addCommand(CommandIDs.toggleBrowser, {
     execute: () => {
       if (fbWidget.isHidden) {
-        return commands.execute(cmdIds.showBrowser, void 0);
+        return commands.execute(CommandIDs.showBrowser, void 0);
       } else {
-        return commands.execute(cmdIds.hideBrowser, void 0);
+        return commands.execute(CommandIDs.hideBrowser, void 0);
       }
     }
   });
@@ -313,11 +313,11 @@ function createMenu(app: JupyterLab, creatorCmds: string[]): Menu {
     menu.addItem({ command: Private.commandForName(name) });
   });
   [
-    cmdIds.save,
-    cmdIds.restoreCheckpoint,
-    cmdIds.saveAs,
-    cmdIds.close,
-    cmdIds.closeAllFiles,
+    CommandIDs.save,
+    CommandIDs.restoreCheckpoint,
+    CommandIDs.saveAs,
+    CommandIDs.close,
+    CommandIDs.closeAllFiles
   ].forEach(command => { menu.addItem({ command }); });
 
   return menu;
@@ -326,6 +326,10 @@ function createMenu(app: JupyterLab, creatorCmds: string[]): Menu {
 
 /**
  * Create a context menu for the file browser listing.
+ *
+ * #### Notes
+ * This function generates temporary commands with an incremented name. These
+ * commands are disposed when the menu itself is disposed.
  */
 function createContextMenu(fbWidget: FileBrowser, openWith: Menu):  Menu {
   let { commands, keymap } = fbWidget;

+ 2 - 2
src/imagewidget/plugin.ts

@@ -18,7 +18,7 @@ import {
 } from '../docregistry';
 
 import {
-  cmdIds as filebrowserCmdIds
+  CommandIDs as FileBrowserCommandIDs
 } from '../filebrowser';
 
 import {
@@ -73,7 +73,7 @@ function activate(app: JupyterLab, registry: IDocumentRegistry, palette: IComman
 
   // Handle state restoration.
   restorer.restore(tracker, {
-    command: filebrowserCmdIds.open,
+    command: FileBrowserCommandIDs.open,
     args: widget => ({ path: widget.context.path, factory: FACTORY }),
     name: widget => widget.context.path
   });

+ 10 - 4
src/launcher/plugin.ts

@@ -18,7 +18,7 @@ import {
 } from '../console';
 
 import {
-  cmdIds as filebrowserCmdIds
+  CommandIDs as FileBrowserCommandIDs
 } from '../filebrowser';
 
 import {
@@ -48,7 +48,13 @@ import {
 const plugin: JupyterLabPlugin<ILauncher> = {
   activate,
   id: 'jupyter.services.launcher',
-  requires: [IServiceManager, IPathTracker, ICommandPalette, ICommandLinker, IInstanceRestorer],
+  requires: [
+    IServiceManager,
+    IPathTracker,
+    ICommandPalette,
+    ICommandLinker,
+    IInstanceRestorer
+  ],
   provides: ILauncher,
   autoStart: true
 };
@@ -85,7 +91,7 @@ function activate(app: JupyterLab, services: IServiceManager, pathTracker: IPath
   let defaults: ILauncherItem[] = [
     {
       name: 'Notebook',
-      command: filebrowserCmdIds.newNotebook
+      command: FileBrowserCommandIDs.newNotebook
     },
     {
       name: 'Code Console',
@@ -93,7 +99,7 @@ function activate(app: JupyterLab, services: IServiceManager, pathTracker: IPath
     },
     {
       name: 'Text Editor',
-      command: filebrowserCmdIds.newTextFile
+      command: FileBrowserCommandIDs.newTextFile
     }
   ];
 

+ 12 - 7
src/markdownwidget/plugin.ts

@@ -14,7 +14,7 @@ import {
 } from '../docregistry';
 
 import {
-  cmdIds as filebrowserCmdIds
+  CommandIDs as FileBrowserCommandIDs
 } from '../filebrowser';
 
 import {
@@ -50,9 +50,17 @@ const FACTORY = 'Rendered Markdown';
  * The markdown handler extension.
  */
 const plugin: JupyterLabPlugin<void> = {
+  activate,
   id: 'jupyter.extensions.rendered-markdown',
   requires: [IDocumentRegistry, IRenderMime, IInstanceRestorer],
-  activate: (app: JupyterLab, registry: IDocumentRegistry, rendermime: IRenderMime, restorer: IInstanceRestorer) => {
+  autoStart: true
+};
+
+
+/**
+ * Activate the markdown plugin.
+ */
+function activate(app: JupyterLab, registry: IDocumentRegistry, rendermime: IRenderMime, restorer: IInstanceRestorer) {
     const factory = new MarkdownWidgetFactory({
       name: FACTORY,
       fileExtensions: ['.md'],
@@ -64,7 +72,7 @@ const plugin: JupyterLabPlugin<void> = {
 
     // Handle state restoration.
     restorer.restore(tracker, {
-      command: filebrowserCmdIds.open,
+      command: FileBrowserCommandIDs.open,
       args: widget => ({ path: widget.context.path, factory: FACTORY }),
       name: widget => widget.context.path
     });
@@ -77,13 +85,10 @@ const plugin: JupyterLabPlugin<void> = {
     });
 
     registry.addWidgetFactory(factory);
-  },
-  autoStart: true
-};
+  }
 
 
 /**
  * Export the plugin as default.
  */
 export default plugin;
-

+ 3 - 4
src/notebook/plugin.ts

@@ -26,12 +26,11 @@ import {
 } from '../mainmenu';
 
 import {
-  IDocumentRegistry,
-  restartKernel, selectKernelForContext
+  IDocumentRegistry, restartKernel, selectKernelForContext
 } from '../docregistry';
 
 import {
-  cmdIds as filebrowserCmdIds
+  CommandIDs as FileBrowserCommandIDs
 } from '../filebrowser';
 
 import {
@@ -141,7 +140,7 @@ function activateNotebookHandler(app: JupyterLab, registry: IDocumentRegistry, s
 
   // Handle state restoration.
   restorer.restore(tracker, {
-    command: filebrowserCmdIds.open,
+    command: FileBrowserCommandIDs.open,
     args: panel => ({ path: panel.context.path, factory: FACTORY }),
     name: panel => panel.context.path,
     when: services.ready

+ 4 - 2
src/running/plugin.ts

@@ -14,7 +14,7 @@ import {
 } from '../instancerestorer';
 
 import {
-  cmdIds as filebrowserCmdIds
+  CommandIDs as FileBrowserCommandIDs
 } from '../filebrowser';
 
 import {
@@ -66,13 +66,15 @@ function activate(app: JupyterLab, services: IServiceManager, restorer: IInstanc
     if (CONSOLE_REGEX.test(name)) {
       app.commands.execute(ConsoleCommandIDs.open, { id: model.id });
     } else {
-      app.commands.execute(filebrowserCmdIds.open, { path });
+      app.commands.execute(FileBrowserCommandIDs.open, { path });
     }
 
   });
+
   running.terminalOpenRequested.connect((sender, model) => {
     app.commands.execute(terminalCmdIds.open, { name: model.name });
   });
+
   // Rank has been chosen somewhat arbitrarily to give priority to the running
   // sessions widget in the sidebar.
   app.shell.addToLeftArea(running, { rank: 50 });