Skip to content
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

Debug protocol extension: 'icon' attributes on expression evalution results #30

Closed
gregg-miskelly opened this issue Jun 8, 2016 · 5 comments
Assignees
Milestone

Comments

@gregg-miskelly
Copy link
Member

gregg-miskelly commented Jun 8, 2016

To be able to use the debug protocol in other IDEs (Visual Studio, Xamarin Studio) or VS Code in the future we should think about how the debug protocol should support attributes on an expression to indicate what kind of item a child item is for example:

eval-icon-attribues

We have attributes for:

  • Is Static
  • Is error
  • Is property
  • Is method
  • Is event
  • Is class
  • Is constant
  • Accessibility (private, protected, sealed)
@weinand weinand self-assigned this Jun 8, 2016
@weinand weinand added this to the backlog milestone Jun 8, 2016
@weinand
Copy link
Contributor

weinand commented Jun 16, 2016

@gregg-miskelly since the VS Code UI is very light on icons, we will probably not introduce icons in the debugger UI. But it makes sense to have this (optional) information available for Variables.

I suggest we introduce an optional attribute 'kind' for this (because you've used 'kind' yourself in the description from above).

@weinand weinand modified the milestones: June 2016, backlog Jun 16, 2016
@weinand
Copy link
Contributor

weinand commented Jun 21, 2016

@gregg-miskelly @jacdavis could you come up with a list of 'kind' values that we could add to the protocol as recommended values? Those values should be mappable to Xamarin and VS icons.

@jacdavis
Copy link

I'll track down the full list as the ui must interpret a bit field of possible values as described here (https://msdn.microsoft.com/en-us/library/bb145595.aspx). I'll take a look at how the ui processes these and get back to you.

@jacdavis
Copy link

Looking at the source, the icons are a combination of three pieces of information:
The type of item: (Error, Property, Method, Event, Class, Constant, Exception)
The visibility of the item (Public, Private, Protected, Final, and Internal)
The "staticness" of the item: is it static or not.

We also take into account if the item has side effects which doesn't change the icon except we use this for switching between a true property and a property that has side effects (which we show as a method).

I think this implies we either need to expand the list out to account for all cases, or allow for multiple attributes to be exposed. For instance, type=Property Visibility=Public.

@weinand
Copy link
Contributor

weinand commented Jun 23, 2016

@jacdavis thanks for your investigation.
I don't want to add a whole universe of attributes to cover all the dimensions right now. So I'll have to think about this a bit more and I've created a new issue for this.
Since the kind attribute will be available in the June release, debug adapters and frontends are no longer blocked, so I'll close this feature request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants