Skip to content

textDocumentPositionParams: add optional range #2027

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: gh-pages
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 19 additions & 2 deletions _specifications/lsp/3.18/types/textDocumentPositionParams.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,18 @@

Was `TextDocumentPosition` in 1.0 with inlined parameters.

A parameter literal used in requests to pass a text document and a position inside that document. It is up to the client to decide how a selection is converted into a position when issuing a request for a text document. The client can, for example, honor or ignore the selection direction to make LSP request consistent with features implemented internally.
A parameter literal used in requests to pass a text document and a
position or optional range within that document.

To be consistent with features implemented internally, the client is
free to choose for each LSP request how a cursor position or text
selection is converted into a position or range.
For example, some editors display the cursor as a caret at the current
insertion point between characters (`A|BC`), whereas others display it
as a box around the character after the insertion point (`A🄱C`).
Depending on the operation, in the absence of a selection range,
editors of the second kind may choose to interpret the cursor position
as an implicit selection of the character _after_ the position.

```typescript
interface TextDocumentPositionParams {
Expand All @@ -12,8 +23,14 @@ interface TextDocumentPositionParams {
textDocument: TextDocumentIdentifier;

/**
* The position inside the text document.
* The cursor position within the text document.
*/
position: Position;

/**
* The selected range within the text document, if any.
* The position is typically one of the endpoints of the range.
*/
range?: Range;
}
```