diff --git a/lib/ace/layer/text.js b/lib/ace/layer/text.js
index 7c22548f..7d4f845b 100644
--- a/lib/ace/layer/text.js
+++ b/lib/ace/layer/text.js
@@ -280,58 +280,36 @@ var Text = function(parentEl) {
};
this.$renderLine = function(stringBuilder, row, tokens) {
- if (this.showInvisibles) {
- var self = this;
- var spaceRe = /( +)|([\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000])/g;
- var spaceReplace = function(space) {
- if (space.charCodeAt(0) == 32)
- return new Array(space.length+1).join(" ");
- else {
- var space = new Array(space.length+1).join(self.SPACE_CHAR);
- return "" + space + "";
- }
-
- };
- }
- else {
- var spaceRe = /[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/g;
- var spaceReplace = " ";
- }
-
var _self = this,
characterWidth = this.config.characterWidth,
screenColumn = 0;
function addToken(token, value) {
var output = value
- .replace(/\t|&|<|[\u3040-\u309F]|[\u30A0-\u30FF]|[\u4E00-\u9FFF\uF900-\uFAFF\u3400-\u4DBF]/g, function(c, idx) {
- if (c == "\t") {
+ .replace(/\t|&|<|( +)|([\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000])|[\u3040-\u309F]|[\u30A0-\u30FF]|[\u4E00-\u9FFF\uF900-\uFAFF\u3400-\u4DBF]/g, function(c, a, b, tabIdx, idx4) {
+ if (c.charCodeAt(0) == 32) {
+ return new Array(c.length+1).join(" ");
+ } else if (c == "\t") {
var tabSize = _self.session.
- getScreenTabSize(screenColumn + idx);
+ getScreenTabSize(screenColumn + tabIdx);
screenColumn += tabSize - 1;
return _self.$tabStrings[tabSize];
} else if (c == "&") {
return "&";
} else if (c == "<") {
return "<";
+ } else if (c.match(/[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/)) {
+ if (this.showInvisibles) {
+ var space = new Array(c.length+1).join(self.SPACE_CHAR);
+ return "" + space + "";
+ } else {
+ return " "
+ }
} else {
screenColumn += 1;
return "" + c + ""
}
- })
-// .replace(/\t/g, function(c, idx) {
-// idx += screenColumnOld;
-// var tabSize = _self.session.getScreenTabSize(idx);
-// screenColumn += tabSize - 1;
-// return _self.$tabStrings[tabSize];
-// })
-// .replace(/&/g, "&")
-// .replace(/" + c + ""
-// });
+ });
screenColumn += value.length;
if (!_self.$textToken[token.type]) {