-
Notifications
You must be signed in to change notification settings - Fork 29.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Preserve tree state in debug Variables view #76476
Conversation
…ac but don't want to make this into the PR
@haneefdm thanks a lot for your PR. |
I don't know why all builds are failing. Pretty sure it is not my change that is causing it. How do I restart the checks/builds. I must have done my push exactly at the wrong time. |
@isidorn I forced a restart of the checks with virtually no change, and this time it only fails on macOS in integration tests (before everything failed during 'Install Dependencies'). Perhaps I should wait for a quiet time and try again. This never happened to me before. Please advise me if there is a better way to start the checks/builds without modifying code. In the meantime, would it be possible for you to review my comments and the solitary change I made? |
This reverts commit 9f86032.
Do not worry about the build failures. Sometimes they fail randomly which seems to be the case now. |
Thanks a lot for your PR. Looks great, merging in 🎉 |
Thank you so much. Yes, that side effect was intentional :-) At one point I was looking at the current state of the debugger to save state and then I removed it, because this felt a lot better. |
Great thanks. Yeah it seems good. Let's try it out in insiders and see what feedback comes. |
This fixes issues #76427 and #25652 (duplicates). I mentioned in detail what was causing the issue in #76427.
We save and restore the tree state between a
stopped->running
transition and back tostopped
in conjunction with the Call Stack window which keeps track of the current thread/frame context.It also preserves the visually nice feature of not flashing if those transitions happen quickly (within a half a second) but longer periods between transitions will clear the Variables window (so the user cannot interact with it). The only difference is that if eventually, the debugger stops, we restore the tree instead of going back to the default state.
I tested it with cpptools (MIEngine) and the typescript debuggers.