Change the "Run and Debug" View's "Play" icon to a "Connect" icon when an Attach Mode Configuration is Selected
See original GitHub issueFeature Request
Please add a distinct “Connect” button icon for starting "request": "attach"
-type debug sessions in the debug view.
Details
“Launch” mode debug sessions run (“play”) some script or program when the start. By default, ending such a debug session will also “stop” said script or program. This is very clean and mirrored by the UI:
- Launch Mode Debug Session Start (Play):
- Launch Mode Debug Session Stop:
However, an “Attach” mode debug session “connects” to some engine/program/script when it is started. By default, ending such a debug session will “disconnect” from the engine/program/script and allow it to continue. This is very clean but not mirrored by the UI:
- Attach Mode Debug Session Start (Connect):
- Attach Mode Debug Session Disconnect:
In the “Attach” mode case, there is no paired “Connect” icon to signal to the user that starting this debug session will connect to a host (engine/program/script) and not run something.
The asymmetry can be summed up with this single screenshot:
“Play” and “Stop” work well together for a “Launch” mode debug session. A “Connect” icon would better communicate what starting an “Attach” mode debugger actually does.
The current icon list does not have a “connect” icon, but I imagine that it would be pretty straightforward to create one based on the current “disconnect” icon design language.
Important Note
Please note that I am requesting this on behalf of our debugger extension’s users. See below for more.
Background
I am working on a major update to the ExtendScript Debugger extension. ExtendScript is a custom JavaScript-like language developed by Adobe and implemented in several “host applications” (e.g. Photoshop, Illustrator, InDesign, Premiere Pro, etc.). Scripts are run in engines within the host applications in a variety of ways, including:
- Automatically at startup
- Specified directly via application menus
- Via callbacks from custom UIs (e.g. button clicks)
- Via a properly configured debugger
The new version will support starting debug sessions using both attach
and launch
configurations to support the myriad operating scenarios. It will also support running a script directly within a target host application+engine from VS Code. This latter feature is implemented via commands and with a status bar button for convenience. This status bar button is accompanied by the $(play)
icon.
Many of our pre-release users have expressed confusion about the “Attach” mode debug configurations. When they click the “Play” button to connect to the host they have an expectation that the focused script will actually be run. We consistently have to explain that this is not how “Attach” mode configurations work and suggest that they either try the “Launch” mode configuration or keep their current configuration and use the script evaluation commands/button (which, again, has a “play” icon).
We did not connect the consistent user confusion about the configuration modes until we received the following feedback from an especially insightful user (emphasis mine):
I also figured out what makes the new debugger hard to ‘grok’ for me… I now think that the root cause is the UI. The thing is that the ‘play’ symbol in VSCode… does not mean ‘Run’ or ‘Play’ - it means ‘Connect’. If that symbol were instead something else - like a power plug or so, that would help me remember that [it means] ‘Connect’. And then the ‘Eval in…’ [button] at the bottom - that is where the little triangle should appear.
That way I am connecting to a particular engine in a particular app, and when I click that ‘Eval in…’ [button] I am running a script.
Now that I know how to adjust my thinking, things work a lot better for me, but I reckon that for new users, it would be helpful to change the play symbol into a ‘connect’ symbol and add a ‘play’ symbol to the ‘Eval in…’ bar.
When this user provided this feedback it was as though a light had been turned on - suddenly the constant confusion of users made sense. They see the “Play” button and they think “this will run something”. That is a reasonable assumption. In the case of “Attach” mode configurations, however, that assumption does not hold.
Issue Analytics
- State:
- Created a year ago
- Reactions:35
- Comments:28 (12 by maintainers)
Top GitHub Comments
The status quo is confusing. Confused the crap outta me, for one. Can I suggest something like the unicode U+1F91D handshake character?
This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!