-
Notifications
You must be signed in to change notification settings - Fork 803
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
[#98] Add SymbolTag values for access modifiers and other modifiers #2003
base: gh-pages
Are you sure you want to change the base?
Conversation
@microsoft-github-policy-service agree company="Solunar GmbH" |
@travkin79 thanks for the PR. To get something into the specification we need an implementation in one of the clients / servers as well. This can be VS Code or another editor. See https://github.com/microsoft/language-server-protocol/blob/main/contributing.md |
Are you planning on working on such an implementation? |
Hi @dbaeumer,
Thank you for the hint. I didn't know that, but I'll check the contribution guidelines.
I didn't plan to extend the VSCode client or server libs (yet), since I'm not familiar with TypeScript or VSCode, but I can check if I could do it. Nevertheless, my goal is using the new symbol tags in CDT LSP (C++ plug-ins for the Eclipse IDE). But this will require adapting clangd (which I'm also not familiar with) and in best case should include adapting the LSP specification. My motivation comes from this discussion. I prepared this PR, because I hoped for more progress on this topic. I thought, making the proposals mentioned in the issue more concrete (e.g. with the PR) simplifies discussing the details. We could convert this PR to a draft if you like. Besides, since I only added new values to an existing type ( I suggest the following steps to proceed:
|
If we only add the values to the spec, but now client is using them then it is misleading for server implementors. This is why even for enum values, tags, ... we want to make sure we have an implementation. |
* Render a symbol as "virtual", e.g. in C++. | ||
* @since 3.18 | ||
*/ | ||
export const Virtual = 15; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Const for C++ would be useful, too
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I reconsidered a Const tag and I think we can use the ReadOnly tag for that purpose. Having both tags, Const and ReadOnly might be confusing since they mean the same in principle. Besides, I don't think, we should use many language-specific keywords as tags in LSP specification. Instead, we should describe the concepts behind them.
Hi @dbaeumer, |
Yes, an implementation in another client is sufficient as well. |
I suggest to add more SymbolTag values to the LSP specification as implemented in this PR. This PR should solve issue #98.