update mode on rename

Min RK 12 years ago
parent 03779746ab
commit 7ede5e291f

@ -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);
}
);
};

Loading…
Cancel
Save