do not allow time window with no mode set on session while loading mode
This commit is contained in:
parent
9f57a4f99d
commit
e664a3b738
1 changed files with 26 additions and 6 deletions
|
|
@ -772,6 +772,10 @@ var EditSession = function(text, mode) {
|
|||
if (module)
|
||||
return done(module);
|
||||
|
||||
// set mode to text until loading is finished
|
||||
if (!this.$mode)
|
||||
this.$setModePlaceholder();
|
||||
|
||||
fetch(function() {
|
||||
require([mode], done);
|
||||
});
|
||||
|
|
@ -799,6 +803,27 @@ var EditSession = function(text, mode) {
|
|||
}
|
||||
};
|
||||
|
||||
this.$setModePlaceholder = function() {
|
||||
var textModeId = "ace/mode/text"
|
||||
if (!this.$modes[textModeId])
|
||||
this.$modes[textModeId] = new TextMode();
|
||||
|
||||
var tokenizer = this.$modes[textModeId].getTokenizer();
|
||||
|
||||
if (!this.bgTokenizer) {
|
||||
this.bgTokenizer = new BackgroundTokenizer(tokenizer);
|
||||
var _self = this;
|
||||
this.bgTokenizer.addEventListener("update", function(e) {
|
||||
_self._emit("tokenizerUpdate", e);
|
||||
});
|
||||
} else {
|
||||
this.bgTokenizer.setTokenizer(tokenizer);
|
||||
}
|
||||
|
||||
this.tokenRe = this.$modes[textModeId].tokenRe;
|
||||
this.nonTokenRe = this.$modes[textModeId].nonTokenRe;
|
||||
};
|
||||
|
||||
/**
|
||||
* EditSession.setMode(mode)
|
||||
* - mode (TextMode): Set a new text mode
|
||||
|
|
@ -809,6 +834,7 @@ var EditSession = function(text, mode) {
|
|||
this.$mode = null;
|
||||
this.$modeId = null;
|
||||
this.setMode = function(mode) {
|
||||
mode = mode || "ace/mode/text";
|
||||
// load on demand
|
||||
if (typeof mode === "string") {
|
||||
if (this.$modeId == mode)
|
||||
|
|
@ -823,12 +849,6 @@ var EditSession = function(text, mode) {
|
|||
_self.setMode(module);
|
||||
});
|
||||
return;
|
||||
} else if (mode == null) {
|
||||
mode = "ace/mode/text"
|
||||
this.$modeId = mode;
|
||||
this.$modes[mode] = this.$modes[mode] || (new TextMode());
|
||||
this.setMode(this.$modes[mode]);
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.$mode === mode) return;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue