1
1
mirror of https://github.com/github/semantic.git synced 2024-12-22 14:21:31 +03:00
Commit Graph

327 Commits

Author SHA1 Message Date
Rob Rix
a5e11db66d Pull align out to the top level. 2016-05-13 18:25:42 -04:00
Rob Rix
bdd03bb122 For now, children should be aligned at a higher priority than their parents.
This came out of https://github.com/github/semantic-diff/pull/558.
2016-05-13 10:51:52 -04:00
joshvera
170110ee8e Fix up tests 2016-05-04 15:15:25 -04:00
Rob Rix
e70a50720c alignChildrenInRanges always exhausts its inputs, so call it instead. 2016-04-27 17:44:15 -04:00
Rob Rix
9c008f1116 Add a (failing) test that numberedRows produces the correct counts. 2016-04-26 15:44:11 -04:00
Rob Rix
64dd8d93da Add a function to get the counts of numbered rows. 2016-04-26 14:54:24 -04:00
Rob Rix
3ad8fb3b8a Sort the imports. 2016-04-26 14:53:50 -04:00
Rob Rix
3366b94b5a Simplify showLine a little further. 2016-04-25 15:08:20 -04:00
Rob Rix
ce9be615a6 Turn the bind around. 2016-04-25 15:04:55 -04:00
Rob Rix
632d2cf86b Simplify padding. 2016-04-25 15:03:49 -04:00
Rob Rix
55af6c2001 Strip newlines inline. 2016-04-25 15:00:46 -04:00
Rob Rix
3a3458684d Derive the Eq instance. 2016-04-25 14:59:20 -04:00
Rob Rix
237558fbed Simplify showLine. 2016-04-25 14:59:00 -04:00
Rob Rix
7628d15a73 Filter newlines out completely. 2016-04-25 14:54:13 -04:00
Rob Rix
ca3ff15a4f Prepend newlines so things line up nicely. 2016-04-25 14:52:24 -04:00
Rob Rix
077dfb8757 Show lines at the minimal width. 2016-04-25 14:51:25 -04:00
Rob Rix
643703821e Use the where clause. 2016-04-25 14:49:47 -04:00
Rob Rix
2bc33b58b8 Concatenate the maybes. 2016-04-25 14:45:07 -04:00
Rob Rix
e9f5c4bc4f Bind the shown lines. 2016-04-25 14:44:26 -04:00
Rob Rix
62f6844038 Map diffs into strings up front. 2016-04-25 14:43:07 -04:00
Rob Rix
f602dc90fe Add a function to convert These -> (,). 2016-04-25 14:14:05 -04:00
Rob Rix
98a7c049b2 Clip when padding. 2016-04-25 14:13:01 -04:00
Rob Rix
bd0d8f0d02 Map the diffs into functions first up. 2016-04-25 14:08:04 -04:00
Rob Rix
dde8612347 Revert "Flip the arguments to showDiff."
This reverts commit 6808da41529f58593553730451185cc90b643ba7.
2016-04-25 14:06:43 -04:00
Rob Rix
a5f45ed699 Flip the arguments to showDiff. 2016-04-25 14:04:57 -04:00
Rob Rix
958dfe914c Pad the first column of These. 2016-04-25 14:02:39 -04:00
Rob Rix
b9b5382b3d Use the pad function for This. 2016-04-25 14:01:45 -04:00
Rob Rix
e214dc3c1d Add a function to pad strings out. 2016-04-25 14:01:39 -04:00
Rob Rix
1fb647ae9d Drop the broken min. 2016-04-25 13:56:57 -04:00
Rob Rix
d9c2bb8e4c Strip newlines in the output diff. 2016-04-25 13:55:39 -04:00
Rob Rix
938b89f8db Add a function to strip newlines from a Functor. 2016-04-25 13:55:33 -04:00
Rob Rix
aa87f65466 Pad out This lines. 2016-04-25 13:47:21 -04:00
Rob Rix
77576905d1 Parameterize showLine by the column width. 2016-04-25 13:38:26 -04:00
Rob Rix
7999f8e540 Wrap the diff in PrettyDiff. 2016-04-25 13:37:19 -04:00
Rob Rix
51191338a6 Add an align binding. 2016-04-25 13:37:07 -04:00
Rob Rix
4d47ebc4b5 Define an Eq instance for PrettyDiff. 2016-04-25 13:00:26 -04:00
Rob Rix
639e1a9443 Add field accessors back in again. 2016-04-25 13:00:18 -04:00
Rob Rix
e481756bd3 Bind the sources in a let. 2016-04-25 12:57:57 -04:00
Rob Rix
3cde6162e7 PrettyDiff takes a pair of Sources. 2016-04-25 12:57:33 -04:00
Rob Rix
a805cad292 Pass the source to showDiff explicitly. 2016-04-25 12:56:03 -04:00
Rob Rix
0ca30921ca Add a Show instance for PrettyDiff. 2016-04-25 12:54:51 -04:00
Rob Rix
0d90744aac PrettyDiff doesn’t declare accessors. 2016-04-25 12:54:40 -04:00
Rob Rix
43359cad9c PrettyDiff carries the Source. 2016-04-25 12:53:15 -04:00
Rob Rix
564dd1d2c7 Stub in a PrettyDiff type. 2016-04-25 12:37:56 -04:00
Rob Rix
f0683932bb 🔥 redundant imports. 2016-04-22 12:56:13 -04:00
Rob Rix
f7fd63528a 🔥 obsolete bindings. 2016-04-22 12:56:09 -04:00
Rob Rix
d2dae5824d Expect children to be in a copointed context. 2016-04-22 12:18:40 -04:00
Rob Rix
7a3aac1af9 Add a failing test that we align context following insertions correctly. 2016-04-15 16:10:09 -04:00
Rob Rix
a61d847705 Replace Data.Bifunctor.These and Data.Align with the these package. 2016-04-14 22:00:00 -04:00
Rob Rix
d99d1d762c 🔥 some redundant imports. 2016-04-14 21:57:52 -04:00
Rob Rix
3662b021df Correct the test of insertion patch alignment. 2016-04-14 20:31:03 -04:00
Rob Rix
7c63e92ea7 Construct SplitPatches. 2016-04-14 20:27:24 -04:00
Rob Rix
e5dd029b10 Test that insertions are aligned. 2016-04-14 19:40:36 -04:00
Rob Rix
75bda340ef Sort the Data.Functor.Identity import. 2016-04-14 19:34:59 -04:00
Rob Rix
1c9e5d9087 🔥 tests of splitDiffByLines. 2016-04-14 18:31:03 -04:00
Rob Rix
2564034b6d 🔥 tests of splitAbstractedTerm. 2016-04-14 18:30:52 -04:00
Rob Rix
e3ace6408c Merge branch 'master' into cofree-and-bifunctors-sitting-in-a-tree-a-l-i-g-n-edly
# Conflicts:
#	test/AlignmentSpec.hs
#	test/PatchOutputSpec.hs
2016-04-14 12:57:45 -04:00
Rob Rix
ad47c77509 Correct some test cases. 2016-04-12 05:00:39 -04:00
Rob Rix
1a22eaebf6 Correct the tests. 2016-04-12 04:54:32 -04:00
Rob Rix
0437045089 Simplify the multiple children in a single line test. 2016-04-05 11:37:40 -04:00
Rob Rix
07cf5dac3c Add a (failing) test that multiple children on the same line get aligned. 2016-04-04 18:26:10 -04:00
Rob Rix
d35de99307 🔥 some redundant parens. 2016-04-04 18:25:44 -04:00
Rob Rix
50d18f4472 🔥 a do. 2016-04-04 18:19:58 -04:00
Rob Rix
63e33f54cc Put the branch/leaf/info DSL at the top level. 2016-04-01 10:15:48 -04:00
Rob Rix
9c706c05e2 🔥 patchWithBoth. 2016-04-01 10:13:37 -04:00
Rob Rix
2540e9d207 🔥 leafWithRangeInSource. 2016-04-01 10:13:33 -04:00
Rob Rix
4f9de16045 Free doesn’t export unfold. 2016-04-01 10:13:22 -04:00
Rob Rix
04fffe584f 🔥 redundant imports. 2016-04-01 10:13:13 -04:00
Rob Rix
19cc23b51a Merge branch 'master' into cofree-and-bifunctors-sitting-in-a-tree-a-l-i-g-n-edly
# Conflicts:
#	src/Diff.hs
2016-03-30 20:20:50 -04:00
Rob Rix
20bb94bf5e Also, tests. 2016-03-30 17:33:07 -04:00
Rob Rix
ea97b04032 Test that groupChildrenByLine produces asymmetrical context. 2016-03-24 13:56:07 -04:00
Rob Rix
04ca818b0b Rename the test. 2016-03-24 13:54:11 -04:00
Rob Rix
931ba9808f Test that groupChildrenByLine produces symmetrical context. 2016-03-24 13:53:58 -04:00
Rob Rix
07bc16bf35 Be more specific with the test names. 2016-03-24 13:44:57 -04:00
Rob Rix
899d53eec2 Test the alignment of identical nodes across multiple lines. 2016-03-24 13:05:52 -04:00
Rob Rix
fbbf80a3fa Test the alignment of identical nodes on a single line. 2016-03-24 13:05:44 -04:00
Rob Rix
2e9eb92609 Rename the tests. 2016-03-22 09:20:44 -04:00
Rob Rix
1a3a32e3e1 Correct the test fixtures. 2016-03-22 00:17:20 -04:00
Rob Rix
2226acf61c Revert "Add a convenience to construct Source Char."
This reverts commit 63e023e439491207aa739bb0e68660770eaa9272.
2016-03-21 19:08:35 -04:00
Rob Rix
7ff808f3dc Add some tests (which won’t typecheck yet). 2016-03-21 19:08:02 -04:00
Rob Rix
62ac37c981 Add a convenience to construct branch diffs. 2016-03-21 18:54:34 -04:00
Rob Rix
361bfc0e81 Add a convenience to construct leaf diffs. 2016-03-21 18:54:27 -04:00
Rob Rix
1f1be15a99 Add a convenience to construct Source Char. 2016-03-21 18:54:18 -04:00
Rob Rix
d3a3b68752 Add a convenience to construct Info. 2016-03-21 18:54:09 -04:00
Rob Rix
01f817a77e Move the other arbitrary instances into ArbitraryTerm. 2016-03-15 11:17:47 -04:00
Rob Rix
f3c6f8b3f6 Compute lines within Adjoined. 2016-03-15 10:58:54 -04:00
Rob Rix
c4146dbefa Correct the tests for the changes to the API. 2016-03-14 22:58:07 -04:00
Rob Rix
5fb11795dc 🔥 isEmptyRow. 2016-03-14 22:53:16 -04:00
Rob Rix
586894c316 splitAbstractedTerm no longer takes an align function. 2016-03-14 22:50:40 -04:00
Rob Rix
c22f86d812 🔥 adjoinRows tests. 2016-03-14 22:47:18 -04:00
Rob Rix
1bb87bf6ee Fix up a bunch of toLists into toStrings. 2016-03-11 18:35:31 -05:00
Rob Rix
379208b3a3 🔥 qualifications of zip & zipWith. 2016-03-11 14:21:42 -05:00
Rob Rix
9c011d7de5 Migrate off Both.zip. 2016-03-11 14:21:07 -05:00
Rob Rix
a22ac1ea31 🔥 the splitPatchByLines test. 2016-03-11 12:10:56 -05:00
Rob Rix
ebd4cc7369 Split the let bindings onto a new line. 2016-03-11 12:10:01 -05:00
Rob Rix
d35738ef73 Extract the patch into a let binding. 2016-03-11 12:09:46 -05:00
Rob Rix
ceb4a0b0ec Extract the ranges into a let binding. 2016-03-11 12:06:47 -05:00
Rob Rix
00f58ece6a Disable the aligning closed lines test. 2016-03-11 00:41:18 -05:00
Rob Rix
c750a98f4b Use alignRows in the tests. 2016-03-10 19:48:28 -05:00
Rob Rix
62cdbacdfe Test that child alignment is preserved. 2016-03-10 17:48:17 -05:00
Rob Rix
736e7b95c7 Write the closed rows as Closed "". 2016-03-10 15:47:10 -05:00
Rob Rix
257c538300 Correct the expectation of the aligning test. 2016-03-10 15:46:31 -05:00
Rob Rix
68c34c11b4 Align the rows. 2016-03-10 15:45:55 -05:00
Rob Rix
9c0b512092 Make that Row Char. 2016-03-10 15:45:23 -05:00
Rob Rix
3d8df9bc4f Test against Row String. 2016-03-10 15:44:36 -05:00
Rob Rix
bfb02f420e Fix the open row test. 2016-03-10 15:44:07 -05:00
Rob Rix
1812bd6415 Construct arbitrary closed lines. 2016-03-10 15:38:19 -05:00
Rob Rix
5e950062e4 Correct the test of line count preservation. 2016-03-10 15:25:00 -05:00
Rob Rix
b2e8a0698a Correct the row prepending test. 2016-03-10 15:18:55 -05:00
Rob Rix
8ff5cd101d Rename the adjoinRows spec. 2016-03-10 14:52:06 -05:00
Rob Rix
8d36c20e9c Use Both’s Monoid instance directly. 2016-03-10 09:24:15 -05:00
Rob Rix
68a1fb9cf8 Simplify the open row merging test. 2016-03-10 09:23:47 -05:00
Rob Rix
0e07398b59 🔥 the predicate parameters in coalescing and adjoining. 2016-03-10 09:19:47 -05:00
Rob Rix
a965894d16 Correct the test of aligning closed lines. 2016-03-10 01:04:42 -05:00
Rob Rix
324fcfab31 Correct the test of prepending closed rows. 2016-03-10 01:03:38 -05:00
Rob Rix
9614994e53 Use the isEmpty predicate to test for line emptiness. 2016-03-10 00:37:21 -05:00
Rob Rix
ec0c1c448e Migrate the splitAnnotatedByLines tests to splitAbstractedTerm. 2016-03-09 09:32:51 -05:00
Rob Rix
5d150fd816 Abstract splitAbstractedTerm over an alignment function. 2016-03-09 05:02:54 -05:00
Rob Rix
789a7d1be8 Abstract splitAbstractedTerm over an Applicative Traversable Functor. 2016-03-09 04:57:30 -05:00
Rob Rix
73aa926bdc Generalize adjoinRowsBy to any Applicative with an aligning function. 2016-03-09 04:13:09 -05:00
Rob Rix
d18e044d5c Use Line, not makeLine. 2016-03-09 01:56:41 -05:00
Rob Rix
64384f407b Use the existing totalRange function in the alignment spec. 2016-03-09 01:44:36 -05:00
Rob Rix
086a3d53cb 🔥 Row. 2016-03-09 01:39:18 -05:00
Rob Rix
820d38847c 🔥 makeRow. 2016-03-09 01:35:47 -05:00
Rob Rix
cb66328f79 Replace Row with a type synonym for Both. 2016-03-09 01:35:01 -05:00
Rob Rix
43ab2d4523 Avoid isOpenRowBy. 2016-03-09 01:05:06 -05:00
Rob Rix
ebbf19953e Stop treating EmptyLine as distinct from an empty line. 2016-03-09 00:58:09 -05:00
Rob Rix
9f26748f3b Abstract splitAnnotatedByLines over a makeTerm parameter function. 2016-03-08 23:37:11 -05:00
Rob Rix
3cb0cd4ac4 Remove some obsolete tests. 2016-03-08 22:14:22 -05:00
Rob Rix
cef2be6495 Correct the predicate. 2016-03-08 22:10:35 -05:00
Rob Rix
0bc811e3c1 Replace MaybeOpen with simple predicates. 2016-03-08 22:07:38 -05:00
Rob Rix
b6edbcd078 Test that adjoinRowsBy aligns on closed lines. 2016-03-08 21:51:42 -05:00
Rob Rix
50a99fe500 More predictable test of empty line promotion. 2016-03-08 10:19:05 -05:00
Rob Rix
c9f5154cc6 Correct the non-promotion test. 2016-03-07 19:56:57 -05:00
Rob Rix
368d943abc Correct the prepending test. 2016-03-07 19:54:55 -05:00
Rob Rix
acad320b73 Remove isEmptyLine. 2016-03-07 19:46:18 -05:00
Rob Rix
6bf8d10efd Remove isClosedBy. 2016-03-07 19:45:57 -05:00
Rob Rix
b100eb9674 Use isClosedRowBy as a predicate in the tests. 2016-03-07 19:45:39 -05:00
Rob Rix
a8286d66b1 Fix the isOpenRowBy use. 2016-03-07 19:45:25 -05:00
Rob Rix
1e31552397 Remove the tests of openLineBy. 2016-03-07 19:43:14 -05:00
Rob Rix
bf725daa90 Remove isOpenBy. 2016-03-07 19:43:01 -05:00
Rob Rix
a8cdb23694 Use isOpenRowBy. 2016-03-07 19:42:56 -05:00
Rob Rix
f7b4ecc1c1 Rename adjoinRowsByR to adjoinRowsBy. 2016-03-07 19:36:16 -05:00
Rob Rix
e81941f53d Migrate the tests to adjoinRowsByR. 2016-03-07 19:33:32 -05:00
Rob Rix
b47bc5bc16 Apply some of hlint’s advice. 2016-03-07 16:33:30 -05:00
Rob Rix
488ec69895 shouldBe gives better error messages. 2016-03-07 16:28:39 -05:00
Rob Rix
abcd9803f3 Pass the Info & Syntax in directly. 2016-03-04 21:12:49 -05:00
Rob Rix
5c06ecc6d0 Define splitAbstractedTerm by catamorphism (more or less). 2016-03-04 21:07:26 -05:00
Rob Rix
f546977b33 splitAnnotatedByLines takes Both Infos directly. 2016-03-04 20:25:33 -05:00
Rob Rix
7cb85f6571 Define splitDiffByLines by catamorphism. 2016-03-04 19:53:47 -05:00
Rob Rix
651f0106e3 Migrate a couple of tests over to splitDiffByLines. 2016-03-04 19:53:28 -05:00
Rob Rix
3a555df147 Swap the order of the operands to splitPatchByLines. 2016-03-04 19:07:54 -05:00
Rob Rix
61e43f8c02 splitPatchByLines doesn’t take previous indices. 2016-03-04 12:28:48 -05:00
Rob Rix
0cf7ba393d Alignment returns ranged Rows. 2016-03-04 12:26:40 -05:00
Rob Rix
e1f12e3c35 Verify that splitPatchByLines obeys the initial indices. 2016-03-03 15:40:41 -05:00
Rob Rix
aa389a9e99 Add a function to construct a leaf within a source. 2016-03-03 15:34:07 -05:00
Rob Rix
7a71b76d99 Simplify leafWithRangesInSources. 2016-03-03 15:33:31 -05:00
Rob Rix
1d89c90e38 Add a function to construct a patch from Both input terms. 2016-03-03 15:00:01 -05:00
Rob Rix
7104835753 Add an Arbitrary instance for Patch. 2016-03-03 14:59:33 -05:00
Rob Rix
7a3da76448 splitAbstractedTerm returns lines containing diff/range pairs. 2016-03-03 13:41:56 -05:00
Rob Rix
723f14aa4c Test splitAbstractedTerm. 2016-03-03 11:39:23 -05:00
Rob Rix
8e78339c39 🔥 openTerm. 2016-03-03 09:02:33 -05:00
Rob Rix
ae149c94ff Use runBothWith to tidy up a few computations. 2016-02-29 19:43:57 -05:00
Rob Rix
7548e148dc Rename runLeft/runRight to fst/snd. 2016-02-29 19:39:04 -05:00
Rob Rix
ac39e73691 Line’s Monoid instance will do just fine here. 2016-02-29 10:38:39 -05:00
Rob Rix
665ffa4133 We don’t need to destructure the Rows in the append test. 2016-02-29 10:33:29 -05:00
Rob Rix
df2b684229 Simplify how we compute combineIntoLeaves. 2016-02-29 10:31:53 -05:00
Rob Rix
7048a61660 Define leafWIthRangesInSources over Both. 2016-02-29 10:30:33 -05:00
Rob Rix
c889174aee Use Both to represent Diff annotations. 2016-02-29 10:12:34 -05:00
Rob Rix
0628793ab4 Use the Applicative instance in a test. 2016-02-29 09:29:50 -05:00
Rob Rix
a8efcb539a Row wraps a Both. 2016-02-29 09:22:52 -05:00
Rob Rix
1abab2bbce adjoinRowsBy applies Both MaybeOpen tests. 2016-02-29 08:55:30 -05:00
joshvera
2c4acfb14f Disambiguate the tests. 2016-02-29 07:45:24 -05:00
Rob Rix
0d77576a52 Represent categories in Both. 2016-02-28 22:10:02 -05:00
Rob Rix
81a1a14d4c Represent the input Ranges in Both. 2016-02-28 22:01:21 -05:00
Rob Rix
863251183f Represent alignment sources in Both. 2016-02-28 21:43:47 -05:00
Rob Rix
d6fb451ebd Rename SplitSpec to AlignmentSpec. 2016-02-28 14:05:19 -05:00