Rework Script Editor editing history #108057
Draft
+32
−112
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Supposed to fix #92420
The core of the problem is that Script Editor assumes that actions within the same script will not be stored in the history. So like, you can go back to previous script, move around, go forward to next script and that altered state will be stored in the previous history step. #63515 was added on top of this behavior, which is obviously wrong.
My changes in this PR make any history change always be pushed as the last action. So if you go back to previous script and do something that affects history, you can no longer go back to the next script, because the "redo" is discarded. This is how VS Code behaves for example.
Putting as draft, because I got too tangled in the code and don't feel like touching anymore it right now. Maybe I'll finish it sometime.
Also fun fact, ScriptTextEditor has some methods referring to "previous state", but they are effectively never used. It's some leftover from early versions of #63515.