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)
|
if (module)
|
||||||
return done(module);
|
return done(module);
|
||||||
|
|
||||||
|
// set mode to text until loading is finished
|
||||||
|
if (!this.$mode)
|
||||||
|
this.$setModePlaceholder();
|
||||||
|
|
||||||
fetch(function() {
|
fetch(function() {
|
||||||
require([mode], done);
|
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)
|
* EditSession.setMode(mode)
|
||||||
* - mode (TextMode): Set a new text mode
|
* - mode (TextMode): Set a new text mode
|
||||||
|
|
@ -809,6 +834,7 @@ var EditSession = function(text, mode) {
|
||||||
this.$mode = null;
|
this.$mode = null;
|
||||||
this.$modeId = null;
|
this.$modeId = null;
|
||||||
this.setMode = function(mode) {
|
this.setMode = function(mode) {
|
||||||
|
mode = mode || "ace/mode/text";
|
||||||
// load on demand
|
// load on demand
|
||||||
if (typeof mode === "string") {
|
if (typeof mode === "string") {
|
||||||
if (this.$modeId == mode)
|
if (this.$modeId == mode)
|
||||||
|
|
@ -823,12 +849,6 @@ var EditSession = function(text, mode) {
|
||||||
_self.setMode(module);
|
_self.setMode(module);
|
||||||
});
|
});
|
||||||
return;
|
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;
|
if (this.$mode === mode) return;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue