ime.textUpdate event
输入法请求对当前文本执行有界替换。guest 应用操作后用 updateState() 回传权威状态。
Event payload
{
handle,
update: { range: { start: u32, end: u32 }, text: string },
baseRevision: u64
}
Examples
host.events.on('ime.textUpdate', async ({ handle, update, baseRevision }) => {
if (handle !== session || baseRevision !== editor.revision) return;
editor.replace(update.range, update.text);
await host.ime.updateState(session, editor.snapshot());
});
Delivery rules
范围以该 revision 的文本为基准,使用 UTF-16 code unit offset 且不得切开代理对。宿主不能把过期编辑静默套到新文本;guest 必须以严格更大的 revision 调用 updateState() 确认接受,或回传当前权威状态明确拒绝。确认前宿主不得发送下一个 textUpdate。
Requirements
- 事件声明:
ime.textUpdate - 来源:活动 ime-session 句柄
- 信任档位:继承
ime.openSession的 green