Pinot.jl

:grapes: An implementation of Operational Transform for plain text documents using the Delta format in Julia
Author JuliaPluto
Popularity
4 Stars
Updated Last
7 Months Ago
Started In
May 2024

Pinot.jl

An implementation of Operational Transform for plain text documents using the Delta format.

Example

using Pinot, Test

initial_text = """
this is a shared document.
"""

edits_a = [
    Pinot.retain(10),
    Pinot.insert("cool "),
]

text_a = Pinot.apply(initial_text, edits_a)

@test text_a == """
this is a cool shared document.
"""

edits_b = [
    Pinot.retain(10),
    Pinot.delete(6),
    Pinot.insert("collaborative"),
]

@test Pinot.apply(initial_text, edits_b) == """
this is a collaborative document.
"""

edits_b_a = Pinot.transform(edits_a, edits_b, Pinot.Left)

@test Pinot.apply(text_a, edits_b_a) == """
this is a cool collaborative document.
"""