diff --git a/index.js b/index.js index 5999cf67..91960b92 100644 --- a/index.js +++ b/index.js @@ -15514,7 +15514,7 @@ var Text = function(parentEl) { this.$renderToken = function(stringBuilder, screenColumn, token, value) { var self = this; - var replaceReg = /\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g; + var replaceReg = /\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\u0E00-\u0E30\u0E32\u0E3F-\u0E46\u0E4F-\u0E7F][\u0E31\u0E33-\u0E3A\u0E47-\u0E4E][\u0E31\u0E33-\u0E3A\u0E47-\u0E4E]|[\u0E00-\u0E30\u0E32\u0E3F-\u0E46\u0E4F-\u0E7F][\u0E31\u0E33-\u0E3A\u0E47-\u0E4E]|[\u0E31\u0E33-\u0E3A\u0E47-\u0E4E]/g; var replaceFunc = function(c, a, b, tabIdx, idx4) { if (a) { return self.showInvisibles @@ -15539,6 +15539,21 @@ var Text = function(parentEl) { "px'>" + space + ""; } else if (b) { return "" + self.SPACE_CHAR + ""; + } else if (/[\u0E00-\u0E30\u0E32\u0E3F-\u0E46\u0E4F-\u0E7F][\u0E31\u0E33-\u0E3A\u0E47-\u0E4E][\u0E31\u0E33-\u0E3A\u0E47-\u0E4E]/.test(c)) { + screenColumn += 3; + return "" + c + ""; + } else if (/[\u0E00-\u0E30\u0E32\u0E3F-\u0E46\u0E4F-\u0E7F][\u0E31\u0E33-\u0E3A\u0E47-\u0E4E]/.test(c)) { + screenColumn += 2; + return "" + c + ""; + } else if (/[\u0E31\u0E33-\u0E3A\u0E47-\u0E4E]/.test(c)) { + screenColumn += 1; + return "" + c + ""; } else { screenColumn += 1; return "