Skip to content

Commit 65cbc6a

Browse files
committed
Added support to display thai correctly without messing up cursor
Currently the cursor detects each thai symbol as an individual character messing up the cursor. Did a quick fix by making cursor to split into 2 parts and 3 parts to ensure cursor doesn't mess up for long thai character strings.
1 parent 3a00c5d commit 65cbc6a

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

index.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15514,7 +15514,7 @@ var Text = function(parentEl) {
1551415514

1551515515
this.$renderToken = function(stringBuilder, screenColumn, token, value) {
1551615516
var self = this;
15517-
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;
15517+
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]/g;
1551815518
var replaceFunc = function(c, a, b, tabIdx, idx4) {
1551915519
if (a) {
1552015520
return self.showInvisibles
@@ -15539,6 +15539,16 @@ var Text = function(parentEl) {
1553915539
"px'>" + space + "</span>";
1554015540
} else if (b) {
1554115541
return "<span class='ace_invisible ace_invisible_space ace_invalid'>" + self.SPACE_CHAR + "</span>";
15542+
} else if (/[\u0E00-\u0E30\u0E32\u0E3F-\u0E46\u0E4F-\u0E7F][\u0E31\u0E33-\u0E3A\u0E47-\u0E4E][\u0E31\u0E33-\u0E3A\u0E47-\u0E4E]/.test(c)) {
15543+
screenColumn += 3;
15544+
return "<span class='ace_cjk' style='width:" +
15545+
(self.config.characterWidth * 3) +
15546+
"px'>" + c + "</span>";
15547+
} else if (/[\u0E00-\u0E30\u0E32\u0E3F-\u0E46\u0E4F-\u0E7F][\u0E31\u0E33-\u0E3A\u0E47-\u0E4E]/.test(c)) {
15548+
screenColumn += 2;
15549+
return "<span class='ace_cjk' style='width:" +
15550+
(self.config.characterWidth * 2) +
15551+
"px'>" + c + "</span>";
1554215552
} else {
1554315553
screenColumn += 1;
1554415554
return "<span class='ace_cjk' style='width:" +
@@ -20269,4 +20279,4 @@ exports.version = "1.2.9";
2026920279
});
2027020280
})();
2027120281

20272-
module.exports = window.ace.acequire("ace/ace");
20282+
module.exports = window.ace.acequire("ace/ace");

0 commit comments

Comments
 (0)