Browse Source

Remove the notebook codemirror plugin

Steven Silvester 8 years ago
parent
commit
d56b2cf8cd

+ 0 - 1
jupyterlab/src/extensions.ts

@@ -25,7 +25,6 @@ module.exports = [
   require('../../lib/mainmenu/plugin').plugin,
   require('../../lib/markdownwidget/plugin').plugin,
   require('../../lib/notebook/plugin').plugin,
-  require('../../lib/notebook/codemirror/plugin').plugin,
   require('../../lib/rendermime/plugin').plugin,
   require('../../lib/running/plugin').plugin,
   require('../../lib/services/plugin').plugin,

+ 0 - 113
src/notebook/codemirror/highlight.css

@@ -1,113 +0,0 @@
-/*-----------------------------------------------------------------------------
-| Copyright (c) Jupyter Development Team.
-| Distributed under the terms of the Modified BSD License.
-|----------------------------------------------------------------------------*/
-
-
-/*
-
-Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
-Adapted from GitHub theme
-
-*/
-
-.cm-s-ipython span.cm-variable {
-  color: black;
-}
-
-
-.cm-s-ipython span.cm-variable-2 {
-  color: #1a1a1a;
-}
-.cm-s-ipython span.cm-variable-3 {
-  color: #333;
-}
-
-
-.cm-s-ipython span.cm-punctuation {
-  color: #05a;
-}
-
-
-.cm-s-ipython span.cm-property {
-  color: #05a;
-}
-
-
-.cm-s-ipython span.cm-operator {
-  color: #AA22FF;
-  font-weight: bold;
-}
-
-
-.cm-s-ipython span.cm-comment {
-  color: #408080;
-  font-style: italic;
-}
-
-
-.cm-s-ipython span.cm-string {
-  color: #BA2121;
-}
-
-
-.cm-s-ipython span.cm-string-2 {
-  color: #05a;
-}
-
-
-.cm-s-ipython span.cm-meta {
-  color: #AA22FF;
-}
-
-
-.cm-s-ipython span.cm-qualifier {
-  color: #555;
-}
-
-
-.cm-s-ipython span.cm-builtin {
-  color: #008000;
-}
-
-
-.cm-s-ipython span.cm-bracket {
-  color: #997;
-}
-
-
-.cm-s-ipython span.cm-tag {
-  color: #170;
-}
-
-
-.cm-s-ipython span.cm-attribute {
-  color: #00c;
-}
-
-
-.cm-s-ipython span.cm-header {
-  color: blue;
-}
-
-
-.cm-s-ipython span.cm-quote {
-  color: #090;
-}
-
-
-.cm-s-ipython span.cm-link {
-  text-decoration: underline;
-}
-
-
-.cm-s-ipython span.cm-error {
-  color: #f00;
-}
-
-
-.cm-s-ipython span.cm-tab {
-  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
-  background-position: right;
-  background-repeat: no-repeat;
-}

+ 0 - 49
src/notebook/codemirror/index.css

@@ -1,49 +0,0 @@
-/*-----------------------------------------------------------------------------
-| Copyright (c) Jupyter Development Team.
-| Distributed under the terms of the Modified BSD License.
-|----------------------------------------------------------------------------*/
-
-@import './highlight.css';
-
-
-.CodeMirror {
-  line-height: var(--jp-code-line-height);
-  font-size: var(--jp-code-font-size);
-  height: auto;
-  /* Changed to auto to autogrow */
-  background: none;
-}
-
-
-.CodeMirror pre {
-  padding: 0;
-  border: 0;
-  border-radius: 0;
-}
-
-
-/* This causes https://github.com/jupyter/jupyterlab/issues/522 */
-/* May not cause it not because we changed it! */
-.CodeMirror-lines {
-  padding: var(--jp-code-padding);
-}
-
-
-.CodeMirror-linenumbers {
-  padding: 0 4px 0 4px;
-}
-
-
-.jp-CodeMirrorWidget-static {
-  margin: var(--jp-code-padding);
-}
-
-
-.jp-CodeMirrorWidget, .jp-CodeMirrorWidget-static {
-  cursor: text;
-}
-
-
-.jp-CodeMirrorWidget.jp-mod-readOnly .CodeMirror-cursor {
-  display: none;
-}

+ 0 - 95
src/notebook/codemirror/index.ts

@@ -1,95 +0,0 @@
-// Copyright (c) Jupyter Development Team.
-// Distributed under the terms of the Modified BSD License.
-
-import {
-  NotebookPanel, Notebook
-} from '../notebook';
-
-import {
-  BaseCellWidget, CodeCellWidget, CodeCellEditorWidget
-} from '../cells';
-
-import {
-  IEditorServices, IEditorFactory
-} from '../../codeeditor';
-
-import {
-  CodeMirrorEditorFactory, CodeMirrorMimeTypeService
-} from '../../codemirror';
-
-
-/**
- * Create a base cell renderer.
- */
-export
-function createBaseCellRenderer(factory?: IEditorFactory): BaseCellWidget.Renderer {
-  factory = factory || new CodeMirrorEditorFactory();
-  return new BaseCellWidget.Renderer({
-    editorFactory: host => factory.newInlineEditor(host.node, {
-      wordWrap: true
-    })
-  });
-};
-
-
-/**
- * Create a new code cell renderer.
- */
-export
-function createCodeCellRenderer(factory?: IEditorFactory): CodeCellWidget.Renderer {
-  factory = factory || new CodeMirrorEditorFactory();
-  return new CodeCellWidget.Renderer({
-    editorFactory: host => factory.newInlineEditor(host.node, {
-      extra: {
-        matchBrackets: true,
-        autoCloseBrackets: true
-      }
-    })
-  });
-}
-
-
-/**
- * Create a cell editor widget given a factory.
- */
-export
-function createCellEditor(factory?: IEditorFactory): CodeCellEditorWidget {
-  factory = factory || new CodeMirrorEditorFactory();
-  return new CodeCellEditorWidget(
-    host => factory.newInlineEditor(host.node, {
-      wordWrap: true
-    })
-  );
-}
-
-
-/**
- * Create a notebook renderer.
- */
-export
-function createNotebookRenderer(editorServices?: IEditorServices): Notebook.Renderer {
-  editorServices = editorServices || {
-    factory: new CodeMirrorEditorFactory(),
-    mimeTypeService: new CodeMirrorMimeTypeService()
-  };
-  let factory = editorServices.factory;
-  const editorMimeTypeService = editorServices.mimeTypeService;
-  const codeCellRenderer = createCodeCellRenderer(factory);
-  const rawCellRenderer = createBaseCellRenderer(factory);
-  const markdownCellRenderer = rawCellRenderer;
-  return new Notebook.Renderer({
-    codeCellRenderer, markdownCellRenderer, rawCellRenderer, editorMimeTypeService
-  });
-}
-
-
-/**
- * Create a notebook panel renderer.
- */
-export
-function createNotebookPanelRenderer(editorServices?: IEditorServices): NotebookPanel.IRenderer {
-  const notebookRenderer = createNotebookRenderer(editorServices);
-  return new NotebookPanel.Renderer({
-    notebookRenderer
-  });
-}

+ 0 - 38
src/notebook/codemirror/plugin.ts

@@ -1,38 +0,0 @@
-// Copyright (c) Jupyter Development Team.
-// Distributed under the terms of the Modified BSD License.
-
-import {
-  NotebookPanel
-} from '../notebook';
-
-import {
-  JupyterLab, JupyterLabPlugin
-} from '../../application';
-
-import {
-  IEditorServices
-} from '../../codeeditor';
-
-import {
-  createNotebookPanelRenderer
-} from '.';
-
-
-/**
- * The provider for a notebook's code mirror renderer.
- */
-export
-const plugin: JupyterLabPlugin<NotebookPanel.IRenderer> = {
-  id: 'jupyter.services.notebook.codemirror.renderer',
-  requires: [IEditorServices],
-  provides: NotebookPanel.IRenderer,
-  activate: activateRendererProvider
-};
-
-/**
- * Activates the renderer provider extension.
- */
-function activateRendererProvider(app: JupyterLab, editorServices: IEditorServices): NotebookPanel.IRenderer {
-  return createNotebookPanelRenderer(editorServices);
-}
-

+ 0 - 8
src/notebook/notebook/panel.ts

@@ -474,12 +474,4 @@ export namespace NotebookPanel {
       readonly notebookRenderer: Notebook.Renderer;
     }
   }
