mupchrch / split-diff

Side-by-side file compare for the Atom text editor.
https://atom.io/packages/split-diff
MIT License
200 stars 26 forks source link

Request: Allow editor interaction while computing diff #149

Closed matthewgdv closed 5 years ago

matthewgdv commented 6 years ago

Hi,

A glaring oversight I've noticed with this package is that in larger diffs it can take 5-30 seconds (depending on the pc) to compute a diff, and since it recomputes after every little change, it effectively makes this package unusable for all but the smallest files unless you have all the time in the world and the patience of a saint.

I propose that instead of having a large message saying "calculating the diff for you" across the screen, that "calculation-in-progress" icon be moved down to the bottom pane (where metadata such as the file encoding, filepath etc. is displayed), and whenever you make a change have it clearly show that split-diff is working on recalculating a diff, but still let the user continue to edit their files.

Then, if the user makes further edits while the diff is recomputing simply abort the current diff calculation and immediately start recomputing the diff all over again. Basically, the user only gets a fresh diff if they actually let the diff calculate without making changes, but they aren't forced to wait with their hands on their laps for several seconds every single time they as much as type a single letter.

Until something like this is implemented I don't think I can possibly use this package, the diff plugin for Notepad++ is quite a bit worse than this, so I don't want to go back to that, but this issue is making split-diff unusable for me.

Cheers, and thanks for making this package!

mupchrch commented 6 years ago

I believe currently you can edit while it is running. I think it's a really good idea to move that loading icon down to the status bar at the bottom of the screen. I also planned to add an option to turn off updating the diff as you type.

That being said, I have been pretty busy lately so there is no current ETA on any of those things unfortunately. Thanks for your input!

DallasO commented 6 years ago

I agree. Setting a delay of when to recompute (and resetting the counter if typing again), or recomputing on save would be nice.

And integrating with the busy-signal package would be enough for a loading icon, unless you don't want that as a dependency. If I had the time, I would try to help out, but thought I would add my thoughts here.