Vadims Daleckis

Results 193 comments of Vadims Daleckis

We also need to be able to represent the virtual text start and end elements.

Taxonomy: ``` Edge = (CharacterId, IsInclusive) Interval = (StartEdge, EndEdge) Slice = (SliceId, Interval, Value) ``` Marker (e.g. a `splitBlock` boundary) is when interval is empty (collapsed), e.g. `StartEdge =...

Interval consists of two "boundaries": - Boundaries - Edges - Limits - Endpoints (used in math) - Endelements Boundaries are linked to an: - Anchor - Handle One way to...

Taxonomy 2.0: ```ts enum Anchor { Before, After } type Endpoint = [element: ID, anchor: Anchor]; type Interval = [start: Endpoint, end: Endpoint]; type Slice = [id: ID, interval: Interval,...

Efficient rich text representation: ```ts type LocalSlice = [id: ID, start: number, length: number, value: unknown]; interface Peritext { text: Rope; slices: LocalSlice[]; } interface Rope { str(start: number, length:...

Taxonomy 3.0: - Optional `tag` member. ```ts enum Anchor { Before, After } type Endpoint = [element: ID, anchor: Anchor]; type Interval = [start: Endpoint, end: Endpoint]; type Slice =...

Taxonomy 4.0: Local operation: ```ts enum Anchor { Before, After } type Endpoint = [index: number, anchor?: Anchor]; // -1 represents the string root element. type Interval = [start: Endpoint,...

> Does that make sense? @josephg it makes sense, but only for `diamond-types`. As `diamond-types` is a library designed to repay those sort of "causal tree" operations. However, a list...

Generating CRDT-specific traces out of Diamond Types trace sounds good, if indeed those scripts are simple. (Also, would be nice to have a generic RGA converter script, not specific to...

> What has convinced you that RGA is the most popular algorithm? It is the most cited and the best know/researched algorithm that provides good (`O(log n)`) performance for all...