Commit Graph

8317 Commits (c15ba1e75ae6de31661d525dbbb386ac21094ca0)
 

Author SHA1 Message Date
Wilfred Hughes c15ba1e75a New screenshots and add screencast demo 2022-03-26 15:46:41 +07:00
Wilfred Hughes 1a8d7d06a7 Store previous_sibling in SyntaxInfo 2022-03-24 21:57:13 +07:00
Wilfred Hughes 59ee169ddc Remove leftover debug logging 2022-03-24 21:27:27 +07:00
Wilfred Hughes 807be70e31 Factor out a helper function for splitting unchanged singleton lists 2022-03-24 21:20:46 +07:00
Wilfred Hughes 870806c017 Log the number of toplevel nodes too
This is computationally cheaper than calculating depth, and it gives a
good hint regarding depth (fewer toplevel nodes: depth is probably
deeper).

Fixes #159
2022-03-23 22:59:39 +07:00
Wilfred Hughes 2b36a755f0 Ensure that blank lines in multiline strings are shown as changed
Fixes #121
2022-03-23 22:47:17 +07:00
Wilfred Hughes 886c0964ff Treat shebangs in dart as atoms
E.g. given:

    #! /usr/bin/env dshell

tree-sitter AST doesn't have positions for the `/usr/bin/env dshell`
part, so treat it all as an atom.
2022-03-23 22:13:45 +07:00
Wilfred Hughes f15ec6d637 Lower the default node limit for tree diffing
Fixes #176
2022-03-22 21:15:54 +07:00
Wilfred Hughes 4647112e93 Define a highlighting file for Clojure
This isn't provided upstream, and the parse tree doesn't have a lot of
information, but we can at least handle string literals and keywords.
2022-03-22 21:08:46 +07:00
Wilfred Hughes c9c3582871 Print incrementally when diffing directories
Fixes #170
2022-03-22 09:51:23 +07:00
Wilfred Hughes 503c8b26ec Fix tests broken in 9e32e2e08
The changes in context.rs were intentional, the changes in
line_parser.rs were a result of bad stash merging. Revert the
line_parser.rs changes.
2022-03-21 23:55:32 +07:00
Wilfred Hughes fa4a662645 Fix typo and clarify VCS 2022-03-20 22:32:49 +07:00
Wilfred Hughes 9e32e2e08e Ensure matched lines includes blanks at the ends of the file
Fixes #163
2022-03-20 22:31:32 +07:00
Wilfred Hughes 905fc9ec8b Ignore the trailing newline in source files
This should have produced a change in output, but it's currently
ignored due to #163.
2022-03-20 22:26:44 +07:00
Wilfred Hughes c7795111f5 cargo fmt 2022-03-20 21:30:17 +07:00
Wilfred Hughes 68f3ab2b92 Don't consider lines with whitespace to have missing syntax
Fixes #171
2022-03-20 19:49:13 +07:00
Wilfred Hughes 4563648a9f Clarify ChangeKind helper method name 2022-03-20 15:17:32 +07:00
Wilfred Hughes 12ee2c7673 Warn if both arguments are the same path
Fixes #164
2022-03-20 15:14:14 +07:00
Wilfred Hughes 2fd48800c7 Update changelog for previous commit 2022-03-20 15:06:13 +07:00
Wilfred Hughes a18dce036a Handle novel MatchedPos values that have unchanged values on the same line
Fixes #169
2022-03-20 15:03:22 +07:00
Wilfred Hughes e2d1a80235 Merge branch 'osa1-dart'
Closes #166
2022-03-20 11:41:10 +07:00
Wilfred Hughes 049a213a82 Add dart-src symlink 2022-03-20 11:37:05 +07:00
Wilfred Hughes 29050f00ce Configure language and fix highlighting for dart 2022-03-20 11:36:12 +07:00
Wilfred Hughes b60ab25850 Add 'vendor/tree-sitter-dart/' from commit '6a25376685d1d47968c2cef06d4db8d84a70025e'
git-subtree-dir: vendor/tree-sitter-dart
git-subtree-mainline: 0c53a6bcf8
git-subtree-split: 6a25376685
2022-03-20 11:14:48 +07:00
Wilfred Hughes 0c53a6bcf8 Remove copied files 2022-03-20 11:14:33 +07:00
Ömer Sinan Ağacan fb73c84960 Add a Dart sample 2022-03-20 11:07:39 +07:00
Ömer Sinan Ağacan 0b7e00e517 Copy tree-sitter-dart files 2022-03-20 11:07:39 +07:00
Ömer Sinan Ağacan 1e77e540a9 Remove submodule 2022-03-20 11:07:39 +07:00
Ömer Sinan Ağacan a2488f984c Add support for Dart 2022-03-20 11:07:32 +07:00
Ömer Sinan Ağacan b8c7ce2398 Add tree-sitter-dart repo 2022-03-20 11:06:53 +07:00
Wilfred Hughes bb1f1e9ad7 Prefer Iterator::next() over incrementing an index 2022-03-20 11:00:56 +07:00
Wilfred Hughes 3dc193ed0c Tweak badge styles 2022-03-19 12:44:42 +07:00
Wilfred Hughes 9435798c9c Next release will be 0.24 2022-03-19 10:27:04 +07:00
Wilfred Hughes 06ffa0267a Next release will be a patch release with a single crash fix 2022-03-19 10:24:30 +07:00
Wilfred Hughes d06f357c93 Fix crash when outer delimiters are discarded when skipping unchanged
If we skip some nodes inside a list whose delimiters are unchanged, we
need to mark the outer list as unchanged.

