diff --git a/web/src/engine/predictive-text/worker-thread/src/main/correction/context-tokenization.ts b/web/src/engine/predictive-text/worker-thread/src/main/correction/context-tokenization.ts index 706b6d246a..2db1782fa8 100644 --- a/web/src/engine/predictive-text/worker-thread/src/main/correction/context-tokenization.ts +++ b/web/src/engine/predictive-text/worker-thread/src/main/correction/context-tokenization.ts @@ -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; }