diff --git a/lib/ace/edit_session.js b/lib/ace/edit_session.js index 6c33c449..6ccb6a91 100644 --- a/lib/ace/edit_session.js +++ b/lib/ace/edit_session.js @@ -348,16 +348,16 @@ var EditSession = function(text, mode) { this.setUseWorker = function(useWorker) { if (this.$useWorker == useWorker) return; - + if (useWorker && !this.$worker && window.Worker) this.$worker = mode.createWorker(this); - + if (!useWorker && this.$worker) { this.$worker.terminate(); this.$worker = null; } }; - + this.getUseWorker = function() { return this.$useWorker; }; @@ -417,14 +417,11 @@ var EditSession = function(text, mode) { var tabSize = this.getTabSize(); for ( var i = 0; i < lines.length; i++) { - var len = lines[i].length; + var line = lines[i], + len = line.length, + screenLen = this.$getStringScreenWidth(line); longestLine = Math.max(longestLine, len); - - lines[i].replace(/\t/g, function(m) { - len += tabSize-1; - return m; - }); - longestScreenLine = Math.max(longestScreenLine, len); + longestScreenLine = Math.max(longestScreenLine, screenLen); } this.width = longestLine; @@ -601,7 +598,7 @@ var EditSession = function(text, mode) { var actions = [{}]; - + // collapse insert and remove operations for (var i=0; i