New Launch UI
Current UI used to configure debug launch takes 5 top-level tabs to configure a single executable. If one wants to debug multiple executables - either Linux executables or bare-metal executables, one has to create multiple launch configurations and then launch them manually or via launch group. Not only this duplicates a lot of information, but it also means that any synchronization, such as simultaneous stopping, or stepping through IPC, must be handled on the IDE side, which adds considerable delay. Instead, it would be good to implement multi-executable launch that is executed atomically, using a single debugger connection.
The existing approach to launch UI simply will not scale to multiple executables - the UI is already overly busy, and putting more content there will be a usability disaster. What is proposed is a new approach inspired by modern web technologies:
- The UI of launch configuration is structured in a hierarchical tree, with navigation between them implemented using links and a breadcrumbs navigator. - The top level, visible by default, displays the key, most often used information, such as target connection and the list of executables - To reduce visual complexity, ideas from web design will be used; in particular we'll avoid group boxes, using fonts for hierarchy instead, and we'll place widgets on a grid that is global to entire launch configuration dialog.