Split ChangeState::Unchanged into UnchangedNode and UnchangedDelimiter
to make this clearer, and add a test.
2022-03-18 16:00:05 +07:00
Wilfred Hughes 6d3b1ffbdd Update test names to reflect current function names 2022-03-18 15:35:04 +07:00
Wilfred Hughes 038463d0e4 Add Debug for ChangeState to help debugging 2022-03-18 13:26:39 +07:00
Wilfred Hughes 0e04e199e4 Remove NovelTree edges from graph
This is a small speedup (up to 6% reduction in instructions) and makes
the graph logic easier to reason about.

In principle this can change dififng results, but all of the sample
files are unaffected.

This logic was intended to solve the problem of a small number of
nodes being matched up in a very large expression. We can do this as
cleanup after diffing, which should be faster and more effective
(see #162).
2022-03-18 12:31:22 +07:00
Wilfred Hughes 0379b49109 Clarify non-goals 2022-03-17 22:41:47 +07:00
Wilfred Hughes b5187d98d0 Roll version 2022-03-17 22:22:42 +07:00
Wilfred Hughes e38d14a144 Prefer aligning blank lines in display
After we've aligned lines based on diff results, we have intermediate
lines that we need to align somehow. Previously, we'd just take them
in order, aligning the first on the LHS with the first on the RHS and
so on.

If the intermediate lines start or end with a sequence of blank lines,
prefer aligning the blank lines. If we have both, arbitrarily choose
the ending blank lines.

This has produced better results in many of the sample files, although
in the case of slow_before.rs we've just changed from a leading blank
line alignment to a trailing blank line alignment.
2022-03-17 22:16:45 +07:00
Wilfred Hughes a51b81e86d cargo fmt 2022-03-17 20:45:09 +07:00
Wilfred Hughes eb59e15cd8 Silence some of the noisier clippy lints 2022-03-17 20:13:27 +07:00
Wilfred Hughes 2ce09e0a56 Move functions only used in context calculations to context.rs 2022-03-17 09:32:34 +07:00
Wilfred Hughes 6d58247465 Preserve the outer delimiter when shrinking
Previously, we'd always discard the outer delimiter if it matched on
both sides. This prevented the tree diff finding optimal diffs.

Fixes #124
2022-03-16 23:38:05 +07:00
Wilfred Hughes f4f12003cb Fix minor clippy lints 2022-03-16 22:42:31 +07:00
Wilfred Hughes d709aa98b5 Fix typo 2022-03-15 21:52:09 +07:00
Wilfred Hughes 83eea58fbc Display cost when printing routes 2022-03-15 21:33:01 +07:00
Wilfred Hughes 02976415dc Remove unnecessary braces 2022-03-15 21:19:05 +07:00
Wilfred Hughes 40d3ccd06c Fix confusion between byte length and codepoint length in styling
We should split lines based on their codepoint length, so all our
lengths are on codepoint boundaries. We can then safely index by byte position.

All the positions are measured in bytes, not code points. Tweak
function names to make this explicit.

Fixes #149
2022-03-15 09:50:13 +07:00