diff --git a/crates/loro-wasm/src/lib.rs b/crates/loro-wasm/src/lib.rs index 28aa768e..dd79eb33 100644 --- a/crates/loro-wasm/src/lib.rs +++ b/crates/loro-wasm/src/lib.rs @@ -1440,8 +1440,37 @@ fn convert_container_path_to_js_value(path: &[(ContainerID, Index)]) -> JsValue path } -/// The handler of a text or richtext container. +/// The handler of a text container. It supports rich text CRDT. /// +/// ## Updating Text Content Using a Diff Algorithm +/// +/// A common requirement is to update the current text to a target text. +/// You can implement this using a text diff algorithm of your choice. +/// Below is a sample you can directly copy into your code, which uses the +/// [fast-diff](https://www.npmjs.com/package/fast-diff) package. +/// +/// ```ts +/// import { diff } from "fast-diff"; +/// import { LoroText } from "loro-crdt"; +/// +/// function updateText(text: LoroText, newText: string) { +/// const src = text.toString(); +/// const delta = diff(src, newText); +/// let index = 0; +/// for (const [op, text] of delta) { +/// if (op === 0) { +/// index += text.length; +/// } else if (op === 1) { +/// text.insert(index, text); +/// index += text.length; +/// } else { +/// text.delete(index, text.length); +/// } +/// } +/// ``` +/// +/// +/// Learn more at https://loro.dev/docs/tutorial/text #[derive(Clone)] #[wasm_bindgen] pub struct LoroText { @@ -1730,6 +1759,8 @@ impl Default for LoroText { } /// The handler of a map container. +/// +/// Learn more at https://loro.dev/docs/tutorial/map #[derive(Clone)] #[wasm_bindgen] pub struct LoroMap { @@ -2071,6 +2102,8 @@ impl Default for LoroMap { } /// The handler of a list container. +/// +/// Learn more at https://loro.dev/docs/tutorial/list #[derive(Clone)] #[wasm_bindgen] pub struct LoroList { @@ -2390,6 +2423,8 @@ impl Default for LoroList { } /// The handler of a list container. +/// +/// Learn more at https://loro.dev/docs/tutorial/list #[derive(Clone)] #[wasm_bindgen] pub struct LoroMovableList { @@ -2747,6 +2782,8 @@ impl LoroMovableList { } /// The handler of a tree(forest) container. +/// +/// Learn more at https://loro.dev/docs/tutorial/tree #[derive(Clone)] #[wasm_bindgen] pub struct LoroTree {