Bläddra i källkod

Use codemirror to get the desired langugage for a kernel

Steven Silvester 8 år sedan
förälder
incheckning
b2f0f5b7fe
3 ändrade filer med 9 tillägg och 4 borttagningar
  1. 7 3
      src/docmanager/default.ts
  2. 1 1
      src/filebrowser/buttons.ts
  3. 1 0
      typings/codemirror/codemirror.d.ts

+ 7 - 3
src/docmanager/default.ts

@@ -5,6 +5,8 @@
 import * as CodeMirror
   from 'codemirror';
 
+import 'codemirror/mode/meta';
+
 import {
   IKernelId
 } from 'jupyter-js-services';
@@ -215,9 +217,11 @@ class ModelFactory {
   /**
    * Get the preferred kernel language given a path.
    */
-  preferredLanguage(path: string): string {
-    // TODO: use a mapping of extension to language.
-    return '';
+  preferredLanguage(ext: string): string {
+    let mode = CodeMirror.findModeByExtension(ext.slice(1));
+    if (mode) {
+      return mode.mode;
+    }
   }
 
   private _isDisposed = false;

+ 1 - 1
src/filebrowser/buttons.ts

@@ -503,7 +503,7 @@ class CreateNewHandler extends Widget {
   private _model: FileBrowserModel = null;
   private _manager: DocumentManager = null;
   private _sessions: ISessionId[] = null;
-  private _sentinal = 'UNKOWN_EXTENSION';
+  private _sentinal = 'UNKNOWN_EXTENSION';
   private _prevExt = '';
   private _extensions: string[] = [];
 }

+ 1 - 0
typings/codemirror/codemirror.d.ts

@@ -21,6 +21,7 @@ declare module CodeMirror {
       mime: string;
     }
     function findModeByName(name: string): modespec;
+    function findModeByExtension(name: string): modespec;
     function findModeByFileName(name: string): modespec;
     function findModeByMIME(mime: string): modespec;