Is there a way to choose where those can be placed.
I hate the floating buttons because it changes the size to I end up clicking “Undo” when I plan on clicking “Keep” and that’s simply a waste of tokens since I have to put the file back.
There was a time where it was tucked away in the top right corner and that’s just a much better UX.
I’ve created a bug report for it, but I guess it could become a feature request. Sounds like as of now, Cursor is only allowing the overlay method which like you said is worse because the button positions change.
I think the jumping around of button positions is quite bad and we will fix that, but we hear feedback in both directions that they want the top right breadcrumb or they want the bottom island.
We decided to choose bottom island because it seems most people who want it in the top right actually just want it to go away, and we have a new No Inline Diffs feature that gets rid of it altogether
I have so far undone 4 batches of changes just today because of the absolutely $%)(ing maddening movement of the buttons. Holy ■■■■■ I mean this is UI design 101 people.
@msfeldstein Despite so many iterations of the keep/undo buttons, there are still a long list of problems with extremely simple fixes:
The buttons don’t stay in one predictable location
The hit area of the buttons don’t fill the $()*ing button
There’s no visual/iconographical difference between inter-file navigation and intra-file navigation (except for the tiny arrows pointing a different way)
The “keep all”/”undo all” options are in a COMPLETELY different location
Here are some designs I whipped up for a complete solution:
As you can see, these differentiate strongly between “changes within this file” and “navigate between file” and offers the keep/undo all buttons where they logically belong, which is with file navigation.
I could also imagine arguments for ONLY showing intra-file navigation in the actual editor window and inter-file navigation in its own place separate from an editor window, or various other similar variations.
May I suggest allowing more customisation from the users?
Lots of UI changes are being made, and allowing the user to set them would be preferable, I believe. Instead of updating to the latest , and invariably having something changed on the UI and feeling like a completely different product - that’s a not so great experience
I use them all the time, and I prefer them in top right corner for the undo all/keep all, navigating between files, and arrows for navigating the diffs within current file. Then a specific overlayed undo/keep button for each diff.
Like this
This was by far superior than the overlay layout (current) because the buttons did not move around (right aligned instead of centered), except when they all turn into “Review Next File” button, when that was clicked it would then put your mouse over Keep File button which is better than the overlay layout which puts your mouse over Undo All after clicking “review next file”
Nice mockup. I think simply just putting what used to be in the breadcrumbs in the bottom right of the page or in the breadcrumbs satisfies most issues. Your mockup tries to separate the inline diff navigation from file navigation, but I have never been confused by that and think having all the controls together makes more sense. I can click through files and see how many changes each have right from same area.
I think having the undo/keep buttons for each inline diff anchored on the page like in your mockup, is good for users who don’t prefer to scroll manually through file. I really liked having the undo/keep buttons at the inline diff with the diff navigation buttons next to it as well. Now both could be done, but I think for minimalism, having the inline diff undo/keep buttons only at the inline diff is preferred and is how things have been.
Top right and definitely keep them - i also like going thru the whole file and accepting each change on critical refactors too. If I don’t stay on top of the entire change set, line by line, its easy to not get what I want sometimes.