-
Notifications
You must be signed in to change notification settings - Fork 151
Add symbol tags as proposed for LSP specification (e.g. visibility tags, static, abstract, etc.) #856
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
Add symbol tags as proposed for LSP specification (e.g. visibility tags, static, abstract, etc.) #856
Conversation
|
@travkin79 your use case is compelling. AFAIK LSP4J hasn't been the first implementation for an LSP feature before. LSP4J has had pre-released features though. It sounds like we have a bit of a chicken-and-egg situation here, and I don't want LSP4J to be what prevents moving us forward. For pre-release we marked all elements that were not in the official spec with Nothing in the current HEAD has
Having the |
|
Hi @jonahgraham, Concerning the chicken-and-egg situation: I think, for getting my LSP specification proposal accepted, we need the following steps in the following order.
|
91b187f to
62b1364
Compare
6a09dc8 to
e32a6a9
Compare
|
Hi @jonahgraham, I've used the Reminder: For the LSP specification proposal to be accepted, we have to provide an exemplary implementation in one language server and one client. We chose clangd, LSP4J, LSP4E (and CDT LSP) for that. Related work:
|
jonahgraham
left a comment
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.
This LGTM - and is similar in scope to #893 (although more provisional than 3.18 of the spec, hopefully this can be done by the time 3.18 is complete)
Can you please add an entry to the Changelog and readme. Here is some suggested ideas.
Changelog:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e17bad6c..a5ffdd88 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,8 @@
### v1.0.0 (TBD)
+* Implemented [LSP proposal](https://github.com/microsoft/language-server-protocol/pull/2003) for `SymbolTag` [#856](https://github.com/eclipse-lsp4j/lsp4j/pull/856)
+
Fixed issues: <https://github.com/eclipse-lsp4j/lsp4j/milestone/37?closed=1>
* Removed `@Deprecated` annotations on members deprecated in the LSP/DAP protocol [#895](https://github.com/eclipse-lsp4j/lsp4j/issues/895)
Readme:
diff --git a/README.md b/README.md
index 8f229030..d712b5c4 100644
--- a/README.md
+++ b/README.md
@@ -35,7 +35,7 @@ The Maven Repositories, p2 Update Sites, and the Snapshots contain _signed jars_
### Supported LSP Versions
- * LSP4J 1.0.* _(Next release)_ → LSP 3.17.0
+ * LSP4J 1.0.* _(Next release)_ → LSP 3.17.0 (plus [SymbolTag proposal](https://github.com/microsoft/language-server-protocol/pull/2003))
* LSP4J 0.24.* → LSP 3.17.0
* LSP4J 0.23.* → LSP 3.17.0
* LSP4J 0.22.* → LSP 3.17.0
org.eclipse.lsp4j/src/main/java/org/eclipse/lsp4j/SymbolTag.java
Outdated
Show resolved
Hide resolved
e32a6a9 to
d66fd19
Compare
|
@travkin79 This has been merged and is available in maven snapshots + nightly builds, the p2 repo is: https://download.eclipse.org/lsp4j/builds/main/ (the heavy caching of download.e.o may mean this takes a little while to consistently show the updated version) You should be able to update this line of your LSP4E PR to point to the above to get it to build. You'll also have to update the version ranges in the various MANIFEST.MFs: As for the release date of 1.0.0, it is not set yet, but follow #871 and weigh in on your desires and needs. |
|
Hi @jonahgraham, |
Adds new symbol tags as proposed in my PR on the LSP specification, for example, adding private, package, protected, and public visibility tags as well as tags like static, final, abstract, read-only, nullable and non-null. Our motivation comes from our wish to add visibility and other symbol details to the outline view (see discussion eclipse-lsp4e/lsp4e#977), but maybe also to the call hierarchy and to the type hierarchy or to other related features / LSP operations.
The PR on the LSP specification requires at least one implementation in a language server and / or a client. We plan to finish a [first language server implementation in clangd](microsoft/language-server-protocol#2003
and llvm/llvm-project#113669) and a first client implementation in LSP4J, LSP4E, and CDT LSP (which is using clangd).
See microsoft/language-server-protocol#2003
and llvm/llvm-project#167536
and eclipse-lsp4e/lsp4e#1149