Skip to content

Commit

Permalink
Add variable for VersionedTextDocumentIdentifier to use with lsp_exec…
Browse files Browse the repository at this point in the history
…ute (#2516)
  • Loading branch information
jwortmann authored Sep 22, 2024
1 parent f4223d6 commit 8ae2729
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 4 deletions.
9 changes: 5 additions & 4 deletions docs/src/commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,15 @@ You can include special variables in the `command_args` array that will be autom

| Variable | Type | Description |
| -------- | ---- | ----------- |
| `"$document_id"` | object | JSON object `{ 'uri': string }` containing the file URI of the active view, see [Document Identifier](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocumentIdentifier) |
| `"$document_id"` | object | JSON object `{ "uri": string }` containing the URI of the active view, see [TextDocumentIdentifier](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocumentIdentifier) |
| `"$versioned_document_id"` | object | JSON object `{ "uri": string, "version": int }` containing the URI and version of the active view, see [VersionedTextDocumentIdentifier](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#versionedTextDocumentIdentifier) |
| `"$file_uri"` | string | File URI of the active view |
| `"$selection"` | string | Content of the (topmost) selection |
| `"$offset"` | int | Character offset of the (topmost) cursor position |
| `"$selection_begin"` | int | Character offset of the begin of the (topmost) selection |
| `"$selection_end"` | int | Character offset of the end of the (topmost) selection |
| `"$position"` | object | JSON object `{ 'line': int, 'character': int }` of the (topmost) cursor position, see [Position](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#position) |
| `"$position"` | object | JSON object `{ "line": int, "character": int }` of the (topmost) cursor position, see [Position](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#position) |
| `"$line"` | int | Zero-based line number of the (topmost) cursor position, see [Position](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#position) |
| `"$character"` | int | Zero-based character offset relative to the current line of the (topmost) cursor position, see [Position](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#position) |
| `"$range"` | object | JSON object with `'start'` and `'end'` positions of the (topmost) selection, see [Range](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#range) |
| `"$text_document_position"` | object | JSON object with `'textDocument'` and `'position'` of the (topmost) selection, see [TextDocumentPositionParams](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocumentPositionParams) |
| `"$range"` | object | JSON object with `"start"` and `"end"` positions of the (topmost) selection, see [Range](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#range) |
| `"$text_document_position"` | object | JSON object with `"textDocument"` and `"position"` of the (topmost) selection, see [TextDocumentPositionParams](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocumentPositionParams) |
3 changes: 3 additions & 0 deletions plugin/execute_command.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from .core.views import text_document_identifier
from .core.views import text_document_position_params
from .core.views import uri_from_view
from .core.views import versioned_text_document_identifier
from typing import Any
import sublime

Expand Down Expand Up @@ -65,6 +66,8 @@ def _expand_variables(self, command_args: list[Any]) -> list[Any]:
for i, arg in enumerate(command_args):
if arg in ["$document_id", "${document_id}"]:
command_args[i] = text_document_identifier(view)
elif arg in ["$versioned_document_id", "${versioned_document_id}"]:
command_args[i] = versioned_text_document_identifier(view, view.change_count())
elif arg in ["$file_uri", "${file_uri}"]:
command_args[i] = uri_from_view(view)
elif region is not None:
Expand Down

0 comments on commit 8ae2729

Please sign in to comment.