Rob Rix
|
645e038982
|
Compute the size of syntax trees.
|
2015-10-14 14:32:26 -04:00 |
|
Rob Rix
|
6b781622b6
|
Add the annotations to the JSON.
|
2015-10-14 14:22:19 -04:00 |
|
Rob Rix
|
abd037796a
|
Annotate JSON with integers.
|
2015-10-14 14:21:12 -04:00 |
|
Rob Rix
|
1fc7771918
|
Int is CustomJSONConvertible.
|
2015-10-14 14:20:58 -04:00 |
|
Rob Rix
|
f34af098d3
|
String is CustomJSONConvertible.
|
2015-10-14 14:20:13 -04:00 |
|
Rob Rix
|
29001b713c
|
Diff JSON in Cofree.
|
2015-10-14 14:17:56 -04:00 |
|
Rob Rix
|
07690849a6
|
Convenience for constructing Cofree with autoclosures.
|
2015-10-14 14:17:29 -04:00 |
|
Rob Rix
|
9afc487776
|
Cofree is a TermType.
|
2015-10-14 14:05:43 -04:00 |
|
Rob Rix
|
714f99638e
|
Abstract Algorithm over a Term type.
|
2015-10-14 14:04:47 -04:00 |
|
Rob Rix
|
7e9a41dfbd
|
Make the Roll case indirect.
|
2015-10-14 14:04:35 -04:00 |
|
Rob Rix
|
b8dca6fe2a
|
Call evaluate with equality.
|
2015-10-14 14:03:46 -04:00 |
|
Rob Rix
|
79708346e0
|
Correct the Diff typealias.
|
2015-10-14 14:00:46 -04:00 |
|
Rob Rix
|
3e75895c4d
|
Fix is a TermType.
|
2015-10-14 13:57:21 -04:00 |
|
Rob Rix
|
92cb1927d1
|
Move Term/Diff to the top level.
|
2015-10-14 13:57:12 -04:00 |
|
Rob Rix
|
4fb38d612e
|
Add a constructor for Free over arbitrary TermType.
|
2015-10-14 13:52:43 -04:00 |
|
Rob Rix
|
6f886356aa
|
Add a TermType protocol.
|
2015-10-14 13:52:25 -04:00 |
|
Rob Rix
|
6188a5a2d7
|
Move FreeConvertible to Free.swift.
|
2015-10-14 13:34:29 -04:00 |
|
Rob Rix
|
01b32b010f
|
Rename Algorithm’s A type parameter to Leaf.
|
2015-10-14 13:33:51 -04:00 |
|
Rob Rix
|
31d905ac64
|
Merge branch 'generalize-patch' into diff-cofree-values
|
2015-10-14 13:31:00 -04:00 |
|
Rob Rix
|
436708bb3b
|
🔥 chaff.
|
2015-10-14 13:16:27 -04:00 |
|
Rob Rix
|
09fad58fd7
|
Correct a comment.
|
2015-10-14 12:46:16 -04:00 |
|
Rob Rix
|
b8f8953f1c
|
Return the identity diff when equal.
|
2015-10-14 12:29:40 -04:00 |
|
Rob Rix
|
517c87c303
|
Revert "Revert "SES does not take an equality test.""
This reverts commit bb73f6eac2b59599607369767e9e221e7e5e0f15.
|
2015-10-14 12:28:45 -04:00 |
|
Rob Rix
|
d0d96d569d
|
Revert "Pass the correct equality function to SES."
This reverts commit e78c6cde10ad70e93ab003ceacc07db290b061e4.
|
2015-10-14 12:28:41 -04:00 |
|
Rob Rix
|
432c9f7239
|
Pass the correct equality function to SES.
|
2015-10-14 12:26:25 -04:00 |
|
Rob Rix
|
a7f4d91d56
|
Revert "SES does not take an equality test."
This reverts commit 1db8bdf82c85a490188882b810cd9c516e4f210e.
Conflicts:
prototype/Doubt/SES.swift
prototype/DoubtTests/SESTests.swift
|
2015-10-14 12:25:38 -04:00 |
|
Rob Rix
|
8d4a91d3a9
|
Merge branch 'parameterize-algorithm-evaluation-by-comparison-restriction' into generalize-patch
Conflicts:
prototype/Doubt/SES.swift
prototype/DoubtTests/SESTests.swift
|
2015-10-14 12:24:04 -04:00 |
|
Rob Rix
|
6e5335c915
|
SES tests operate over strings.
|
2015-10-14 12:19:38 -04:00 |
|
Rob Rix
|
0acdd16db3
|
Generalize SES to arbitrary arrays.
|
2015-10-14 12:18:49 -04:00 |
|
Rob Rix
|
34258b98b8
|
Generalize Patch from Fix<A> to A .
|
2015-10-14 12:17:39 -04:00 |
|
Rob Rix
|
e33f733d83
|
SES does not take an equality test.
|
2015-10-14 12:14:15 -04:00 |
|
Rob Rix
|
da11e0983a
|
Don’t test equality in SES.
|
2015-10-14 12:11:03 -04:00 |
|
Rob Rix
|
964204a3e6
|
Rename the PatchConvertible associated type to Element.
|
2015-10-14 12:02:57 -04:00 |
|
Rob Rix
|
ef5720ad17
|
Add a typealias representing the type of patches.
|
2015-10-14 11:56:30 -04:00 |
|
Rob Rix
|
49fb97594a
|
Move Operation’s Functor implementation to a separate extension.
|
2015-10-14 11:43:17 -04:00 |
|
Rob Rix
|
c9134b5867
|
Move Operation into its own file.
|
2015-10-14 11:40:43 -04:00 |
|
Rob Rix
|
ff2c904888
|
Abstract Operation over Term and Diff types.
|
2015-10-14 11:39:56 -04:00 |
|
Rob Rix
|
79969bb69d
|
Move FreeConvertible into Free.swift.
|
2015-10-14 11:24:23 -04:00 |
|
Rob Rix
|
1cc879dc5d
|
Merge branch 'master' into restrict-comparisons-by-category
|
2015-10-14 11:19:26 -04:00 |
|
Rob Rix
|
b9ac0d3c38
|
JSON property for cofree over CustomJSONConvertible types.
|
2015-10-14 11:01:41 -04:00 |
|
Rob Rix
|
8f86f9ab76
|
Parameterized JSON conversion for Cofree.
|
2015-10-14 10:59:41 -04:00 |
|
Rob Rix
|
e70cbe4235
|
Algebraic hashing over cofrees of Hashable types.
|
2015-10-14 10:57:25 -04:00 |
|
Rob Rix
|
db57734586
|
Parameterized hashing over Cofree.
|
2015-10-14 10:56:25 -04:00 |
|
Rob Rix
|
3dcfbc0d38
|
Equality over Cofrees of equatable types.
|
2015-10-14 10:53:29 -04:00 |
|
Rob Rix
|
889dab1df2
|
Parameterized equality over Cofree.
|
2015-10-14 10:52:27 -04:00 |
|
Rob Rix
|
84ea5248e3
|
Unroll does not need to be indirect.
|
2015-10-14 10:49:05 -04:00 |
|
Rob Rix
|
8f3ae52d29
|
Cofree’s recurrence is lazy.
|
2015-10-14 10:48:42 -04:00 |
|
Rob Rix
|
c8234d27a4
|
Document coiterate.
|
2015-10-14 10:44:53 -04:00 |
|
Rob Rix
|
c13023b85b
|
Add a constructor annotating terms into Cofrees.
|
2015-10-14 10:39:21 -04:00 |
|
Rob Rix
|
961e9ae7d7
|
Implement coiteration.
|
2015-10-14 10:39:01 -04:00 |
|
Rob Rix
|
fa2bfcd367
|
duplicate() is just extend(id) .
|
2015-10-14 10:24:16 -04:00 |
|
Rob Rix
|
5015238546
|
Document Cofree.document() .
|
2015-10-14 10:23:43 -04:00 |
|
Rob Rix
|
b50ebdf21a
|
Document Cofree.extend() .
|
2015-10-14 10:22:04 -04:00 |
|
Rob Rix
|
011719b752
|
map ’s transformation function is @noescape .
|
2015-10-14 10:20:21 -04:00 |
|
Rob Rix
|
2c56ee66ea
|
extend ’s transformation function is @noescape .
|
2015-10-14 10:20:05 -04:00 |
|
Rob Rix
|
7bff8f6f50
|
Document Cofree.extract .
|
2015-10-14 10:19:38 -04:00 |
|
Rob Rix
|
ab3d297d95
|
Document Cofree.
|
2015-10-14 10:19:02 -04:00 |
|
Rob Rix
|
6774213fcd
|
Cofree is a Functor.
|
2015-10-14 10:09:38 -04:00 |
|
Rob Rix
|
a606d9d798
|
Implement duplicate on Cofree.
|
2015-10-14 10:03:42 -04:00 |
|
Rob Rix
|
1a44f29778
|
Cofree.extend is public.
|
2015-10-14 10:01:26 -04:00 |
|
Rob Rix
|
cc805f6610
|
Cofree.extract is public.
|
2015-10-14 10:01:19 -04:00 |
|
Rob Rix
|
26f0ea419d
|
Implement extend on Cofree.
|
2015-10-14 10:00:16 -04:00 |
|
Rob Rix
|
ab554c52a0
|
Unwrap Cofrees.
|
2015-10-14 09:59:04 -04:00 |
|
Rob Rix
|
3985ef0fea
|
Unroll should be indirect.
|
2015-10-14 09:56:46 -04:00 |
|
Rob Rix
|
59dd626361
|
Add a Syntax to Cofree.
|
2015-10-14 09:43:51 -04:00 |
|
Rob Rix
|
0d662ade08
|
Implement extract on Cofree .
|
2015-10-14 09:43:23 -04:00 |
|
Rob Rix
|
a83f77116d
|
Add an Unroll case to Cofree.
|
2015-10-14 09:42:21 -04:00 |
|
Rob Rix
|
59b60947f9
|
Stub in Cofree.
|
2015-10-14 09:34:18 -04:00 |
|
Rob Rix
|
3238bc14bd
|
Rename Category.swift to Categorizable.swift.
|
2015-10-14 09:02:38 -04:00 |
|
Rob Rix
|
c7ef3cc586
|
Remove Category.
|
2015-10-14 09:02:21 -04:00 |
|
Rob Rix
|
1f40f40869
|
Info just uses Strings as its categories.
|
2015-10-14 09:02:00 -04:00 |
|
Rob Rix
|
4d07ed6fe7
|
String is CustomJSONConvertible.
|
2015-10-14 09:01:41 -04:00 |
|
Rob Rix
|
a68ad254d5
|
Inheritances are in alphabetical order.
|
2015-10-14 08:59:56 -04:00 |
|
Rob Rix
|
58c0a7ff2c
|
Categories can be of any Hashable type.
|
2015-10-14 08:59:19 -04:00 |
|
Rob Rix
|
59b7d60349
|
Move Term and Diff to the top level.
|
2015-10-13 21:45:48 -04:00 |
|
Rob Rix
|
7b517af351
|
Convenience for A: Categorizable, A: Equatable, B == Diff<A>.
|
2015-10-13 21:41:41 -04:00 |
|
Rob Rix
|
f4dda1c315
|
If A is Categorizable, require empty categories or non-intersecting sets of categories.
|
2015-10-13 21:41:20 -04:00 |
|
Rob Rix
|
2c3716d91c
|
Don’t provide a default implementation of categories .
|
2015-10-13 21:40:12 -04:00 |
|
Rob Rix
|
8190064f48
|
Terms have categories.
|
2015-10-13 21:36:14 -04:00 |
|
Rob Rix
|
30d1a5dee2
|
Info is Categorizable.
|
2015-10-13 21:33:42 -04:00 |
|
Rob Rix
|
346a4e17c7
|
Categorizable types have categories .
|
2015-10-13 21:33:24 -04:00 |
|
Rob Rix
|
088624118b
|
Stub in a Categorizable protocol.
|
2015-10-13 21:33:01 -04:00 |
|
Rob Rix
|
4454f4b04f
|
Document Category, sorta.
|
2015-10-13 21:29:04 -04:00 |
|
Rob Rix
|
02c33cc006
|
Merge branch 'master' into charge-a-constant-cost-to-patches
|
2015-10-13 21:14:42 -04:00 |
|
Rob Rix
|
f2826c3bd2
|
Merge branch 'master' into parameterize-algorithm-evaluation-by-comparison-restriction
|
2015-10-13 21:14:30 -04:00 |
|
Rob Rix
|
fca262a6b2
|
Remove the submodule.
|
2015-10-13 21:10:20 -04:00 |
|
Rob Rix
|
1dcd2aea59
|
Remove the plist.
|
2015-10-13 21:08:37 -04:00 |
|
Rob Rix
|
77022447ea
|
Remove the fixtures.
|
2015-10-13 21:08:29 -04:00 |
|
Rob Rix
|
877fa88177
|
Remove the scheme.
|
2015-10-13 21:08:13 -04:00 |
|
Rob Rix
|
d3cb848d87
|
Remove doubt-swift’s dependencies from the workspace.
|
2015-10-13 21:07:02 -04:00 |
|
Rob Rix
|
368e700c1a
|
Remove doubt-swift from the project.
|
2015-10-13 21:06:40 -04:00 |
|
Rob Rix
|
9b66e550f3
|
Delete the doubt-swift target.
|
2015-10-13 21:06:21 -04:00 |
|
Rob Rix
|
24bf8f4497
|
Merge branch 'parameterize-algorithm-evaluation-by-comparison-restriction' into charge-a-constant-cost-to-patches
|
2015-10-13 18:35:43 -04:00 |
|
Rob Rix
|
7b37db6943
|
Replace the UI fixture.
|
2015-10-13 18:27:12 -04:00 |
|
Rob Rix
|
7786b8c40f
|
Remove the Patch.cost property.
|
2015-10-13 18:20:11 -04:00 |
|
Rob Rix
|
ee0f8765aa
|
Charge a constant cost to Patch es.
|
2015-10-13 18:19:56 -04:00 |
|
Rob Rix
|
4ea9aab8b2
|
Simplify control flow around recur /replace .
|
2015-10-13 18:14:20 -04:00 |
|
Rob Rix
|
a15687dca3
|
Correct a test fixture.
I am unbelievably glad to be rid of this.
|
2015-10-13 18:05:28 -04:00 |
|
Rob Rix
|
5f395c55cf
|
Disallow diagonal edges.
This technically still allows (in fact, requires) them for equal
elements, but it will never construct `Patch.Replace`.
|
2015-10-13 18:05:11 -04:00 |
|
Rob Rix
|
5771d7caf5
|
Merge branch 'master' into parameterize-algorithm-evaluation-by-comparison-restriction
|
2015-10-13 17:55:52 -04:00 |
|
Rob Rix
|
92cb10379f
|
Document the decision a little further.
|
2015-10-13 17:55:47 -04:00 |
|
Rob Rix
|
9f498f1099
|
Formatting.
|
2015-10-13 17:55:02 -04:00 |
|
Rob Rix
|
10122d62da
|
Abbreviate the selection of the best outgoing edge.
|
2015-10-13 17:53:04 -04:00 |
|
Rob Rix
|
6cbe0a18d3
|
Extract diagonal.
|
2015-10-13 17:51:03 -04:00 |
|
Rob Rix
|
32bfdc6766
|
Factor out right/down.
|
2015-10-13 17:50:22 -04:00 |
|
Rob Rix
|
e09d46d109
|
nil responses restrict the traversal of diagonal edges.
|
2015-10-13 17:45:22 -04:00 |
|
Rob Rix
|
90b22cf9a8
|
Allow recurrence to opt out of comparing nodes by returning nil .
|
2015-10-13 17:40:14 -04:00 |
|
Rob Rix
|
873a8e668f
|
Add a function to construct the replacement of one term by another.
|
2015-10-13 17:38:36 -04:00 |
|
Josh Vera
|
3211714bb2
|
Merge pull request #98 from github/side-by-side-diffs
Side by side diffs
|
2015-10-13 16:41:39 -04:00 |
|
Rob Rix
|
c455b59cbb
|
Note Xcode 7 requirement.
|
2015-10-13 16:34:03 -04:00 |
|
Rob Rix
|
7825e83ed2
|
Add a readme for the prototype.
|
2015-10-13 16:33:39 -04:00 |
|
Rob Rix
|
b9d96134ea
|
Merge branch 'master' into side-by-side-diffs
|
2015-10-13 13:18:05 -04:00 |
|
Rob Rix
|
f1bb19be12
|
Grey backgrounds for replacements.
|
2015-10-13 13:17:18 -04:00 |
|
Josh Vera
|
bd4f1e7fc1
|
Merge pull request #83 from github/recur-into-keyed-terms-with-equal-keys
Recur into Keyed terms with equal keys
|
2015-10-13 13:16:56 -04:00 |
|
joshvera
|
d2d2412260
|
Merge branch 'master' into recur-into-indexed-terms-of-equal-length
|
2015-10-13 13:03:13 -04:00 |
|
Matt Diephouse
|
692bb05a4e
|
Merge pull request #96 from github/generalize-array-extension
Generalize array extension
|
2015-10-13 12:48:20 -04:00 |
|
Rob Rix
|
c0ab5abd9f
|
Drop the outline from replacements.
|
2015-10-13 12:44:25 -04:00 |
|
Rob Rix
|
fad02bab81
|
Give replacements a background colour.
|
2015-10-13 11:47:07 -04:00 |
|
Rob Rix
|
4ed33b485a
|
Background colours for insertions/deletions.
|
2015-10-13 11:43:25 -04:00 |
|
Rob Rix
|
2a671d5403
|
Change up the outline colours.
|
2015-10-13 11:43:17 -04:00 |
|
Rob Rix
|
67a19682e8
|
HIghlight replacements.
|
2015-10-13 11:25:20 -04:00 |
|
Rob Rix
|
7aab1da72c
|
Shift things to either side.
|
2015-10-13 11:24:55 -04:00 |
|
Rob Rix
|
dd05a2d5ee
|
Skip empty branches.
|
2015-10-13 11:24:08 -04:00 |
|
Rob Rix
|
91093f1aac
|
Only wrap elements that exist.
|
2015-10-13 11:22:56 -04:00 |
|
Rob Rix
|
ec9c29e29d
|
Only add children that exist.
|
2015-10-13 11:22:34 -04:00 |
|
Rob Rix
|
b10f4e2507
|
Don’t float things.
|
2015-10-13 11:20:54 -04:00 |
|
Rob Rix
|
b5f8516ab7
|
Leaves are wrapped in paragraphs.
|
2015-10-13 11:16:52 -04:00 |
|
Rob Rix
|
6a9e71fcd5
|
Arrays wrap their children in <li> elements.
|
2015-10-13 11:15:33 -04:00 |
|
Rob Rix
|
69568fb622
|
Arrays add <ol> elements.
|
2015-10-13 11:15:23 -04:00 |
|
Rob Rix
|
208238ae6e
|
Add a function to wrap a node in another node.
|
2015-10-13 11:10:54 -04:00 |
|
Rob Rix
|
0dcecb9a00
|
Rename the DOM variable.
|
2015-10-13 11:09:30 -04:00 |
|
Rob Rix
|
f236cc9a52
|
Remove the left/right elements.
|
2015-10-13 11:08:12 -04:00 |
|
Rob Rix
|
90d3bee821
|
Disallow floating past other elements.
|
2015-10-13 11:07:55 -04:00 |
|
Rob Rix
|
27b5007eff
|
Style insertions/deletions a little.
|
2015-10-13 11:07:40 -04:00 |
|
Rob Rix
|
205449e197
|
Insert the diffs into a #diff element.
|
2015-10-13 11:05:13 -04:00 |
|
Rob Rix
|
d653790ee3
|
Add diffs to the body.
|
2015-10-13 11:04:21 -04:00 |
|
Rob Rix
|
6050677c3d
|
Ignore other keys, apparently.
|
2015-10-13 11:03:37 -04:00 |
|
Rob Rix
|
b8c5789786
|
Add before/after states.
|
2015-10-13 11:03:27 -04:00 |
|
Rob Rix
|
5d864a7f3d
|
Add replacements to the DOM.
|
2015-10-13 11:01:32 -04:00 |
|
Rob Rix
|
984858bb9c
|
Careful with your null checks, there.
|
2015-10-13 11:00:38 -04:00 |
|
Rob Rix
|
82918f0f4b
|
Add deletions.
|
2015-10-13 11:00:29 -04:00 |
|
Rob Rix
|
c7cc290f1d
|
Add insertions.
|
2015-10-13 10:59:45 -04:00 |
|
Rob Rix
|
549f482ebe
|
yes, she knows it’s a multipass
|
2015-10-13 10:57:24 -04:00 |
|
Rob Rix
|
cf64fbb7c7
|
Prefix categories.
|
2015-10-13 10:57:07 -04:00 |
|
Rob Rix
|
724e875a8e
|
Add categories.
|
2015-10-13 10:57:01 -04:00 |
|
Rob Rix
|
fff6bcf2fe
|
Add nodes’ text content.
|
2015-10-13 10:56:34 -04:00 |
|
Rob Rix
|
869322c69b
|
Tweak the fixture format.
|
2015-10-13 10:43:31 -04:00 |
|
Rob Rix
|
c5f2832663
|
Insert elements into the DOM.
|
2015-10-13 10:25:51 -04:00 |
|
Rob Rix
|
e9e6fe859e
|
Recur through arrays.
|
2015-10-13 10:25:35 -04:00 |
|
Rob Rix
|
0f3bc75982
|
Construct and return a div.
|
2015-10-13 10:17:17 -04:00 |
|