瀏覽代碼

Merge pull request #1904 from blink1073/more-extensions

More repo structure
Afshin Darian 8 年之前
父節點
當前提交
5ec4b3cf37

+ 5 - 5
examples/lab/index.js

@@ -12,17 +12,17 @@ require('jupyterlab/lib/default-theme/index.css');
 
 var mods = [
   require('jupyterlab/lib/about-extension'),
-  require('jupyterlab/lib/application/plugin'),
+  require('jupyterlab/lib/application-extension'),
   require('jupyterlab/lib/apputils/plugin'),
-  require('jupyterlab/lib/codemirror/plugin'),
+  require('jupyterlab/lib/codemirror-extension'),
   require('jupyterlab/lib/commandlinker/plugin'),
   require('jupyterlab/lib/commandpalette/plugin'),
-  require('jupyterlab/lib/completer/plugin'),
-  require('jupyterlab/lib/console/plugin'),
+  require('jupyterlab/lib/completer-extension'),
+  require('jupyterlab/lib/console-extension'),
   require('jupyterlab/lib/csvwidget/plugin'),
   require('jupyterlab/lib/docmanager/plugin'),
   require('jupyterlab/lib/docregistry/plugin'),
-  require('jupyterlab/lib/editorwidget/plugin'),
+  require('jupyterlab/lib/editorwidget-extension'),
   require('jupyterlab/lib/faq-extension'),
   require('jupyterlab/lib/filebrowser/plugin'),
   require('jupyterlab/lib/help-extension'),

+ 5 - 5
jupyterlab/src/main.ts

@@ -19,17 +19,17 @@ polyfill();
 /* tslint:disable */
 const mods: JupyterLab.IPluginModule[] = [
   require('../../lib/about-extension'),
-  require('../../lib/application/plugin'),
+  require('../../lib/application-extension'),
   require('../../lib/apputils/plugin'),
-  require('../../lib/codemirror/plugin'),
+  require('../../lib/codemirror-extension'),
   require('../../lib/commandlinker/plugin'),
   require('../../lib/commandpalette/plugin'),
-  require('../../lib/completer/plugin'),
-  require('../../lib/console/plugin'),
+  require('../../lib/completer-extension'),
+  require('../../lib/console-extension'),
   require('../../lib/csvwidget/plugin'),
   require('../../lib/docmanager/plugin'),
   require('../../lib/docregistry/plugin'),
-  require('../../lib/editorwidget/plugin'),
+  require('../../lib/editorwidget-extension'),
   require('../../lib/faq-extension'),
   require('../../lib/filebrowser/plugin'),
   require('../../lib/help-extension'),

+ 17 - 2
src/application/plugin.ts → src/application-extension/index.ts

@@ -2,14 +2,29 @@
 // Distributed under the terms of the Modified BSD License.
 
 import {
-  JupyterLab, JupyterLabPlugin, CommandIDs
-} from './';
+  JupyterLab, JupyterLabPlugin
+} from '../application';
 
 import {
   ICommandPalette
 } from '../commandpalette';
 
 
+/**
+ * The command IDs used by the application plugin.
+ */
+namespace CommandIDs {
+  export
+  const closeAll: string = 'main-jupyterlab:close-all';
+
+  export
+  const activateNextTab: string = 'main-jupyterlab:activate-next-tab';
+
+  export
+  const activatePreviousTab: string = 'main-jupyterlab:activate-previous-tab';
+};
+
+
 /**
  * The main extension.
  */

+ 0 - 16
src/application/index.ts

@@ -17,22 +17,6 @@ export { ModuleLoader } from './loader';
 export { ApplicationShell } from './shell';
 
 
-/**
- * The command IDs used by the application plugin.
- */
-export
-namespace CommandIDs {
-  export
-  const closeAll: string = 'main-jupyterlab:close-all';
-
-  export
-  const activateNextTab: string = 'main-jupyterlab:activate-next-tab';
-
-  export
-  const activatePreviousTab: string = 'main-jupyterlab:activate-previous-tab';
-};
-
-
 /**
  * The type for all JupyterLab plugins.
  */

+ 1 - 0
src/apputils/index.css

@@ -9,4 +9,5 @@
 @import './hoverbox.css';
 @import './iframe.css';
 @import './jsoneditor.css';
+@import './materialcolors.css';
 @import './styling.css';

+ 0 - 0
src/basestyle/materialcolors.css → src/apputils/materialcolors.css


+ 25 - 10
src/codemirror/plugin.ts → src/codemirror-extension/index.ts

@@ -18,21 +18,36 @@ import {
   IEditorServices
 } from '../codeeditor';
 
+import {
+  editorServices, CodeMirrorEditor
+} from '../codemirror';
+
 import {
   ICommandPalette
 } from '../commandpalette';
 
 import {
-  IEditorTracker, CommandIDs as EditorCommandIDs
+  IEditorTracker
 } from '../editorwidget';
 
 import {
   IMainMenu
 } from '../mainmenu';
 
-import {
-  editorServices, CodeMirrorEditor, CommandIDs
-} from '.';
+
+/**
+ * The command IDs used by the codemirror plugin.
+ */
+namespace CommandIDs {
+  export
+  const matchBrackets = 'codemirror:match-brackets';
+
+  export
+  const vimMode = 'codemirror:vim-mode';
+
+  export
+  const changeTheme = 'codemirror:change-theme';
+};
 
 
 /**
@@ -130,8 +145,8 @@ function activateEditorCommands(app: JupyterLab, tracker: IEditorTracker, mainMe
       args: { theme: name }
     }));
 
-    menu.addItem({ command: EditorCommandIDs.lineNumbers });
-    menu.addItem({ command: EditorCommandIDs.lineWrap });
+    menu.addItem({ command: 'editor:line-numbers' });
+    menu.addItem({ command: 'editor:line-wrap' });
     menu.addItem({ command: CommandIDs.matchBrackets });
     menu.addItem({ command: CommandIDs.vimMode });
     menu.addItem({ type: 'separator' });
@@ -153,12 +168,12 @@ function activateEditorCommands(app: JupyterLab, tracker: IEditorTracker, mainMe
   });
 
   [
-    EditorCommandIDs.lineNumbers,
-    EditorCommandIDs.lineWrap,
+    'editor:line-numbers',
+    'editor:line-wrap',
     CommandIDs.matchBrackets,
     CommandIDs.vimMode,
-    EditorCommandIDs.createConsole,
-    EditorCommandIDs.runCode
+    'editor-create-console',
+    'editor:run-code'
   ].forEach(command => palette.addItem({ command, category: 'Editor' }));
 
 }

+ 0 - 16
src/codemirror/index.ts

@@ -27,19 +27,3 @@ const editorServices: IEditorServices = {
   factoryService: new CodeMirrorEditorFactory(),
   mimeTypeService: new CodeMirrorMimeTypeService()
 };
-
-
-/**
- * The command IDs used by the codemirror plugin.
- */
-export
-namespace CommandIDs {
-  export
-  const matchBrackets = 'codemirror:match-brackets';
-
-  export
-  const vimMode = 'codemirror:vim-mode';
-
-  export
-  const changeTheme = 'codemirror:change-theme';
-};

+ 29 - 4
src/completer/plugin.ts → src/completer-extension/index.ts

@@ -9,6 +9,11 @@ import {
   JupyterLab, JupyterLabPlugin
 } from '../application';
 
+import {
+  COMPLETER_ACTIVE_CLASS, CompleterModel,
+  CompleterWidget, CompletionHandler, ICompletionManager
+} from '../completer';
+
 import {
   IConsoleTracker
 } from '../console';
@@ -17,10 +22,30 @@ import {
   INotebookTracker
 } from '../notebook';
 
-import {
-  CommandIDs, COMPLETER_ACTIVE_CLASS, CompleterModel,
-  CompleterWidget, CompletionHandler, ICompletionManager
-} from './';
+
+
+/**
+ * The command IDs used by the completer plugin.
+ */
+namespace CommandIDs {
+  export
+  const invoke = 'completer:invoke';
+
+  export
+  const invokeConsole = 'completer:invoke-console';
+
+  export
+  const invokeNotebook = 'completer:invoke-notebook';
+
+  export
+  const select = 'completer:select';
+
+  export
+  const selectConsole = 'completer:select-console';
+
+  export
+  const selectNotebook = 'completer:select-notebook';
+}
 
 
 /**

+ 0 - 25
src/completer/index.ts

@@ -23,31 +23,6 @@ export * from './model';
 export * from './widget';
 
 
-/**
- * The command IDs used by the completer plugin.
- */
-export
-namespace CommandIDs {
-  export
-  const invoke: string = 'completer:invoke';
-
-  export
-  const invokeConsole: string = 'completer:invoke-console';
-
-  export
-  const invokeNotebook: string = 'completer:invoke-notebook';
-
-  export
-  const select: string = 'completer:select';
-
-  export
-  const selectConsole: string = 'completer:select-console';
-
-  export
-  const selectNotebook: string = 'completer:select-notebook';
-}
-
-
 
 /* tslint:disable */
 /**

+ 41 - 3
src/console/plugin.ts → src/console-extension/index.ts

@@ -37,6 +37,10 @@ import {
   Dialog, ILayoutRestorer, showDialog
 } from '../apputils';
 
+import {
+  IConsoleTracker, ICreateConsoleArgs, ConsolePanel
+} from '../console';
+
 import {
   selectKernel
 } from '../docregistry';
@@ -57,10 +61,44 @@ import {
   IServiceManager
 } from '../services';
 
-import {
-  IConsoleTracker, ICreateConsoleArgs, ConsolePanel, CommandIDs
-} from './index';
 
+/**
+ * The command IDs used by the console plugin.
+ */
+namespace CommandIDs {
+  export
+  const create = 'console:create';
+
+  export
+  const clear = 'console:clear';
+
+  export
+  const run = 'console:run';
+
+  export
+  const runForced = 'console:run-forced';
+
+  export
+  const linebreak = 'console:linebreak';
+
+  export
+  const interrupt = 'console:interrupt-kernel';
+
+  export
+  const restart = 'console:restart-kernel';
+
+  export
+  const closeAndShutdown = 'console:close-and-shutdown';
+
+  export
+  const open = 'console:open';
+
+  export
+  const inject = 'console:inject';
+
+  export
+  const switchKernel = 'console:switch-kernel';
+};
 
 /**
  * The console widget tracker provider.

+ 0 - 40
src/console/index.ts

@@ -14,46 +14,6 @@ export * from './tracker';
 export * from './widget';
 
 
-/**
- * The command IDs used by the console plugin.
- */
-export
-namespace CommandIDs {
-  export
-  const create: string = 'console:create';
-
-  export
-  const clear: string = 'console:clear';
-
-  export
-  const run: string = 'console:run';
-
-  export
-  const runForced: string = 'console:run-forced';
-
-  export
-  const linebreak: string = 'console:linebreak';
-
-  export
-  const interrupt: string = 'console:interrupt-kernel';
-
-  export
-  const restart: string = 'console:restart-kernel';
-
-  export
-  const closeAndShutdown: string = 'console:close-and-shutdown';
-
-  export
-  const open: string = 'console:open';
-
-  export
-  const inject: string = 'console:inject';
-
-  export
-  const switchKernel: string = 'console:switch-kernel';
-};
-
-
 /**
  * The arguments used to create a console.
  */

+ 2 - 6
src/default-theme/index.css

@@ -4,8 +4,8 @@
 |----------------------------------------------------------------------------*/
 
 
-/* Variables and mixins */
-@import '../basestyle/materialcolors.css';
+/* Variables and common functions */
+@import '../apputils/index.css';
 @import './variables.css';
 
 
@@ -13,10 +13,6 @@
 @import '../application/index.css';
 
 
-/* Commonly shared functions */
-@import '../apputils/index.css';
-
-
 /* Individual plugins */
 @import '../about-extension/index.css';
 @import '../cells/index.css';

+ 4 - 4
src/editorwidget/plugin.ts → src/editorwidget-extension/index.ts

@@ -18,12 +18,12 @@ import {
 } from '../docregistry';
 
 import {
-  CommandIDs as FileBrowserCommandIDs
-} from '../filebrowser';
+  IEditorTracker, EditorWidget, EditorWidgetFactory, addDefaultCommands
+} from '../editorwidget';
 
 import {
-  IEditorTracker, EditorWidget, EditorWidgetFactory, addDefaultCommands
-} from './';
+  CommandIDs as FileBrowserCommandIDs
+} from '../filebrowser';
 
 
 /**

+ 6 - 29
src/editorwidget/index.ts

@@ -21,10 +21,6 @@ import {
   IInstanceTracker
 } from '../apputils';
 
-import {
-  CommandIDs as ConsoleCommandIDs
-} from '../console';
-
 import {
   EditorWidget
 } from './widget';
@@ -32,25 +28,6 @@ import {
 export * from './widget';
 
 
-/**
- * The command IDs used by the editor plugin.
- */
-export
-namespace CommandIDs {
-  export
-  const lineNumbers: string = 'editor:line-numbers';
-
-  export
-  const lineWrap: string = 'editor:line-wrap';
-
-  export
-  const createConsole: string = 'editor:create-console';
-
-  export
-  const runCode: string = 'editor:run-code';
-};
-
-
 /**
  * A class that tracks editor widgets.
  */
