Vscode: Make run and debug welcome view extensible

Created on 25 Nov 2019  路  17Comments  路  Source: microsoft/vscode

We need to introduce a contributable menu to the Debug: Start view such that each extension can contribute commands tehre.

We would have to enforce when context on top of these contributed commands just so the view does not end up being a jungle. For example when activeFile is python add the python commands.

An open question is how these contributed commands would look like, would it also be a blue button, or is there a ... affordance which when clicked shows all the contributed commands.

debug feature-request on-release-notes on-testplan

Most helpful comment

Dear debug protocol implementers,

Debug welcome view is now supporting contributing welcome content via static package.json API.
Thus extensions can contribute text and buttons to the welcome view. The idea is to introduce actions and help text that should make it easier for users to start debugging.
Please note that we would like to keep this view not cluttered, thus we highly recommend that you use the context key debugStartLanguage. More about this context key can be found in my comment here.

API details here https://github.com/microsoft/vscode/issues/89080
This is still proposed API and we are in the transition of making the API final - which should happen in the March milestone.
Example how to js-debug did this https://github.com/microsoft/vscode-js-debug/commit/9e6dc67323cac2068f0369503525617f2b987c15

image

@APerricone, @akaroml, @andysterland, @ayuckhulk, @DanTup, @daviwil, @devoncarew, @dibyendumajumdar, @DonJayamanne, @felixfbecker, @glennsarti, @gregg-miskelly, @hbenl, @iradul, @ivanbuhov, @joelday, @jpogran, @joshtynjala, @Kode, @miniwolf, @MSLaguana, @luabud, @lukaszunity, @ntotten, @phoityne, @pieandcakes, @ptrthomas, @raix, @richterger, @rkeithhill, @rebornix, @roblourens, @svaarala, @testforstephen, @vadimcn, @vshaxe, @WebFreak001, @weinand, @yurydelendik

All 17 comments

For now I believe a better approach is for each extension to contribute a view, for example https://github.com/microsoft/vscode-python/issues/9268

Due to that pushing this feature request out of this milestone and we can reconsider this in the future if needed.

Debug start view can now be contributed to. We still need to:

  • [ ] show button as disabled
  • [ ] add telemetry
  • [x] render keybindings
  • [x] figure out a context for extensions to use
  • [x] make sure my buttons are at the top

fyi @joaomoreno

This seems to have landed in today's Insiders. I noticed that we're getting a focus rectangle that doesn't occur on Stable:

image

@gjsjohnmurray correct. We decided to change that behavior, that focus is first passed to the view, and then the user can navigate to focus what button / text he wants. We think this makes the most sense from the accessibility standpoint.

@connor4312 @roblourens please note that the debug start view is now contributable to.
You could potentially add an action to open the Javascript Debugger.
I am still thinking about context keys and will keep you updated on that.
Here's an example how Git extension contributes a button to the explorer view

https://github.com/microsoft/vscode/blob/093ada38305dc4b26bdfb62ae86bca245cb9d233/extensions/git/package.json#L1858
The id of the debug start view is workbench.debug.startView

fyi @weinand

I think the contributed action should open the debug terminal.

After some pondering I decided on the following context key:
debugStartLanguage
This context key will be set to the last active editor language that has a debugger interested in it.

So for example, user opens a javascript file, and the open a json file.
The context key will have the value javascript. Since no debugger is interested in json files.
I believe this context key will convey the right notion of what a user is interested in debugging and not bring too much UI flickering.

Since context keys luckliy now support OR I I suggest that javascript debugger contributes a Debugger Terminal command when debugStartLanguage == javascript || debugStartLanguage == typescript.... All the language from here

If there are better ideas on what context key to use to not have the view cluttered I am open for suggestions.

@connor4312 let me know if you do not have time to contribute the "Debug Terminal" action and I can also provide a PR.

Follow up item to show button as disabled https://github.com/microsoft/vscode/issues/91141

I will also store the value of the context key per workspace storage.
So when a user starts vscode again and has no editor open that we preserve the last language he was interetsed in. Thus the contributed buttons would still be there.

Thanks a lot! Very elegant :)

@isidorn And here are preconditions for button enablement (internal only): https://github.com/microsoft/vscode/commit/0c1c8f2760967f4a950af36e0482b78ea2916a34

Awesome, adopted it for debug. 馃帀

I probably won't have time to do this before endgame, but would be happy to accept a PR or take care of it next iteration.

Dear debug protocol implementers,

Debug welcome view is now supporting contributing welcome content via static package.json API.
Thus extensions can contribute text and buttons to the welcome view. The idea is to introduce actions and help text that should make it easier for users to start debugging.
Please note that we would like to keep this view not cluttered, thus we highly recommend that you use the context key debugStartLanguage. More about this context key can be found in my comment here.

API details here https://github.com/microsoft/vscode/issues/89080
This is still proposed API and we are in the transition of making the API final - which should happen in the March milestone.
Example how to js-debug did this https://github.com/microsoft/vscode-js-debug/commit/9e6dc67323cac2068f0369503525617f2b987c15

image

@APerricone, @akaroml, @andysterland, @ayuckhulk, @DanTup, @daviwil, @devoncarew, @dibyendumajumdar, @DonJayamanne, @felixfbecker, @glennsarti, @gregg-miskelly, @hbenl, @iradul, @ivanbuhov, @joelday, @jpogran, @joshtynjala, @Kode, @miniwolf, @MSLaguana, @luabud, @lukaszunity, @ntotten, @phoityne, @pieandcakes, @ptrthomas, @raix, @richterger, @rkeithhill, @rebornix, @roblourens, @svaarala, @testforstephen, @vadimcn, @vshaxe, @WebFreak001, @weinand, @yurydelendik

@wardengnaw

Do we have to support translations in the wellcome text?

@raix that would be great, since the welcome text is user facing and all user facing text should be translated.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

curtw picture curtw  路  3Comments

borekb picture borekb  路  3Comments

philipgiuliani picture philipgiuliani  路  3Comments

omidgolparvar picture omidgolparvar  路  3Comments

v-pavanp picture v-pavanp  路  3Comments