microsoft / microsoft/language-server-protocol

Better document

Open
#1,887 4 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

clarification help wanted
Dominant language
TypeScript
Stars
13k
Forks
1k
Avg merge
6d 1h
Merged PRs (30d)
10

Description

It's hard to guess what an ability does, the specification is vague. I hope there is a screen recording/diff image (before-after) or something for each ability else to make it easier to understand.

Here are some questions I've met.

To provide type-aware code highlights, which one should I implement? Document Highlight or Document Color? No, it's Semantic Tokens.

What's the benefit of implementing Document Highlights? It looks like my editor (VSCode) already provides highlight when I selecting a text. The answer is (afaik), we can do scope analysis.

import { a } from 'mod'
function f(a) {
    a // highlights "a" in line 2 but not line 1 or line 5
}
a // highlights "a" in line 1 but not line 2 or line 3

Should I implement Document Link? What's the typical use case of it? What's the difference between Goto Definition?

What does Selection Range do? Is it related to the editor's "expand selection range" functionality?

What's the difference between Inline Value and Inlay Hint?

What is Monikers? Should I implement it? What can it do?

What's the difference between Signature Help and Hover?

I have experience with HTML and JSX so I know what Linked Editing Range can do. This can be unclear for other implementors that if they should implement this.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the linked LSP 3.17 capability specifications and the listed questions about their use cases and differences. The issue provides no target files or tests; done would require an agreed documentation scope and clearer guidance, examples, or comparisons for the capabilities discussed.

Written by the indexing model from the issue text.

Assessment

Domain
documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
18/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.