Преглед изворни кода

[codemirror] extracted mode services to mode module

akosyakov пре 8 година
родитељ
комит
71c798d2c2
3 измењених фајлова са 107 додато и 106 уклоњено
  1. 5 100
      src/codemirror/index.ts
  2. 100 0
      src/codemirror/mode.ts
  3. 2 6
      src/codemirror/plugin.ts

+ 5 - 100
src/codemirror/index.ts

@@ -1,100 +1,5 @@
-// Copyright (c) Jupyter Development Team.
-// Distributed under the terms of the Modified BSD License.
-
-import * as CodeMirror
-  from 'codemirror';
-
-import 'codemirror/mode/meta';
-
-import './codemirror-ipython';
-import './codemirror-ipythongfm';
-
-// Bundle other common modes
-import 'codemirror/mode/javascript/javascript';
-import 'codemirror/mode/css/css';
-import 'codemirror/mode/julia/julia';
-import 'codemirror/mode/r/r';
-import 'codemirror/mode/markdown/markdown';
-
-
-// Stub for the require function.
-declare var require: any;
-
-
-/**
- * Load a codemirror mode by file name.
- */
-export
-function loadModeByFileName(editor: CodeMirror.Editor, filename: string): void {
-  loadInfo(editor, CodeMirror.findModeByFileName(filename));
-}
-
-
-/**
- * Load a codemirror mode by mime type.
- */
-export
-function loadModeByMIME(editor: CodeMirror.Editor, mimetype: string): void {
-  loadInfo(editor, CodeMirror.findModeByMIME(mimetype));
-}
-
-
-/**
- * Load a codemirror mode by mode name.
- */
-export
-function loadModeByName(editor: CodeMirror.Editor, mode: string): void {
-  loadInfo(editor, CodeMirror.findModeByName(mode));
-}
-
-
-/**
- * Find a codemirror mode by name or CodeMirror spec.
- */
-export
-function findMode(mode: string | CodeMirror.modespec): CodeMirror.modespec {
-  let modename = (typeof mode === 'string') ? mode :
-      mode.mode || mode.name;
-  let mimetype = (typeof mode !== 'string') ? mode.mime : '';
-
-  return (
-    CodeMirror.findModeByName(modename) ||
-    CodeMirror.findModeByMIME(mimetype) ||
-    CodeMirror.modes['null']
-  );
-}
-
-
-/**
- * Require a codemirror mode by name or Codemirror spec.
- */
-export
-function requireMode(mode: string | CodeMirror.modespec): Promise<CodeMirror.modespec> {
-  let info = findMode(mode);
-
-  // Simplest, cheapest check by mode name.
-  if (CodeMirror.modes.hasOwnProperty(info.mode)) {
-    return Promise.resolve(info);
-  }
-
-  // Fetch the mode asynchronously.
-  return new Promise<CodeMirror.modespec>((resolve, reject) => {
-    require([`codemirror/mode/${info.mode}/${info.mode}`], () => {
-      resolve(info);
-    });
-  });
-}
-
-
-/**
- * Load a CodeMirror mode based on a mode spec.
- */
-function loadInfo(editor: CodeMirror.Editor, info: CodeMirror.modespec): void {
-  if (!info) {
-    editor.setOption('mode', 'null');
-    return;
-  }
-  requireMode(info).then(() => {
-    editor.setOption('mode', info.mime);
-  });
-}
+export * from './mode';
+export * from './model';
+export * from './editor';
+export * from './factory';
+export * from './mimetype';

+ 100 - 0
src/codemirror/mode.ts

@@ -0,0 +1,100 @@
+// Copyright (c) Jupyter Development Team.
+// Distributed under the terms of the Modified BSD License.
+
+import * as CodeMirror
+  from 'codemirror';
+
+import 'codemirror/mode/meta';
+
+import './codemirror-ipython';
+import './codemirror-ipythongfm';
+
+// Bundle other common modes
+import 'codemirror/mode/javascript/javascript';
+import 'codemirror/mode/css/css';
+import 'codemirror/mode/julia/julia';
+import 'codemirror/mode/r/r';
+import 'codemirror/mode/markdown/markdown';
+
+
+// Stub for the require function.
+declare var require: any;
+
+
+/**
+ * Load a codemirror mode by file name.
+ */
+export
+function loadModeByFileName(editor: CodeMirror.Editor, filename: string): void {
+  loadInfo(editor, CodeMirror.findModeByFileName(filename));
+}
+
+
+/**
+ * Load a codemirror mode by mime type.
+ */
+export
+function loadModeByMIME(editor: CodeMirror.Editor, mimetype: string): void {
+  loadInfo(editor, CodeMirror.findModeByMIME(mimetype));
+}
+
+
+/**
+ * Load a codemirror mode by mode name.
+ */
+export
+function loadModeByName(editor: CodeMirror.Editor, mode: string): void {
+  loadInfo(editor, CodeMirror.findModeByName(mode));
+}
+
+
+/**
+ * Find a codemirror mode by name or CodeMirror spec.
+ */
+export
+function findMode(mode: string | CodeMirror.modespec): CodeMirror.modespec {
+  let modename = (typeof mode === 'string') ? mode :
+      mode.mode || mode.name;
+  let mimetype = (typeof mode !== 'string') ? mode.mime : '';
+
+  return (
+    CodeMirror.findModeByName(modename) ||
+    CodeMirror.findModeByMIME(mimetype) ||
+    CodeMirror.modes['null']
+  );
+}
+
+
+/**
+ * Require a codemirror mode by name or Codemirror spec.
+ */
+export
+function requireMode(mode: string | CodeMirror.modespec): Promise<CodeMirror.modespec> {
+  let info = findMode(mode);
+
+  // Simplest, cheapest check by mode name.
+  if (CodeMirror.modes.hasOwnProperty(info.mode)) {
+    return Promise.resolve(info);
+  }
+
+  // Fetch the mode asynchronously.
+  return new Promise<CodeMirror.modespec>((resolve, reject) => {
+    require([`codemirror/mode/${info.mode}/${info.mode}`], () => {
+      resolve(info);
+    });
+  });
+}
+
+
+/**
+ * Load a CodeMirror mode based on a mode spec.
+ */
+function loadInfo(editor: CodeMirror.Editor, info: CodeMirror.modespec): void {
+  if (!info) {
+    editor.setOption('mode', 'null');
+    return;
+  }
+  requireMode(info).then(() => {
+    editor.setOption('mode', info.mime);
+  });
+}

+ 2 - 6
src/codemirror/plugin.ts

@@ -7,12 +7,8 @@ import {
 } from '../codeeditor';
 
 import {
-  CodeMirrorEditorFactory
-} from './factory';
-
-import {
-  CodeMirrorMimeTypeService
-} from './mimetype';
+  CodeMirrorEditorFactory, CodeMirrorMimeTypeService
+} from '.';
 
 
 /**