Wilfred Hughes
Wilfred Hughes
By choosing `input`, we're unable to match `baz`, as `baz` is after `input` in the before file but after `input` in the after file.
Smaller: ``` bar .or(map1(|| foo())) .or(abc.map2(|s| baz(s))) ``` ``` alt( map1(|| foo()), map2(xyz, |s| baz(s)), )() ``` The last `()` on the second file is important. I think difftastic isn't...
I think difft is picking the delimiter in `alt(...)` as unchanged and then can't find the optimal matching (which is choosing the RHS delimiter as novel).
Consider tracking the nearest parent matched delimiter.
Smaller repro: ``` bar .or(foo()) .or(baz()) ``` ``` alt( foo(), baz() )() ```
It might make sense to model parent delimiters precisely up to a maximum depth, then use the current heuristics.
difftastic uses pretty much all the colours available on a typical terminal, plus bold, italic, dimmed, and bright colours. I don't really want to build a theming system, especially before...
See also #265 and #275.
I'm not able to reproduce this. Could you attach the exact files you're having an issue with? If I copy-paste your examples, I'm seeing this:  Difftastic...
Thanks. This looks like a tree-sitter-yaml parsing issue: difftastic is getting exactly the same parse tree for both. ``` $ difft --dump-ts /tmp/file2.yaml stream (0, 0) - (2, 128) document...