feat: add full semantic token support #492
Draft
+186
−32
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Opening this to start a discussion on what should be a part of this PR.
Currently all this does is add support for semanticTokens/full and parameters on def/defp/defmacro/defmacrop.
On my wishlist is to add support for the range and delta requests as well(which are on right now by the provider).
For the delta requests I might store the old result of the previous request on the lsp assigns which should be okay.
I need some ideas on what else we could add other than parameters. I'll take a look at other implementations and what they add. The protocol defines a list of default types and modifiers but bear in mind that we can add our own custom ones to the legend sent at the initialization part.