From bd7b145a7fad96171705be91cb3589a037600450 Mon Sep 17 00:00:00 2001 From: Fabian Jakobs Date: Tue, 25 Jan 2011 13:34:20 +0100 Subject: [PATCH] display non regular whitespace in show invisibles --- lib/ace/layer/text.js | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/lib/ace/layer/text.js b/lib/ace/layer/text.js index 8ef2ebf3..ecaa6698 100644 --- a/lib/ace/layer/text.js +++ b/lib/ace/layer/text.js @@ -248,18 +248,23 @@ 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) { -// var space = new Array(space.length+1).join(self.SPACE_CHAR); -// return "" + space + ""; -// }; -// } -// else { + 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 = " "; -// } + } for ( var i = 0; i < tokens.length; i++) { var token = tokens[i];