handling explicitly provided modes from kernelspec.language_info

This commit is contained in:
Nicholas Bollweg (Nick) 2014-11-28 16:43:07 -05:00
parent eef949eda9
commit 5858350cc3
2 changed files with 9 additions and 12 deletions

View File

@ -612,21 +612,19 @@ define([
* require and callback with the resolveable mode string: mime or
* custom name
*/
if (typeof mode != "string") mode = mode.name;
if (CodeMirror.modes.hasOwnProperty(mode)) {
var modename = (typeof mode == "string") ? mode :
mode.mode || mode.name;
if (CodeMirror.modes.hasOwnProperty(modename)) {
callback(mode);
return;
}
var info = CodeMirror.findModeByName(mode) ||
CodeMirror.findModeByExtension(mode.split(".").slice(-1)) ||
CodeMirror.findModeByMIME(mode);
if(!info){
errback && errback();
return;
}
var info = (mode && mode.mode && mode.mime && mode) ||
CodeMirror.findModeByName(modename) ||
CodeMirror.findModeByExtension(modename.split(".").slice(-1)) ||
CodeMirror.findModeByMIME(modename);
require([
// might want to use CodeMirror.modeURL here

View File

@ -1585,10 +1585,9 @@ define([
}
this.codemirror_mode = newmode;
codecell.CodeCell.options_default.cm_config.mode = newmode;
var modename = newmode.mode || newmode.name || newmode;
var that = this;
utils.requireCodeMirrorMode(modename, function () {
utils.requireCodeMirrorMode(newmode, function () {
that.get_cells().map(function(cell, i) {
if (cell.cell_type === 'code'){
cell.code_mirror.setOption('mode', newmode);