mirror of
https://github.com/keymanapp/keyman.git
synced 2026-09-04 14:47:42 +00:00
fix(web): implement traceInsertEdits non-BMP string handling
This commit is contained in:
parent
2e16e397d7
commit
c477221e93
1 changed files with 6 additions and 2 deletions
|
|
@ -706,19 +706,23 @@ export function traceInsertEdits(tokens: string[], transform: Transform): {
|
|||
firstInsertPostIndex: number
|
||||
} {
|
||||
let insert = transform.insert;
|
||||
let insertLen = KMWString.length(insert);
|
||||
const stackedInserts: string[] = [];
|
||||
let firstInsertPostIndex: number;
|
||||
|
||||
if(insert.length > 0) {
|
||||
for(let index = tokens.length - 1; index >= 0; index--) {
|
||||
const tokenLen = KMWString.length(tokens[index]);
|
||||
|
||||
const currentToken = tokens[index];
|
||||
if(KMWString.length(currentToken) >= KMWString.length(insert)) {
|
||||
if(tokenLen >= insertLen) {
|
||||
stackedInserts.push(insert);
|
||||
firstInsertPostIndex = index;
|
||||
break;
|
||||
}
|
||||
|
||||
insert = insert.substring(0, insert.length - currentToken.length);
|
||||
insert = KMWString.substring(insert, 0, insertLen - tokenLen);
|
||||
insertLen -= tokenLen;
|
||||
stackedInserts.push(currentToken);
|
||||
firstInsertPostIndex = index;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue