As an example in this image here. A clearly better choice is simply just deleting the first commented await block and the comment slash on the second, simply being more continuous. But instead it decided to split like that.
Another example for insertion, I can’t replicate it but it does happen very often:
Assume i have the word “Ba” and I want to insert whole word “Bababooey” from that. Instead of suggesting the remaining part only, Cursor will suggest insertion as B[ab]a[booey], with the square bracket being its suggestion.
I see the issue. Instead of offering one continuous delete/insert, Cursor Tab is splitting the change into separate chunks, which feels unintuitive.
For context, what version of Cursor and what OS are you on? And if you can catch the second case too, the insert one, in a screenshot, that’d be really helpful.
The 2nd case was harder to reproduce but I finally got it to work.
original text is `base.totalPrice`. For some reasons it wants to split the b to be a part of the Number word instead of inserting the whole block up until the opening (.
Hey, thanks for the second case and the system info, it’s exactly what I needed.
I can confirm the behavior: in the screenshot with PalNumber.of(base.totalPrice), the ghost text clearly splits the word (b gets stuck to Number, then the insertion continues) instead of just inserting PalNumber.of( before and ) after. The normal diff view shows the correct continuous version, so this looks like a quirk in the ghost-text renderer or diff matching algorithm, not the model itself.