-
Notifications
You must be signed in to change notification settings - Fork 64
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This change adds support for the `transformPresence()` method that [`sharedb` uses][1]. We add support for both `text0` and `json0`. `text0` ------- The `text0` implementation leans on the existing [`transformPosition`][2], and takes its form and tests from [`rich-text`][3]. Its shape takes the form: ```js { index: 3, length: 5, } ``` Where: - `index` is the cursor position - `length` is the selection length (`0` for a collapsed selection) `json0` ------- The `json0` implementation has limited functionality because of the limitations of the `json0` type itself: we handle list moves `lm`, but cannot infer any information when moving objects around the tree, because the `oi` and `od` operations are destructive. However, it will attempt to transform embedded subtypes that support presence. Its shape takes the form: ```js { p: ['key', 123], v: {}, } ``` Where: - `p` is the path to the client's position within the document - `v` is the presence value The presence value `v` can take any arbitrary value (in simple cases it may even be omitted entirely). The exception to this is when using subtypes, where `v` should take the presence shape defined by the subtype. For example, when using `text0`: ```js { p: ['key'], v: {index: 5, length: 0}, } ``` [1]: share/sharedb#322 [2]: https://github.com/ottypes/json0/blob/90a3ae26364c4fa3b19b6df34dad46707a704421/lib/text0.js#L147 [3]: ottypes/rich-text#32
- Loading branch information
1 parent
90a3ae2
commit 7d721e7
Showing
5 changed files
with
225 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters