From d4daa0f9d93e2250c07acbb83049bfa2ce730822 Mon Sep 17 00:00:00 2001 From: nightwing Date: Thu, 26 Apr 2012 18:10:31 +0400 Subject: [PATCH] use cached textmode --- lib/ace/edit_session.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/lib/ace/edit_session.js b/lib/ace/edit_session.js index 2bdfca46..79251504 100644 --- a/lib/ace/edit_session.js +++ b/lib/ace/edit_session.js @@ -77,10 +77,7 @@ var EditSession = function(text, mode) { } this.selection = new Selection(this); - if (mode) - this.setMode(mode); - else - this.setMode(new TextMode()); + this.setMode(mode); }; @@ -508,6 +505,7 @@ var EditSession = function(text, mode) { return callback(_self.$modes[mode]); _self.$modes[mode] = new module.Mode(); + _self.$modes[mode].$id = mode; _self._emit("loadmode", { name: mode, mode: _self.$modes[mode] @@ -528,10 +526,9 @@ var EditSession = function(text, mode) { this.$mode = null; this.$origMode = null; this.setMode = function(mode) { - this.$origMode = mode; - // load on demand if (typeof mode === "string") { + this.$origMode = mode; var _self = this; this._loadMode(mode, function(module) { if (_self.$origMode !== mode) @@ -540,6 +537,12 @@ var EditSession = function(text, mode) { _self.setMode(module); }); return; + } else if (mode == null) { + mode = "ace/mode/text" + this.$origMode = mode; + this.$modes[mode] = this.$modes[mode] || (new TextMode()); + this.setMode(this.$modes[mode]); + return; } if (this.$mode === mode) return;