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.
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:
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:

@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.
@isidorn Telemetry is in: https://github.com/microsoft/vscode/commit/a1f61fd0fec2e3dbe159264f4b69148554fcbfd9
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

@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.
Most helpful comment
Dear debug protocol implementers,
Debug welcome view is now supporting contributing welcome content via static
package.jsonAPI.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
@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