Support multiline and overlapping semantic tokens
- Dominant language
- Haskell
- Stars
- 423
- Forks
- 105
- PR merge metrics
- No merged PRs in 30d
Description
There are client capabilities for if the client supports these. But if they don't, we can still support them gracefully I think. The conversion functions can take the client capabilities and then implement a workaround if the capabilities aren't supported:
- For overlapping tokens, split the overlapped token so into the part before the overlapping token and the part after the overlapping token, so you get something like: `["hello ${a} world"][a]` -> `["hello ${][a][} world"]`
- For multiline tokens, split them at the line breaks into one token per line.
Contributor guide
Research direction
Start by locating the conversion functions that produce semantic tokens and the client-capability data they receive. Check how overlapping and multiline tokens are represented, then verify that unsupported capabilities are handled by splitting overlaps and line breaks into valid per-line tokens.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100