Skip to content
This repository has been archived by the owner on Oct 2, 2021. It is now read-only.

Show frame skip status in call stack #150

Closed
roblourens opened this issue Jan 5, 2017 · 16 comments
Closed

Show frame skip status in call stack #150

roblourens opened this issue Jan 5, 2017 · 16 comments
Milestone

Comments

@roblourens
Copy link
Member

If a frame is for a skipped file, show (skipped) in its name.

@roblourens
Copy link
Member Author

@isidorn and @weinand, I'm thinking about how to show that a file is skipped in the call stack. Useful for a few reasons,

  • The feature is sort of invisible otherwise
  • Something visible will happen when you use the context menu option (I can resend the pause event, so the call stack gets refreshed)
  • The context menu must be a toggle because of how the API works, so you need to know the initial state

I can add a tag to the left or right side:
image

The right side might be better since it's the file that's skipped, not the function. But if the frame's Source has a path, then it displays part of the path instead of the source name, so I can't customize it. I guess this is related to #16913. Would it be a breaking change to show the name on the right side, if it's set? Other ideas?

@isidorn
Copy link
Contributor

isidorn commented Jan 6, 2017

I would start with showing the (skipped) on the right hand side. It belonds next to the file name since the file is skippped and (skipped) is better in a regular than verbatim font.
If that does not work then we can tune it

@roblourens
Copy link
Member Author

Sure, so does it make sense to always show the source name when available? Should I open an issue for that?

@weinand
Copy link

weinand commented Jan 6, 2017

Instead of showing 'skipped' we could try a font variation that does not clutter the UI that much, e.g. showing the module name dimmed and the hover would explain the reason for this).

@roblourens
Copy link
Member Author

Then the protocol would have to know about skipFiles?

@weinand
Copy link

weinand commented Jan 6, 2017

So your approach with the "(skipped)" prefix would just prefix the name attribute of the Source object?

@roblourens
Copy link
Member Author

Yeah (I would really like the font variation though, it's more similar to what other tools do)

@roblourens
Copy link
Member Author

I was debugging some async/await code and was thinking about how much nicer this would look if the module name was dimmed on non-sourcemapped frames

image

Those frames are skipped with smartStep, not skipFiles, but the two should be marked the same in UI. And was also thinking that I could change the smartStep implementation to be based on the blackbox API, for performance.

@weinand
Copy link

weinand commented Jan 9, 2017

Even if we are not adding the 'skipFiles' concept to the debug protocol, we could add some abstract attribute to the StackFrame or Source type.
@roblourens any suggestion how we could name the attribute?

@roblourens
Copy link
Member Author

hidden or dimmed? Hm, can you think of other situations where this would be useful?

@weinand
Copy link

weinand commented Jan 9, 2017

@roblourens 'hidden' sounds good. 'dimmed' is too concrete because it is a real visual style.
C++/C# could use 'hidden' to indicate that source is not available.

@roblourens
Copy link
Member Author

I'm trying to think of a good synonym for deemphasized since it's technically more accurate than dimmed.

@auchenberg auchenberg modified the milestone: Backlog Jan 9, 2017
@weinand
Copy link

weinand commented Jan 10, 2017

@roblourens I like 'deemphasize' (and the word seems to exist: http://www.thesaurus.com/browse/de-emphasize but I didn't like any of the listed synonyms).
I've created a protocol change request for this: microsoft/vscode-debugadapter-node#93

@weinand
Copy link

weinand commented Jan 11, 2017

@roblourens I've added a presentationHint attribute to Source and a value deemphasize. It is available in version 1.16.0-pre.1 of the debug protocol.

@roblourens
Copy link
Member Author

roblourens commented Jan 11, 2017

This looks great! Thanks guys.

image

Now I will use the same UI for code that was smartStep'd over. I'll use the tag (smartStep) instead of (skipped).

@roblourens
Copy link
Member Author

Yes, a stack from async/await with smartStep is infinitely more readable now:

image

@vscodebot vscodebot bot locked and limited conversation to collaborators Mar 22, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants