microsoft / microsoft/language-server-protocol
Proposal: Semantic Tokens in Markdown
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 13k
- Forks
- 1k
- Avg merge
- 6d 1h
- Merged PRs (30d)
- 10
Description
When using a color scheme with significant use of semantic tokens, it becomes very noticible that hover info and other similar features do not include semantic highlighting. For instance, I use a color scheme that makes a color distinction for class/interface/enum, and so usually, I know just by looking at a type which of these it is, however if I look at the type of a variable in a hover popup, this visual information is missing. Sometimes the kind of type it is will be written in text, which may allow coloring the name by syntax in some cases, but generally any documentation examples included in the hover info will lack the usual color information. This is a noticible difference in quality of experience between lsp-based editors and more traditional ides that do their own semantic analysis.
My proposal is to add the ability for clients to advertise that they support semantic tokens in markdown, and for servers to provide semantic tokens with markdown any time they provide markdown.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Review the existing semantic-token and Markdown protocol definitions, then trace how client capabilities and server responses are described. Define the capability negotiation and response behavior for semantic tokens embedded in Markdown, with the protocol text serving as the completion criterion.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- markdown, typescript
- Domain
- api, developer-experience
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100