-
Notifications
You must be signed in to change notification settings - Fork 29k
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
Improve the dynamic launch config UI #110009
Comments
Makes sense and good points. Some open questions:
All of this put together, it looks like this in the Dropdown. It will look similar in the quick pick fyi @alexr00 for potential input from tasks |
Tasks maintains a history list of the most recently run tasks, and the size of the history can be configured using |
We have two UIs for launch configs:
Let's start with the "Select and Start" Quickpick:IMO this should behave like the "Run Task" QuickPick, which means that it needs a "recent section" and all recently started launch configs (both dynamic and static) should appear there. An alternative to the "recent" section would be to add all dynamic launch configs that were started once to the list of static launch configs (and remember them across restarts). I'm not really sure what approach I prefer but when considering the next suggestion, it would make sense to use the "alternative" approach for both UIs. Now the "debug drop down menu":In order to keep the menu short, we should not add a "recent" section. And to avoid too many separators in the debug drop down, we could move the dynamic providers to the last section (the one with the "Add Configuration...") because these items are really very similar too. |
I think the "alternative approach" here makes sense. However for that change we would have to store N dynamic configurations names in the storage for each workspace. That would be a bigger change which I can look into how feasable it is... |
But today we are storing one, right? And with the proposal you would probably store 1-3? |
Today we are not storing any dynamic configuration related data. We just store the Correct for recent, we would have to store even more, since we would need to know in what order dynamic and regular configs were used. |
If I remember correctly, then storing a dynamic config means remembering the name and the providers debug type. For this proposal the only difference is that we would potentially store more than one. |
Correct. However we do not distinguish between dynamic and regular ones. So for the active one we simply store the name and the type. |
We'll have to decide whether we want to cap the number of dyn. entries and we should consider to introduce a command to clear the dyn. entries. |
Yeah beacuse of that showing just one is the pragmatic approach. If users have to manage this via a command than it is a pain to use. |
Another approach is to make the dropdown a context menu instead, which would allow you to have nested menus and a "recent" section without worry of clutter. |
Thanks a lot for feedback. Here's how it looks now
Try it out and let me know what you think. Thanks @connor4312 if we used the context menu in the debug dropdown that would make sense, but imho context menu does not look nice on all platforms and the whole thing no longer feels like a native dropdown. Anyways I am open for changing that in the future |
@isidorn I've tried the new UI and it works great! One problem I see: when running the latest Mock-Debug out of source, it activates on startup. |
@weinand thanks for trying it out. What should not happen and what would be a bug:
|
@isidorn there is no need to validate selected configurations on startup - validation only needs to occur if user tries to launch the configuration. If the configuration is no longer valid, the corresponding dyn. provider should open. |
Looks very similar to tasks. I like it 😁 |
Thanks a lot for verifying! |
Currently the last used dynamic launch is remembered in the debug dropdown behind the debug type provider item.
This is not discoverable because the name of the provider item does not reflect what's behind it.
E.g. a provider item "Mock Debug..." on first execution will open a Quickpick with all dynamically provided launch configs. After one of them is selected and executed, it is remembered behind the "Mock Debug..." item.
Now the launch config can be used directly (but only for users that know what is behind the provider item).
And since the provider item's functionality is no longer available, there is no obvious way to select a different dynamic launch config from the same provider.
I suggest the following:
Exactly like "tasks" we will remember recently selected launch configs as separate items both in the debug dropdown and the "Select and Start" Quickpick. This makes even dynamic launch configs available for quick access based on typing their name.
/cc @connor4312
The text was updated successfully, but these errors were encountered: