haskell / haskell/haskell-language-server
Semantic tokens features trackList
- Dominant language
- Haskell
- Stars
- 3k
- Forks
- 455
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 11
Description
Semantic highlighting would give us a great experience on reading the code. It's been a shame that haskell does not have it for all these times. But now we are going to make it happen for haskell in HLS. (Thank @michaelpj for his [pull request that support it in lsp package](https://github.com/haskell/haskell-language-server/issues/1654)), first version of semantic tokens have been made in [this pull request](https://github.com/haskell/haskell-language-server/pull/3892). (Thank @michaelpj @wz1000 for all the help and reviews. )
But since the amount of works it need , not everything in the [LSP semantic tokens specification](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_semanticTokens) is supported yet, we would do them step by step.
Here is the track list of features.
* [x] provide configuration to map between the semantic tokens type and lsp standard tokens. #3940
* [x] #3957
* [ ] provide configurability to the priorities of hs semantic token types #4042
* Support semantic tokens type: done in #3892
- [x] class and class method type family name (data family)
- [x] data constructor name (not distinguishing record and normal data, and GADT)
- [x] type constructor name (GADT)
- [x] record field name
- [x] type synonym
- [x] pattern synonym
- [x] functions
- [x] none-function variables
- [x] infix operator #3969
* Support PluginMethodHandler
- [x] [textDocument/semanticTokens/full](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#semanticTokens_fullRequest). done in #3892
- [x] #4072
- [ ] [workspace/semanticTokens/refresh](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#semanticTokens_refreshRequest)
* Support modifiers:
- [ ] declaration (as in class declearations, type definition and type family)
- [ ] definition (as in class instance declaration, left hand side value binding, and type family instance)
- [ ] modification (as in rec field update)
- [ ] recursion analyze in let binding #2902
* [x] Support unicode, done in #3892
* [x] Support imported name, done in #3892
* [ ] ClientCapabilities, `multilineTokenSupport, overlappingTokenSupport`
* [x] highlight identifiers in doc, but not the first line of nested comment due to a ghc bug. https://gitlab.haskell.org/ghc/ghc/-/issues/24378
* Bug fixing & minor improvement:
- [x] #3966
- [x] https://github.com/haskell/haskell-language-server/issues/3983
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.