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

Show visibility (and other info) in the outline #109

Closed
markkirchner opened this issue Feb 5, 2021 · 8 comments
Closed

Show visibility (and other info) in the outline #109

markkirchner opened this issue Feb 5, 2021 · 8 comments
Labels
feature New feature or request

Comments

@markkirchner
Copy link

Problem:
Currently (as far as I can tell) it's not possible to distinguish between "public/protected/private" methods and properties in the outline (and code completion dialogs).
The same seems to be the case for "static/non-static" or "abstract" or "final".

Proposal:
It would be great to have the outline/code completion show different colors/icons/... for the different "types" of methods and properties.

Additional context:
If I understand microsoft/vscode#49995 correctly, VS Code already provides support for this and "most work left is [...] on extensions to populate the fields accordingly".

@jakubmisek
Copy link
Member

jakubmisek commented Feb 5, 2021

good feature, we already do that in Visual Studio. In VS Code we didn't found a way of showing other icons than listed in https://github.com/microsoft/vscode/blob/bcaa2be1b51441fd11685e599b2704908f25a6f2/src/vs/vscode.d.ts#L2506 ; although, we'll look further into that

@jakubmisek jakubmisek added the feature New feature or request label Feb 5, 2021
@markkirchner
Copy link
Author

I see. Looking more closely at the file you linked and the comment in microsoft/vscode#49995 it seems that the SymbolTag mechanism is intended to provide the VS Code-side support for this.
But so far, there is only a "Deprecated" SymbolTag (at vscode.d.ts#L2539).

So does this mean VS Code has to convinced to provide more of those tags (for public/protected/...) first?

@jakubmisek
Copy link
Member

That's what I found as well - seems there is only "deprecated" tag, and neither additional modifiers, more SymbolTags, nor SymbolKinds are provided.

I was checking other languages like C# and they don't have those icons either.

This is the issue that should "solve" it - microsoft/vscode#23927 - but it was closed even it's actually still not resolved

@jakubmisek
Copy link
Member

This is what we need microsoft/vscode#113845

@markkirchner
Copy link
Author

Are there maybe any news about this?

In my opinion, it's still sorely missing functionality, especially when trying to get an overview of an unfamiliar codebase / library.

@jakubmisek
Copy link
Member

Thank you for reminding me.

The icons are still not extensible - only deprecated tag in SymbolTags.

We can add what C++ extension does - a small label with the symbol visibility - microsoft/vscode#113845 (comment)

@markkirchner
Copy link
Author

Sounds good to me as a workaround.

Apart from that: As far as I understood, you are waiting for something to happen upstream, so that you (as an extension vendor) can provide this functionality, correct?
So wouldn't is make sense to create an upstream issue for that (which specifies what you need exactly)? Because the existing one that you mentioned (microsoft/vscode#23927) probably won't get any progress anymore.

@jakubmisek
Copy link
Member

Thanks, I've added the document outline with methods visibility and enum/interface/trait flags (similarly to the C++ extension)

The feature will be available in the next release (1.38) and in upcoming pre-releases.

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

No branches or pull requests

2 participants