diff --git a/IPython/html/static/edit/js/editor.js b/IPython/html/static/edit/js/editor.js
index 27bdd4f95..8ab79ec17 100644
--- a/IPython/html/static/edit/js/editor.js
+++ b/IPython/html/static/edit/js/editor.js
@@ -73,22 +73,7 @@ function($,
// Setting the file's initial value creates a history entry,
// which we don't want.
cm.clearHistory();
-
- // Find and load the highlighting mode,
- // first by mime-type, then by file extension
- var modeinfo = CodeMirror.findModeByMIME(model.mimetype);
- if (modeinfo.mode === "null") {
- // find by mime failed, use find by ext
- var ext_idx = model.name.lastIndexOf('.');
-
- if (ext_idx > 0) {
- // CodeMirror.findModeByExtension wants extension without '.'
- modeinfo = CodeMirror.findModeByExtension(model.name.slice(ext_idx + 1));
- }
- }
- if (modeinfo) {
- that.set_codemirror_mode(modeinfo);
- }
+ that._set_mode_for_model(model);
that.save_enabled = true;
that.generation = cm.changeGeneration();
that.events.trigger("file_loaded.Editor", model);
@@ -100,6 +85,26 @@ function($,
}
);
};
+
+ Editor.prototype._set_mode_for_model = function (model) {
+ /** Set the CodeMirror mode based on the file model */
+
+ // Find and load the highlighting mode,
+ // first by mime-type, then by file extension
+ var modeinfo = CodeMirror.findModeByMIME(model.mimetype);
+ if (modeinfo.mode === "null") {
+ // find by mime failed, use find by ext
+ var ext_idx = model.name.lastIndexOf('.');
+
+ if (ext_idx > 0) {
+ // CodeMirror.findModeByExtension wants extension without '.'
+ modeinfo = CodeMirror.findModeByExtension(model.name.slice(ext_idx + 1));
+ }
+ }
+ if (modeinfo) {
+ this.set_codemirror_mode(modeinfo);
+ }
+ };
Editor.prototype.set_codemirror_mode = function (modeinfo) {
/** set the codemirror mode from a modeinfo struct */
@@ -120,9 +125,10 @@ function($,
var parent = utils.url_path_split(this.file_path)[0];
var new_path = utils.url_path_join(parent, new_name);
return this.contents.rename(this.file_path, new_path).then(
- function (json) {
- that.file_path = json.path;
- that.events.trigger('file_renamed.Editor', json);
+ function (model) {
+ that.file_path = model.path;
+ that.events.trigger('file_renamed.Editor', model);
+ that._set_mode_for_model(model);
}
);
};