Как определить OT Text Diff

Я пытаюсь реализовать sharedb операции на мой код переднего конца. В настоящее время он у меня есть, чтобы он отправлял операцию ( https://github.com/ottypes/json0), в частности text0когда мой react компонент запускает его onChange событие. Например:

Если бы мой текст был:Hello World

и я удаляю l сделать этоHello Word

а потом я добавляю s в конце, чтобы сделать этоHello Words

Я хочу, чтобы в моей разнице в тексте OT были операции для отправки остальным клиентам (если это не так)

[{p: 9, d: 'l'}, {p: 10, i: 's'}]

Каков наилучший способ для генерации этих операций с помощью библиотеки или вручную? Я изучил, возможно, используя diff библиотека, но она не дает никаких индексов того, где операция имела место, несмотря на то, что дают операции вставки и удаления.

1 ответ

Вы можете использовать предоставляемые браузером свойства выбора и события onkeydown для создания наборов изменений вручную или использовать разностную библиотеку, например, https://www.npmjs.com/package/diff_match_patch от Нила Фрейзера. Это было очень полезно для меня (заявление об отказе от ответственности) Я являюсь издателем этого пакета.)

Другие вопросы по тегам