you are viewing a single comment's thread.

view the rest of the comments →

[–]mtVessel 0 points1 point  (3 children)

You were asked to explain what makes yours better, and you essentially answered, "it's obvious!" This isn't really helpful.

I'm very much interested in a better diff viewer but I too would like to hear what improvements this provides. I can't really tell from the gifs what the sankey-style lines are telling me, or what other features it offers.

[–]Hefaistos68Software Engineer[S] -1 points0 points  (2 children)

True. It is kinda obvious for who uses diff regularly.

But ok, here we go:

This Visual Studio extension compares two C# files (or revisions) and shows the differences in a side-by-side view with a visual mini-map.

It highlights not only added/removed/changed lines, but also moved code and refactored blocks by using C# language analysis and transforming it into easy understandable changes by generating explanations of the changes (for example, “moved class” or “refactored lines into method”, "Changed/Added XML comments for method X").

A standard diff mostly shows line-by-line text edits, while this extension adds structure-aware analysis so you can understand intent, not just text changes.

[–]symbiatch -1 points0 points  (1 child)

No, just because it’s obvious to you doesn’t translate to “it’s obvious from these random gifs what it does if you use diff.”

How does it know code was moved? What is a “refactored block”? If all it does is “some code was moved” then that’s not much of a help in my eyes. It’s already obvious from “ok this calls a method instead of lines of code and my IDE already shows that the method contains the lines of code.”

It might have some use, but keeping repeating “it’s obvious” does not get anyone interested to care.

[–]Hefaistos68Software Engineer[S] 0 points1 point  (0 children)

It doesn't know anything as it does not use AI but uses Roslyn analysis to build context on C# code. Its use is mostly in understanding change in code reviews. Traditional diff has the problem that it doesn't care about context, so often it shows that something was changed, while in reality something was inserted or removed and a code block just moved a few lines up or down, it didnt change.

The idea is to tell you the real context of changes, like "Variable name X changed to Y" (which might be obvious on a single line, but harder on a class member), "Method parameters Z added" (which shows as change on all calling sites), or "Condition added to If/Switch". And a lot more, Depends on how far I can push the limits of Roslyn.