Skip to content
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

Allow reloading / stopping / pausing sessions inline in the tree #79189

Closed
weinand opened this issue Aug 15, 2019 · 8 comments
Closed

Allow reloading / stopping / pausing sessions inline in the tree #79189

weinand opened this issue Aug 15, 2019 · 8 comments
Assignees
Labels
debug Debug viewlet, configurations, breakpoints, adapter issues feature-request Request for new features or functionality release-notes Release notes issues verification-needed Verification of issue is requested verified Verification succeeded

Comments

@weinand
Copy link
Contributor

weinand commented Aug 15, 2019

Today we support controlling sessions via context menus:

2019-08-15_10-34-57

2019-08-15_10-35-18

Using inline actions on the debug session tree node is a more direct and discoverable way to achieve the same.

@weinand weinand added feature-request Request for new features or functionality debug Debug viewlet, configurations, breakpoints, adapter issues labels Aug 15, 2019
@weinand weinand added this to the On Deck milestone Aug 15, 2019
@isidorn
Copy link
Contributor

isidorn commented Sep 4, 2019

If we were to render this for all threads and all sessions it would be too much noise.
Thus I suggest to only render them on hover for both sessions and threads.
We would only show the actions which are currently enabled.

I can look into this milestone, and I can also bring it up in the ux meeting today.

@isidorn isidorn modified the milestones: On Deck, September 2019 Sep 4, 2019
@weinand
Copy link
Contributor Author

weinand commented Sep 4, 2019

yes, showing actions only on hover makes sense.

But only showing enabled actions might be problematic because it prevents a stable UI: if I do not move the mouse, clicking it should always result in the same action being pressed. I do not want to suffer from a "moving target" problem.

@isidorn
Copy link
Contributor

isidorn commented Sep 4, 2019

After discussing in the UX call we decided to:

  • Show only the inline actions on hover
  • When hovering hide the "Paused" label to save on space and show actions
  • When there are no threads, show all 6 actions on the debug session (continue, step over, step in, step out, restart, stop)
  • When there are threads, show 4 actions on the threads (continue, step over, step in, step out) and show 2 actions on the debug session (restart, stop)
  • try to keep stable position when changing from paused / running state so actions do not jump a lot

fyi @pavelfeldman @dgozman

@pavelfeldman
Copy link
Member

@isidorn This sounds fantastic!

@isidorn
Copy link
Contributor

isidorn commented Sep 6, 2019

We have a first version of this working in vscode insiders.
The only thing we were discussing is if we should show some actions in the title of the CALLSTACK view when no sessions are shown. For now we decided not to do this, but we can add this if we think it is necessery.

Please try it out and provide feedback. THanks!

hello

@dgozman
Copy link
Contributor

dgozman commented Sep 9, 2019

I tried this out, and it works great!

However, the debug toolbar is empty now. Perhaps related?
Screen Shot 2019-09-09 at 11 20 17 AM

In our usecase, not every session can be restarted, for example web workers. Should we expose a way to control that? Note that DAP capability supportsRestartRequest does not help, since it merely changes restart request to a pair of terminate and launch/attach. Perhaps the solution should be similar to issue #62419? @isidorn, @weinand what do you think?

@isidorn
Copy link
Contributor

isidorn commented Sep 10, 2019

@dgozman Debug toolbar is fixed in latest - sorry about that (captured in #80563)

As for the disabling Restart this is currently not possible. I suggest you create a new feature request, since the session needs to specify that it can not be restarted. In the meantime I suggest that you turn on capability supportsRestartRequest - that will make VS Code send a restart request to your adapter which you can ignore - thus making the command a no-op.

As for pairing it up with #62419 this does not sound related to me. Feels like two different capabilities that just luckly apply to the same type of sessions in your use case.

@isidorn
Copy link
Contributor

isidorn commented Sep 19, 2019

Adding verfied per @dgozman comment
Also I regularly use it when self hosting and am happy with the experience thus far.

@isidorn isidorn added verification-needed Verification of issue is requested verified Verification succeeded labels Sep 19, 2019
@isidorn isidorn added the release-notes Release notes issues label Oct 4, 2019
@vscodebot vscodebot bot locked and limited conversation to collaborators Oct 21, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
debug Debug viewlet, configurations, breakpoints, adapter issues feature-request Request for new features or functionality release-notes Release notes issues verification-needed Verification of issue is requested verified Verification succeeded
Projects
None yet
Development

No branches or pull requests

4 participants