Skip to content

Commit

Permalink
Choose delta with fewest insertions, fixes #98
Browse files Browse the repository at this point in the history
When trying to pick a delta describing document change. Previously used
delta with fewest operations.
  • Loading branch information
jhchen committed May 15, 2014
1 parent 15ec536 commit 336a38e
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion src/editor.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,14 @@ class Editor
catch ignored
decomposeB = newDelta.decompose(@delta)
if decomposeA and decomposeB
decompose = if decomposeA.ops.length < decomposeB.ops.length then decomposeA else decomposeB
# Choose delta with fewest insertions
[lengthA, lengthB] = _.map([decomposeA, decomposeB], (delta) ->
return _.reduce(delta.ops, (count, op) ->
count += op.value.length if op.value?
return count
, 0)
)
decompose = if lengthA < lengthA then decomposeA else decomposeB
else
decompose = decomposeA or decomposeB
return decompose
Expand Down

0 comments on commit 336a38e

Please sign in to comment.