@@ -108,17 +85,17 @@ function addDefaultCommands(tracker: IEditorTracker, commands: CommandRegistry)
     create: () => ''
   });
 
-  commands.addCommand(CommandIDs.lineNumbers, {
+  commands.addCommand('editor:line-numbers', {
     execute: args => { toggleLineNums(args); },
     label: 'Toggle Line Numbers'
   });
 
-  commands.addCommand(CommandIDs.lineWrap, {
+  commands.addCommand('editor:line-wrap', {
     execute: args => { toggleLineWrap(args); },
     label: 'Toggle Line Wrap'
   });
 
-  commands.addCommand(CommandIDs.createConsole, {
+  commands.addCommand('editor:create-console', {
     execute: args => {
       let widget = tracker.currentWidget;
       if (!widget) {
@@ -129,13 +106,13 @@ function addDefaultCommands(tracker: IEditorTracker, commands: CommandRegistry)
         preferredLanguage: widget.context.model.defaultKernelLanguage,
         activate: args['activate']
       };
-      return commands.execute(ConsoleCommandIDs.create, options)
+      return commands.execute('console:create', options)
         .then(id => { sessionIdProperty.set(widget, id); });
     },
     label: 'Create Console for Editor'
   });
 
-  commands.addCommand(CommandIDs.runCode, {
+  commands.addCommand('editor:run-code', {
     execute: args => {
       let widget = tracker.currentWidget;
       if (!widget) {
@@ -156,7 +133,7 @@ function addDefaultCommands(tracker: IEditorTracker, commands: CommandRegistry)
         code: editor.model.value.text.substring(start, end),
         activate: args['activate']
       };
-      return commands.execute(ConsoleCommandIDs.inject, options);
+      return commands.execute('console:inject', options);
     },
     label: 'Run Code'
   });

+ 1 - 1
src/landing-extension/index.ts

@@ -31,7 +31,7 @@ import {
  */
 namespace CommandIDs {
   export
-  const open: string = 'landing-jupyterlab:open';
+  const open = 'landing-jupyterlab:open';
 };
 
 

+ 1 - 5
src/landing-extension/widget.ts

@@ -17,10 +17,6 @@ import {
   VDomModel, VDomWidget
 } from '../apputils';
 
-import {
-  CommandIDs as ConsoleCommandIDs
-} from '../console';
-
 import {
   CommandIDs as FileBrowserCommandIDs
 } from '../filebrowser';
@@ -149,7 +145,7 @@ class LandingModel extends VDomModel {
     this.headerText = 'Start a new activity';
     this.activities =
     [['Notebook', FileBrowserCommandIDs.newNotebook],
-     ['Code Console', ConsoleCommandIDs.create],
+     ['Code Console', 'console:create'],
      ['Text Editor', FileBrowserCommandIDs.newTextFile]];
 
     if (terminalsAvailable) {

+ 1 - 5
src/launcher/plugin.ts

@@ -17,10 +17,6 @@ import {
   ICommandPalette
 } from '../commandpalette';
 
-import {
-  CommandIDs as ConsoleCommandIDs
-} from '../console';
-
 import {
   CommandIDs as FileBrowserCommandIDs
 } from '../filebrowser';
@@ -97,7 +93,7 @@ function activate(app: JupyterLab, services: IServiceManager, pathTracker: IPath
     },
     {
       name: 'Code Console',
-      command: ConsoleCommandIDs.create
+      command: 'console:create'
     },
     {
       name: 'Text Editor',

+ 1 - 5
src/running/plugin.ts

@@ -9,10 +9,6 @@ import {
   ILayoutRestorer
 } from '../apputils';
 
-import {
-  CommandIDs as ConsoleCommandIDs
-} from '../console';
-
 import {
   CommandIDs as FileBrowserCommandIDs
 } from '../filebrowser';
@@ -64,7 +60,7 @@ function activate(app: JupyterLab, services: IServiceManager, restorer: ILayoutR
     let path = model.notebook.path;
     let name = path.split('/').pop();
     if (CONSOLE_REGEX.test(name)) {
-      app.commands.execute(ConsoleCommandIDs.open, { id: model.id });
+      app.commands.execute('console:open', { id: model.id });
     } else {
       app.commands.execute(FileBrowserCommandIDs.open, { path });
     }

+ 11 - 23
src/shortcuts-extension/index.ts

@@ -2,25 +2,13 @@
 // Distributed under the terms of the Modified BSD License.
 
 import {
-  JupyterLab, JupyterLabPlugin, CommandIDs as ApplicationCommandIDs
+  JupyterLab, JupyterLabPlugin
 } from '../application';
 
 import {
   CommandIDs as CommandPaletteCommandIDs
 } from '../commandpalette';
 
-import {
-  CommandIDs as CompleterCommandIDs, COMPLETER_ENABLED_CLASS
-} from '../completer';
-
-import {
-  CommandIDs as ConsoleCommandIDs
-} from '../console';
-
-import {
-  CommandIDs as EditorWidgetCommandIDs
-} from '../editorwidget';
-
 import {
   CommandIDs as FileBrowserCommandIDs
 } from '../filebrowser';
@@ -67,12 +55,12 @@ import {
  */
 const SHORTCUTS = [
   {
-    command: ApplicationCommandIDs.activateNextTab,
+    command: 'main-jupyterlab:activate-next-tab',
     selector: 'body',
     keys: ['Ctrl Shift ]']
   },
   {
-    command: ApplicationCommandIDs.activatePreviousTab,
+    command: 'main-jupyterlab:activate-previous-tab',
     selector: 'body',
     keys: ['Ctrl Shift [']
   },
@@ -82,32 +70,32 @@ const SHORTCUTS = [
     keys: ['Accel Shift P']
   },
   {
-    command: CompleterCommandIDs.invokeConsole,
-    selector: `.jp-ConsolePanel .${COMPLETER_ENABLED_CLASS}`,
+    command: 'completer:invoke-console',
+    selector: '.jp-ConsolePanel .jp-mod-completer-enabled',
     keys: ['Tab']
   },
   {
-    command: CompleterCommandIDs.invokeNotebook,
-    selector: `.jp-Notebook .${COMPLETER_ENABLED_CLASS}`,
+    command: 'completer:invoke-notebook',
+    selector: '.jp-Notebook .jp-mod-completer-enabled',
     keys: ['Tab']
   },
   {
-    command: ConsoleCommandIDs.run,
+    command: 'console:run',
     selector: '.jp-CodeConsole-prompt',
     keys: ['Enter']
   },
   {
-    command: ConsoleCommandIDs.runForced,
+    command: 'console:run-forced',
     selector: '.jp-CodeConsole-prompt',
     keys: ['Shift Enter']
   },
   {
-    command: ConsoleCommandIDs.linebreak,
+    command: 'console:linebreak',
     selector: '.jp-CodeConsole-prompt',
     keys: ['Ctrl Enter']
   },
   {
-    command: EditorWidgetCommandIDs.runCode,
+    command: 'editor:run-code',
     selector: '.jp-EditorWidget',
     keys: ['Shift Enter']
   },