From ac50406a0a5814a92da070ba96184bcdf3f7f81d Mon Sep 17 00:00:00 2001 From: Fabian Jakobs Date: Tue, 27 Apr 2010 09:41:18 +0200 Subject: [PATCH] show middle dots for spaces in "show invisibles" mode --- src/ace/layer/Text.js | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/ace/layer/Text.js b/src/ace/layer/Text.js index a831a2e8..fdb2dc6b 100644 --- a/src/ace/layer/Text.js +++ b/src/ace/layer/Text.js @@ -10,11 +10,10 @@ ace.layer.Text = function(parentEl) { (function() { -// this.EOF_CHAR = "¶"; this.EOF_CHAR = "¶"; this.EOL_CHAR = "¬"; -// this.TAB_CHAR = "‣"; this.TAB_CHAR = "→"; + this.SPACE_CHAR = "·"; this.setTokenizer = function(tokenizer) { this.tokenizer = tokenizer; @@ -104,13 +103,27 @@ ace.layer.Text = function(parentEl) { this.renderLine = function(stringBuilder, row) { var tokens = this.tokenizer.getTokens(row); + + 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 ""; + }; + } + 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]; var output = token.value .replace(/&/g, "&") .replace(/