-
-  /* tslint:disable */
-  /**
-   * The notebook renderer token.
-   */
-  export
-  const IRenderer = new Token<IRenderer>('jupyter.services.notebook.renderer');
-  /* tslint:enable */
 }

+ 14 - 23
src/notebook/notebook/widget.ts

@@ -70,7 +70,7 @@ import {
 } from '../../rendermime';
 
 import {
-  IEditorMimeTypeService
+  IEditorMimeTypeService, IEditorServices
 } from '../../codeeditor';
 
 import {
@@ -540,7 +540,6 @@ namespace StaticNotebook {
    */
   export
   class Renderer implements IRenderer {
-
     /**
      * A code cell renderer.
      */
@@ -565,10 +564,17 @@ namespace StaticNotebook {
      * Creates a new renderer.
      */
     constructor(options: Renderer.IOptions) {
-      this.codeCellRenderer = options.codeCellRenderer;
-      this.markdownCellRenderer = options.markdownCellRenderer;
-      this.rawCellRenderer = options.rawCellRenderer;
-      this.editorMimeTypeService = options.editorMimeTypeService;
+      let factory = options.editorServices.factory;
+      this.codeCellRenderer = new CodeCellWidget.Renderer({
+        editorFactory: host => factory.newInlineEditor(host.node, {})
+      });
+      this.markdownCellRenderer = new BaseCellWidget.Renderer({
+        editorFactory: host => factory.newInlineEditor(host.node, {
+          wordWrap: true
+        })
+      });
+      this.rawCellRenderer = this.markdownCellRenderer;
+      this.editorMimeTypeService = options.editorServices.mimeTypeService;
     }
 
     /**
@@ -635,24 +641,9 @@ namespace StaticNotebook {
     export
     interface IOptions {
       /**
-       * A code cell renderer.
-       */
-      readonly codeCellRenderer: CodeCellWidget.IRenderer;
-
-      /**
-       * A markdown cell renderer.
-       */
-      readonly markdownCellRenderer: BaseCellWidget.IRenderer;
-
-      /**
-       * A raw cell renderer.
-       */
-      readonly rawCellRenderer: BaseCellWidget.IRenderer;
-
-      /**
-       * A mime type service of a code editor.
+       * The editor services.
        */
-      readonly editorMimeTypeService: IEditorMimeTypeService;
+      readonly editorServices: IEditorServices;
     }
   }
 }

+ 11 - 3
src/notebook/plugin.ts

@@ -13,6 +13,10 @@ import {
   IClipboard
 } from '../clipboard';
 
+import {
+  IEditorServices
+} from '../codeeditor';
+
 import {
   ICommandPalette
 } from '../commandpalette';
@@ -48,7 +52,7 @@ import {
 
 import {
   INotebookTracker, NotebookModelFactory, NotebookPanel, NotebookTracker,
-  NotebookWidgetFactory, NotebookActions
+  NotebookWidgetFactory, NotebookActions, Notebook
 } from './index';
 
 
@@ -130,7 +134,7 @@ const plugin: JupyterLabPlugin<INotebookTracker> = {
     IMainMenu,
     ICommandPalette,
     IInspector,
-    NotebookPanel.IRenderer,
+    IEditorServices,
     IStateDB,
     ILayoutRestorer
   ],
@@ -142,7 +146,11 @@ const plugin: JupyterLabPlugin<INotebookTracker> = {
 /**
  * Activate the notebook handler extension.
  */
-function activateNotebookHandler(app: JupyterLab, registry: IDocumentRegistry, services: IServiceManager, rendermime: IRenderMime, clipboard: IClipboard, mainMenu: IMainMenu, palette: ICommandPalette, inspector: IInspector, renderer: NotebookPanel.IRenderer, state: IStateDB, layout: ILayoutRestorer): INotebookTracker {
+function activateNotebookHandler(app: JupyterLab, registry: IDocumentRegistry, services: IServiceManager, rendermime: IRenderMime, clipboard: IClipboard, mainMenu: IMainMenu, palette: ICommandPalette, inspector: IInspector, editorServices: IEditorServices, state: IStateDB, layout: ILayoutRestorer): INotebookTracker {
+
+  const notebookRenderer = new Notebook.Renderer({ editorServices });
+  const renderer = new NotebookPanel.Renderer({ notebookRenderer });
+
   const factory = new NotebookWidgetFactory({
     name: FACTORY,
     fileExtensions: ['.ipynb'],