Increase granularity of invisible character classes.

This commit is contained in:
Robert Bruce Park 2014-03-14 22:14:45 -07:00
commit dc87483936

View file

@ -126,7 +126,7 @@ var Text = function(parentEl) {
var tabStr = this.$tabStrings = [0]; var tabStr = this.$tabStrings = [0];
for (var i = 1; i < tabSize + 1; i++) { for (var i = 1; i < tabSize + 1; i++) {
if (this.showInvisibles) { if (this.showInvisibles) {
tabStr.push("<span class='ace_invisible'>" tabStr.push("<span class='ace_invisible ace_invisible_tab'>"
+ this.TAB_CHAR + this.TAB_CHAR
+ lang.stringRepeat("\xa0", i - 1) + lang.stringRepeat("\xa0", i - 1)
+ "</span>"); + "</span>");
@ -321,7 +321,7 @@ var Text = function(parentEl) {
var replaceFunc = function(c, a, b, tabIdx, idx4) { var replaceFunc = function(c, a, b, tabIdx, idx4) {
if (a) { if (a) {
return self.showInvisibles ? return self.showInvisibles ?
"<span class='ace_invisible'>" + lang.stringRepeat(self.SPACE_CHAR, c.length) + "</span>" : "<span class='ace_invisible ace_invisible_space'>" + lang.stringRepeat(self.SPACE_CHAR, c.length) + "</span>" :
lang.stringRepeat("\xa0", c.length); lang.stringRepeat("\xa0", c.length);
} else if (c == "&") { } else if (c == "&") {
return "&#38;"; return "&#38;";
@ -333,14 +333,14 @@ var Text = function(parentEl) {
return self.$tabStrings[tabSize]; return self.$tabStrings[tabSize];
} else if (c == "\u3000") { } else if (c == "\u3000") {
// U+3000 is both invisible AND full-width, so must be handled uniquely // U+3000 is both invisible AND full-width, so must be handled uniquely
var classToUse = self.showInvisibles ? "ace_cjk ace_invisible" : "ace_cjk"; var classToUse = self.showInvisibles ? "ace_cjk ace_invisible ace_invisible_space" : "ace_cjk";
var space = self.showInvisibles ? self.SPACE_CHAR : ""; var space = self.showInvisibles ? self.SPACE_CHAR : "";
screenColumn += 1; screenColumn += 1;
return "<span class='" + classToUse + "' style='width:" + return "<span class='" + classToUse + "' style='width:" +
(self.config.characterWidth * 2) + (self.config.characterWidth * 2) +
"px'>" + space + "</span>"; "px'>" + space + "</span>";
} else if (b) { } else if (b) {
return "<span class='ace_invisible ace_invalid'>" + self.SPACE_CHAR + "</span>"; return "<span class='ace_invisible ace_invisible_space ace_invalid'>" + self.SPACE_CHAR + "</span>";
} else { } else {
screenColumn += 1; screenColumn += 1;
return "<span class='ace_cjk' style='width:" + return "<span class='ace_cjk' style='width:" +
@ -477,7 +477,7 @@ var Text = function(parentEl) {
row = foldLine.end.row row = foldLine.end.row
stringBuilder.push( stringBuilder.push(
"<span class='ace_invisible'>", "<span class='ace_invisible ace_invisible_eol'>",
row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR, row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR,
"</span>" "</span>"
); );