This document tracks which features defined in the Language Server Protocol
(LSP) specification are currently supported by tower-lsp
and to what
degree. Please note that this document is provided as-is and will be updated
over time on a best-effort basis. There is no guarantee that it will always
reflect the current reality exactly on the mainline branch. However, it should
be updated on every tower-lsp
release at minimum.
Feel free to open a new discussion thread if there are any questions. Drive-by pull requests correcting this document are always welcome!
Click here to expand/collapse the icon legend.
Symbol | Description | Location in API |
---|---|---|
↩️ | Request, client to server | LanguageServer trait |
↪️ | Request, server to client | Client struct |
➡️ | Notification, client to server | LanguageServer trait |
⬅️ | Notification, server to client | Client struct |
Symbol | Description |
---|---|
🟢 | Supported |
🟡 | Partial support (see footnote provided) |
🔴 | Unsupported |
3.17.0 - 2022-05-10
Method Name | Message Type | Supported | Tracking Issue(s) |
---|---|---|---|
notebookDocument/didOpen |
➡️ | 🔴 | |
notebookDocument/didChange |
➡️ | 🔴 | |
notebookDocument/didSave |
➡️ | 🔴 | |
notebookDocument/didClose |
➡️ | 🔴 | |
textDocument/prepareTypeHierarchy |
↩️ | 🟢 | |
typeHierarchy/supertypes |
↩️ | 🟢 | |
typeHierarchy/subtypes |
↩️ | 🟢 | |
textDocument/inlayHint |
↩️ | 🟢 | |
inlayHint/resolve |
↩️ | 🟢 | |
workspace/inlayHint/refresh |
↪️ | 🟢 | |
textDocument/inlineValue |
↩️ | 🟢 | |
workspace/inlineValue/refresh |
↪️ | 🟢 | |
textDocument/diagnostic |
↩️ | 🟢 | |
workspace/diagnostic |
↩️ | 🟢 | |
workspace/diagnostic/refresh |
↪️ | 🟢 | |
workspaceSymbol/resolve |
↩️ | 🟢 |
3.16.0 - 2020-12-14
Method Name | Message Type | Supported | Tracking Issue(s) |
---|---|---|---|
$/setTrace |
➡️ | 🔴 | |
$/logTrace |
⬅️ | 🔴 | |
textDocument/prepareCallHierarchy |
↩️ | 🟢 | |
callHierarchy/incomingCalls |
↩️ | 🟢 | |
callHierarchy/outgoingCalls |
↩️ | 🟢 | |
workspace/codeLens/refresh |
↪️ | 🟢 | |
textDocument/semanticTokens/full |
↩️ | 🟢 | |
textDocument/semanticTokens/full/delta |
↩️ | 🟢 | |
textDocument/semanticTokens/range |
↩️ | 🟢 | |
workspace/semanticTokens/refresh |
↪️ | 🟢 | |
textDocument/moniker |
↩️ | 🟢 | |
codeAction/resolve |
↪️ | 🟢 | |
textDocument/linkedEditingRange |
↩️ | 🟢 | |
workspace/willCreateFiles |
↩️ | 🟢 | |
workspace/didCreateFiles |
➡️ | 🟢 | |
workspace/willRenameFiles |
↩️ | 🟢 | |
workspace/didRenameFiles |
➡️ | 🟢 | |
workspace/willDeleteFiles |
↩️ | 🟢 | |
workspace/didDeleteFiles |
➡️ | 🟢 | |
window/showDocument |
↪️ | 🟢 |
3.15.0 - 2020-01-14
Method Name | Message Type | Supported | Tracking Issue(s) |
---|---|---|---|
$/progress |
➡️ ⬅️ | 🔴 | |
window/workDoneProgress/create |
↪️ | 🔴 | #381 |
window/workDoneProgress/cancel |
➡️ | 🔴 | #381 |
textDocument/selectionRange |
↩️ | 🟢 |
3.14.0 - 2018-12-13
Method Name | Message Type | Supported | Tracking Issue(s) |
---|---|---|---|
textDocument/declaration |
↩️ | 🟢 |
3.12.0 - 2018-08-23
Method Name | Message Type | Supported | Tracking Issue(s) |
---|---|---|---|
textDocument/prepareRename |
↩️ | 🟢 |
3.10.0 - 2018-07-23
Method Name | Message Type | Supported | Tracking Issue(s) |
---|---|---|---|
textDocument/foldingRange |
↩️ | 🟢 |
3.6.0 - 2018-02-22
Method Name | Message Type | Supported | Tracking Issue(s) |
---|---|---|---|
workspace/workspaceFolders |
↪️ | 🟢 | |
workspace/didChangeWorkspaceFolders |
➡️ | 🟢 | |
workspace/configuration |
↪️ | 🟢 | |
textDocument/typeDefinition |
↩️ | 🟢 | |
textDocument/implementation |
↩️ | 🟢 | |
textDocument/documentColor |
↩️ | 🟢 | |
textDocument/colorPresentation |
↩️ | 🟢 |
3.0.0 - 2017-02-08
Footnotes
-
Server-to-client
$/cancelRequest
support is not yet implemented. However, the raw message can be emitted manually usingClient::send_notification()
. Client-to-server support is implemented via async/await task cancellation. ↩