diff --git a/lib/ace/edit_session.js b/lib/ace/edit_session.js index a96e419a..2ba5e9ab 100644 --- a/lib/ace/edit_session.js +++ b/lib/ace/edit_session.js @@ -377,6 +377,12 @@ var EditSession = function(text, mode) { return this.$useWorker; }; + this.onReloadTokenizer = function(e) { + var rows = e.data; + this.bgTokenizer.start(rows.first); + this._dispatchEvent("tokenizerUpdate", e); + }; + this.$mode = null; this.setMode = function(mode) { if (this.$mode === mode) return; @@ -391,6 +397,11 @@ var EditSession = function(text, mode) { var tokenizer = mode.getTokenizer(); + if(tokenizer.addEventListener !== undefined) { + var onReloadTokenizer = this.onReloadTokenizer.bind(this); + tokenizer.addEventListener("update", onReloadTokenizer); + } + if (!this.bgTokenizer) { this.bgTokenizer = new BackgroundTokenizer(tokenizer); var _self = this;