Rob Rix
3cae267d77
Add a function to parse into a leaf term.
...
We aren’t using the source positions yet because O(n) 😭 will have
to sort this out later.
2015-12-16 10:29:23 -05:00
Rob Rix
5628582923
Revert "Add a Token type."
...
This reverts commit 7207d11e233b9e83db1fdf5e396195b36f9f802a.
2015-12-16 09:54:03 -05:00
Rob Rix
a950eff438
Revert "Tokenize strings."
...
This reverts commit 306fc275f7e0bd3c1a760d079a65e3c50fca7bb0.
2015-12-16 09:53:08 -05:00
Rob Rix
432e83f5b4
Revert "Split token representations up a bit."
...
This reverts commit 3970c6497c3577c6151f7cf339451b0473580796.
2015-12-16 09:51:31 -05:00
Rob Rix
42c83c2ea7
Stub in a parser for module declarations.
2015-12-16 09:51:07 -05:00
Rob Rix
0552f2184e
Split token representations up a bit.
2015-12-16 09:50:40 -05:00
Rob Rix
751b4b749d
Make it slightly more obvious when an error has occurred.
2015-12-16 09:50:29 -05:00
Rob Rix
da793e21d5
Tokenize strings.
2015-12-16 09:41:46 -05:00
Rob Rix
40e9068ed8
Add a Token type.
2015-12-16 09:41:32 -05:00
Rob Rix
6ea78f4318
Merge branch 'output-directory' into haskell-parser
2015-12-16 01:58:18 -05:00
Rob Rix
cd460e4567
Pass it to optional
to make it optional, apparently.
2015-12-16 01:53:18 -05:00
Rob Rix
d0c3650045
Split the lines.
2015-12-16 01:42:53 -05:00
Rob Rix
dcbba9bf1b
Replace the extension using the operator I guess?
2015-12-16 01:41:45 -05:00
Rob Rix
b26f16478f
Provide a default value for the option.
...
I’m not sure that this is the best way of doing this.
2015-12-16 01:37:05 -05:00
Rob Rix
923e54ff9d
Pick a filename if the output path is a directory.
2015-12-16 01:28:40 -05:00
Rob Rix
3a4c9f733d
Move the write
binding to the outer where clause.
2015-12-16 01:22:48 -05:00
Rob Rix
ed26ed4b80
Break the lambda out into a where clause.
2015-12-16 01:10:20 -05:00
Rob Rix
599663e83d
🔥 writeToFile.
2015-12-16 00:44:26 -05:00
Rob Rix
ba437bd477
Use case analysis instead of maybe
.
2015-12-16 00:43:13 -05:00
Rob Rix
1ea542fccb
Write split diffs to the output path or stdout.
2015-12-16 00:40:59 -05:00
Rob Rix
3216f77fce
Add a helper to write files out.
2015-12-16 00:40:12 -05:00
Rob Rix
25394d2923
Import System.IO.
2015-12-16 00:39:07 -05:00
Rob Rix
5242c21b7a
Rename the rendered diff bindings.
2015-12-16 00:26:13 -05:00
Rob Rix
0181673e55
Document the output option.
2015-12-15 23:33:48 -05:00
Rob Rix
d733d0627f
Add an optional output dir argument.
2015-12-15 23:31:36 -05:00
Rob Rix
6b61950e6e
Ditto for the field.
2015-12-15 23:24:04 -05:00
Rob Rix
d174a0c8c8
Rename Output to Renderer.
2015-12-15 23:23:45 -05:00
Rob Rix
d28ab9041d
Use the strArgument shorthand.
2015-12-15 23:20:33 -05:00
joshvera
5fe694d2b8
nope gotta normalize sources in main
2015-12-15 17:42:37 -05:00
joshvera
d4b41f8109
just use TextIO.readFile
2015-12-15 16:08:35 -05:00
Rob Rix
e3c7aeeada
.hs → Haskell.
2015-12-15 15:08:54 -05:00
Rob Rix
9c2b12a615
Stub in a runHaskellParser
function.
2015-12-15 15:08:49 -05:00
Rob Rix
d766f346fa
Stub in a Haskell parser.
2015-12-15 14:53:34 -05:00
Rob Rix
cbf313f011
Use languageForType to select a parser.
2015-12-15 14:40:49 -05:00
Rob Rix
31fcf6e33c
Add a languageForType binding to TreeSitter.
2015-12-15 14:39:54 -05:00
Rob Rix
9c0bca7b67
Revert "Rephrase parserForType with pattern matching at the root."
...
This reverts commit 2b1c9004f73283445f8f3523898e88ba4ed131fd.
2015-12-15 14:38:31 -05:00
Rob Rix
fe85e31574
Rephrase parserForType with pattern matching at the root.
2015-12-15 14:38:20 -05:00
Rob Rix
46029defd2
Import Haskell.
2015-12-15 14:36:31 -05:00
Rob Rix
8e154e0016
Move parserForType into Parser.
2015-12-15 14:36:25 -05:00
Rob Rix
ac042e0c4a
Remove some unnecessary parameters from makeLeaf.
2015-12-15 14:36:03 -05:00
Rob Rix
30c2d96066
TreeSitter doesn’t import Parser.
2015-12-15 14:35:48 -05:00
Rob Rix
5add0089a2
Lean on the Monoid instance.
2015-12-15 14:35:37 -05:00
Rob Rix
ad68d7beab
Move Parser into the executable(s).
2015-12-15 14:35:11 -05:00
Rob Rix
706da9e13e
Stub in a Haskell parser module.
2015-12-15 14:22:06 -05:00
joshvera
8f834c7779
Merge remote-tracking branch 'origin/master' into fix-unicode
2015-12-15 13:31:47 -05:00
joshvera
6eb8172fe4
output split diffs as Text
2015-12-15 13:29:58 -05:00
Rob Rix
2a43e355d7
Pairs are Fixed, not Indexed.
2015-12-15 09:14:23 -05:00
Rob Rix
f399b496d7
Get the substring of the keys for pair nodes.
2015-12-14 18:47:29 -05:00
Rob Rix
defc45eb4e
Use getSubstring
for arbitrary children of keyed nodes.
2015-12-14 18:47:20 -05:00
Rob Rix
8ba29d97a3
Add a binding to get the substring for a node.
2015-12-14 18:38:52 -05:00
Rob Rix
c6e5f89dfe
Assign non-pairs a key from their substrings.
2015-12-14 18:36:46 -05:00
Rob Rix
09ec17cbb6
Stub in a function to map pairs to better keys.
2015-12-14 18:34:53 -05:00
Rob Rix
40f6df8b5d
Merge branch 'master' into ordered-map
2015-12-14 17:35:08 -05:00
Rob Rix
d34bf7db42
Merge branch 'ordered-map' into split-rendering-of-keyed-nodes
2015-12-14 17:25:59 -05:00
Rob Rix
3c8b79f0b0
Correct some merge confusion.
2015-12-14 17:22:53 -05:00
Josh Vera
6850b402d4
Merge pull request #326 from github/post-process-leaf-nodes-in-terms
...
Post process leaf nodes in terms
2015-12-14 17:20:16 -05:00
joshvera
4d04a5b3dd
Remove getLineRange
2015-12-14 17:15:44 -05:00
joshvera
824cc801f0
Remove ts_node_p_start_point and ts_node_p_end_point
2015-12-14 17:15:40 -05:00
Rob Rix
62815448c1
Use OrderedMap everywhere.
2015-12-14 17:12:47 -05:00
joshvera
e51492b8d5
Remove line range from Info
2015-12-14 15:52:39 -05:00
Rob Rix
cded6c0d7d
Get the substrings out at the same time as computing the ranges.
2015-12-14 15:37:30 -05:00
Rob Rix
df4b74876a
Rename the word ranges function.
2015-12-14 15:31:45 -05:00
Rob Rix
9c1dd640f5
Don’t bind subrange, since we only use it once.
2015-12-14 14:41:12 -05:00
Rob Rix
1d9e945aad
Pass absolute start indices to children.
2015-12-14 14:40:30 -05:00
Rob Rix
714c8ff682
Compute the substring from the subrange.
2015-12-14 14:39:50 -05:00
Rob Rix
37f236d7d7
Remove redundant imports.
2015-12-14 14:15:46 -05:00
Rob Rix
4083829e12
Bind a different variable for the subrange.
2015-12-14 13:04:21 -05:00
Rob Rix
c115262f7f
Share a single computation of the substring for each case.
2015-12-14 13:01:17 -05:00
Rob Rix
718399c7d9
Compute the substring once and only once.
2015-12-14 12:59:47 -05:00
Rob Rix
bf9aa915a3
Move rangesOfWordsFrom into Range.hs.
2015-12-14 12:44:48 -05:00
Rob Rix
8acc962ad2
Offset leaves’ ranges to get the substrings.
2015-12-14 12:40:08 -05:00
Rob Rix
bac6b696a5
Make leaves within the parent’s substring.
2015-12-14 12:39:56 -05:00
Rob Rix
dbce74368f
Pass the start index to makeLeaf.
2015-12-14 12:39:09 -05:00
Rob Rix
41032f0399
We don’t need a $ here.
2015-12-14 12:37:23 -05:00
Rob Rix
6fc7632e93
Only pass the start index around.
2015-12-14 12:37:07 -05:00
Rob Rix
774f731ab1
Pass the source to makeLeaf.
2015-12-14 12:35:16 -05:00
Rob Rix
4dd9907130
Try negating the offset.
2015-12-14 12:34:18 -05:00
Rob Rix
4cd2b2db7a
Parentheses are not required here.
2015-12-14 12:25:09 -05:00
Rob Rix
a239384831
Work within recursively smaller and smaller substrings.
...
This resolves the O(n²) behaviour we were seeing.
2015-12-14 12:24:55 -05:00
Rob Rix
79e4860c62
Pass the source & root to recursive invocations.
2015-12-14 12:18:58 -05:00
Rob Rix
039e5849ca
Revert "Shadow the outer function’s name."
...
This reverts commit 4cb7c975334d540b9ef08d59724536d2bbd8fda0.
2015-12-14 12:17:35 -05:00
Rob Rix
c004eb739e
Revert "Push the inner function out and operate within substrings."
...
This reverts commit 435ba7a2e35d9a4bb61413b91895b88bf3cb2be9.
2015-12-14 12:17:30 -05:00
Rob Rix
b08bb04767
Push the inner function out and operate within substrings.
2015-12-14 12:16:44 -05:00
Rob Rix
1c3db7ae47
Shadow the outer function’s name.
2015-12-14 12:15:55 -05:00
Rob Rix
ae047f3012
Reorder the parameters for partial application.
2015-12-14 12:15:28 -05:00
Rob Rix
6dbaf9f53a
Replace wordy leaves in both terms.
2015-12-14 12:13:18 -05:00
Rob Rix
36747be406
Add a function replacing wordy leaves in a term with branches of per-word leaves.
2015-12-14 12:09:21 -05:00
Rob Rix
0944591fab
Add a function computing the ranges of non-whitespace substrings within a string.
2015-12-14 12:08:33 -05:00
Rob Rix
9e8a6f8456
Default to the line by line parser.
2015-12-09 10:36:37 -05:00
Rob Rix
a75c1b0482
No need to reinvent fmap.
2015-12-09 10:18:52 -05:00
Rob Rix
da3634c59a
parserForType
returns a Parser.
...
This change moves the languages out of IO. I believe this to be correct
(as they should be referentially transparent) but we may wish to review
that carefully.
2015-12-09 10:11:30 -05:00
Rob Rix
d7f415da04
Move all of the tree-sitter stuff into its own module.
2015-12-09 09:58:15 -05:00
Rob Rix
dcbf7bafb7
Use the Parser type.
2015-12-09 09:50:55 -05:00
Rob Rix
49910d1d1e
Render HTML to Html.
2015-12-07 14:34:58 -05:00
Rob Rix
a5e7341322
Push the let bindings out a bit.
2015-12-07 14:23:32 -05:00
joshvera
395cfde9aa
takeExtension returns extensions with dots
2015-12-04 16:25:01 -05:00
joshvera
d7089ec506
Remove unused parser type
2015-12-03 15:54:41 -05:00
joshvera
395eee7f7c
Merge remote-tracking branch 'origin/split-diffs-in-haskell' into select-grammar
2015-12-03 15:50:26 -05:00
joshvera
fae0a806f3
use ts_language_javascript
2015-12-03 15:44:08 -05:00
joshvera
d43ced80f5
we just say ts_language_javascript
2015-12-03 15:34:41 -05:00
joshvera
79f2f94c2c
Add ts_language_js as a language
2015-12-03 15:21:34 -05:00
joshvera
c20ea6ee78
Switch parsers on mediaType
2015-12-03 15:10:49 -05:00
joshvera
370fbe4819
remove duplicate imports
2015-12-03 14:03:10 -05:00
Rob Rix
bbcb3be6fc
Move Split & Unified into the library.
2015-12-03 11:37:18 -05:00
Rob Rix
51db79e961
(Incorrect) rendering of indexed nodes to rows.
2015-12-03 11:36:00 -05:00
Rob Rix
80dcd8efae
Return ranges from diffToRows.
2015-12-03 10:50:03 -05:00
Rob Rix
ffcb4d9c98
Zip left/right elements together.
2015-12-03 10:39:48 -05:00
Rob Rix
b075e8b18f
Add zipMaybe
.
2015-12-03 10:36:17 -05:00
Rob Rix
f8f392262d
Collect the left/right elements.
2015-12-03 10:20:02 -05:00
Rob Rix
db0b5eca8f
Remove an unused import.
2015-12-03 10:19:24 -05:00
Rob Rix
6a3fc9b6b9
Destructure the annotations.
2015-12-03 10:13:24 -05:00
Rob Rix
7873b0e6f3
Rename freeSyntaxToSplit to annotationAndSyntaxToRows.
2015-12-03 10:09:01 -05:00
Rob Rix
6a05ca0b25
Rename straightToSplit to diffToRows.
2015-12-03 10:07:26 -05:00
Rob Rix
485959b135
Row’s constructor is curried.
2015-12-03 10:06:39 -05:00
Rob Rix
bc57f7f871
Simplify Row to two HTML elements.
2015-12-03 10:05:18 -05:00
Rob Rix
c246b08cf4
Pass the annotations to freeSyntaxToSplit.
2015-12-03 10:03:45 -05:00
Rob Rix
1c55552a1b
Delegate free rendering to freeSyntaxToSplit.
2015-12-03 10:02:52 -05:00
Rob Rix
676c5c67ab
Compute the rows for free leaves.
2015-12-03 10:02:30 -05:00
Rob Rix
8db4f0f947
Add a Row type.
2015-12-03 10:02:08 -05:00
Rob Rix
f97b2aa8b4
Stub in a function rendering split diffs directly.
2015-12-03 09:10:00 -05:00
Rob Rix
4853095dbd
Merge branch 'split-diffs-in-haskell' of https://github.com/github/semantic-diff into split-diffs-in-haskell
2015-12-03 09:05:59 -05:00
joshvera
8438037658
remove uses of lineRange
2015-12-02 21:52:38 -05:00
joshvera
2a063d3277
Move Range to a module
2015-12-02 21:40:34 -05:00
Rob Rix
f01cf12567
Rename splitTerm
to termToHTML
.
2015-12-02 17:39:46 -05:00
Rob Rix
3990324bd0
Concatenate HTML lines in Dl elements. I hope.
2015-12-02 17:39:46 -05:00
Rob Rix
8cbe16883d
Concatenate HTML lines in Ul elements.
2015-12-02 17:39:46 -05:00
Rob Rix
c3cd1edc7d
Add a function which concatenates together HTML lines.
2015-12-02 17:39:46 -05:00
Rob Rix
5523a89eb5
Add a function which appends an element onto the last line of a list of HTML lines.
2015-12-02 17:39:46 -05:00
Rob Rix
0bf32bc50f
Only export split
.
2015-12-02 17:39:46 -05:00
Rob Rix
10e7c748cb
Split <ul> by line.
...
Surely this can’t be this easy.
2015-12-02 17:39:46 -05:00
Rob Rix
8e25d59506
Don’t split <dt>.
2015-12-02 17:39:46 -05:00
Rob Rix
87b86ba817
Split spans into lines.
2015-12-02 17:39:46 -05:00
Rob Rix
7d3542075d
Split text nodes into lines.
2015-12-02 17:39:46 -05:00
Rob Rix
b45b2c62f2
Represent Patch
HTML as Patch
es.
2015-12-02 17:39:46 -05:00
joshvera
1dd8d93ce1
use fromIntegral
2015-12-02 14:29:19 -05:00
Rob Rix
0996c1da5f
Apply a couple of linter-suggested eta reductions.
2015-12-02 09:26:36 -05:00
Rob Rix
0969736753
Infix fmap for reduced chaff.
2015-12-01 16:36:43 -05:00
Rob Rix
d574443969
Split rendering of unpatched leaves.
2015-12-01 16:34:26 -05:00
Rob Rix
3d291be3d3
Split rendering of keyed terms.
2015-12-01 16:18:49 -05:00
Rob Rix
05c20e8da6
Make a list of map elements.
2015-12-01 16:18:43 -05:00
Rob Rix
cb715cb8ea
Accumulate keyed elements.
2015-12-01 16:18:36 -05:00
Rob Rix
dd5c507f0c
Definition lists contain a list and not a map.
2015-12-01 16:18:19 -05:00
Rob Rix
3daa354cce
Add a term case.
2015-12-01 16:18:08 -05:00
Rob Rix
8387d7bc6e
Split rendering of fixed terms.
2015-12-01 16:07:53 -05:00
Rob Rix
9b1b1b8643
Extract a makeList function for lists.
2015-12-01 16:07:45 -05:00
Rob Rix
453499d4d7
Use subtext
.
2015-12-01 15:57:44 -05:00
Rob Rix
26625e1c1c
Add a function to produce a node from a subrange.
2015-12-01 15:57:37 -05:00
Rob Rix
776580768c
Handle indexed nodes (or pretend to).
2015-12-01 15:56:15 -05:00
Rob Rix
c44418272c
Render patches and terms to HTML (maybe)
2015-12-01 15:39:55 -05:00
Rob Rix
cc5cca02f7
Classification of terms by their categories.
2015-12-01 15:39:45 -05:00
Rob Rix
e6f75ea741
ClassNames Maybe???
2015-12-01 15:39:21 -05:00
Rob Rix
f68c0521a8
Add a stupid HTML type.
2015-12-01 15:31:02 -05:00
Rob Rix
6da6631302
Name the line range.
2015-12-01 15:30:54 -05:00
Rob Rix
25b1756419
Populate the line range.
2015-12-01 15:04:23 -05:00
Rob Rix
fe4e2cf260
Bridge to the node start/end point functions.
2015-12-01 14:59:29 -05:00
Rob Rix
1b5f6b848d
stub line ranges in Info
2015-12-01 14:51:21 -05:00
Rob Rix
f2ca75a276
Map patches into pairs of optional elements.
2015-12-01 14:35:41 -05:00
Rob Rix
9048d3101f
Map terms into elements.
2015-12-01 14:35:33 -05:00
Rob Rix
68ce3a200e
Add an Element type synonym.
2015-12-01 14:35:23 -05:00
Rob Rix
080fda5bdf
Stub in splitting.
2015-12-01 14:18:13 -05:00
Rob Rix
9f41d5072e
Only export the one symbol.
2015-12-01 11:38:48 -05:00
Rob Rix
8600d7d71b
Stub in split diff rendering.
2015-12-01 11:33:16 -05:00
Rob Rix
226dc1e966
Hide Data.Set.split
.
2015-12-01 11:33:10 -05:00
Rob Rix
5512f48ee5
Add a --split
option.
2015-12-01 11:32:52 -05:00
Rob Rix
f655c414f7
Bind the diff outside the output.
2015-12-01 11:26:46 -05:00
Rob Rix
bfb982f69e
Only format unified diffs when --unified is used.
2015-12-01 11:24:33 -05:00
Rob Rix
e8609ba886
Remove files
.
2015-12-01 11:22:28 -05:00
Rob Rix
0dbfbba869
Use the parsed arguments.
2015-12-01 11:22:26 -05:00
Rob Rix
250f52e01a
Parse the args with our parser.
2015-12-01 11:19:40 -05:00
Rob Rix
2976bb1f18
Add a parser for our arguments.
2015-12-01 11:15:13 -05:00
Rob Rix
b98839393d
Split the sources up into fields.
2015-12-01 11:15:05 -05:00
Rob Rix
3c1c4e6911
Add the model for our arguments.
2015-12-01 11:08:04 -05:00
Rob Rix
d5f53facd2
Stub in a Split module.
2015-12-01 10:56:27 -05:00
Rob Rix
be48dd844f
unifiedRange
operates on its argument, not the after
string.
2015-12-01 10:24:36 -05:00
Rob Rix
8a17c2eea9
Pass the source into annotationAndSyntaxToChunks
.
2015-11-30 18:50:08 -05:00
Rob Rix
701846c49d
Rename f
.
2015-11-30 18:28:40 -05:00
Rob Rix
8b74a99e7e
Everything is lists of chunks.
2015-11-27 14:28:06 -05:00
Rob Rix
4a6a17ce26
Remove `Unified.
2015-11-27 14:28:01 -05:00
Rob Rix
b1629443fb
Compute the chunks in a Unified
rendering.
2015-11-27 14:15:42 -05:00
Rob Rix
ea37bf8889
Add a Unified
datatype to render to.
2015-11-27 14:15:34 -05:00
Rob Rix
f2cede523e
Only take the difference # of characters.
2015-11-27 12:50:08 -05:00
Rob Rix
a2f190fb14
Export substring.
2015-11-27 12:49:46 -05:00
Rob Rix
6852e72e08
Factor Chunk out of substring.
2015-11-27 12:49:40 -05:00
Rob Rix
4aa89bd919
Print out the unified diff.
2015-11-27 12:42:00 -05:00
Rob Rix
070e60f149
Alphabetical order.
2015-11-27 12:41:38 -05:00
Rob Rix
acfb27ba9b
Diff things.
2015-11-27 12:22:05 -05:00
Rob Rix
bb9bf71d17
Merge branch 'master' into sunshine-lollipops-and-rainbows-everywhere
...
# Conflicts:
# semantic-diff.cabal
2015-11-27 11:36:18 -05:00
Rob Rix
c77b0e088e
Remove Console.
2015-11-27 11:33:46 -05:00
Rob Rix
afce15e01f
Use <> instead of mappend.
2015-11-27 11:32:31 -05:00
Rob Rix
3d65c325d1
We no longer need Console.
2015-11-27 11:31:35 -05:00
Rob Rix
5c295fdcec
Remove the Attribute
stuff.
2015-11-27 11:31:24 -05:00
Rob Rix
be328aa0c2
Unified rendering produces ByteStrings using rainbow.
2015-11-27 11:31:03 -05:00
Rob Rix
b109418ede
We don’t need format
after all.
2015-11-27 11:18:51 -05:00
Rob Rix
1010e10889
Add a binding to format a string.
2015-11-27 10:36:59 -05:00
Rob Rix
99e383a644
Move Console and Unified into the exe.
2015-11-27 10:14:12 -05:00
Rob Rix
908d6b9de0
Ingest Keyed nodes.
2015-11-27 09:19:40 -05:00
Rob Rix
1ecad15128
Import Data.Map again.
2015-11-27 09:19:09 -05:00
Rob Rix
854e2f7013
withNamedChildren returns name/child pairs.
2015-11-27 09:19:02 -05:00
Rob Rix
2353cf3798
Rename the parameter.
2015-11-26 16:28:17 -05:00
Rob Rix
0e68767028
Close over the function.
2015-11-26 16:27:57 -05:00