Skip to content

Latest commit

 

History

History
324 lines (271 loc) · 24.7 KB

FEATURES.md

File metadata and controls

324 lines (271 loc) · 24.7 KB

Supported Features

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.

Message Type

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

Support Status

Symbol Description
🟢 Supported
🟡 Partial support (see footnote provided)
🔴 Unsupported

Overall status: (80.5/90) ~89.4%

3.17.0 - 2022-05-10

Status: (12/16)

Method Name Message Type Supported Tracking Issue(s)
notebookDocument/didOpen ➡️ 🔴
notebookDocument/didChange ➡️ 🔴
notebookDocument/didSave ➡️ 🔴
notebookDocument/didClose ➡️ 🔴
textDocument/prepareTypeHierarchy ↩️ 🟢
typeHierarchy/supertypes ↩️ 🟢
typeHierarchy/subtypes ↩️ 🟢
textDocument/inlayHint ↩️ 🟢 #352
inlayHint/resolve ↩️ 🟢 #352
workspace/inlayHint/refresh ↪️ 🟢 #352
textDocument/inlineValue ↩️ 🟢 #352
workspace/inlineValue/refresh ↪️ 🟢 #352
textDocument/diagnostic ↩️ 🟢 #374
workspace/diagnostic ↩️ 🟢 #374
workspace/diagnostic/refresh ↪️ 🟢 #374
workspaceSymbol/resolve ↩️ 🟢

3.16.0 - 2020-12-14

Status: (18/20)

Method Name Message Type Supported Tracking Issue(s)
$/setTrace ➡️ 🔴
$/logTrace ⬅️ 🔴
textDocument/prepareCallHierarchy ↩️ 🟢
callHierarchy/incomingCalls ↩️ 🟢
callHierarchy/outgoingCalls ↩️ 🟢
workspace/codeLens/refresh ↪️ 🟢
textDocument/semanticTokens/full ↩️ 🟢 #146
textDocument/semanticTokens/full/delta ↩️ 🟢 #146
textDocument/semanticTokens/range ↩️ 🟢 #146
workspace/semanticTokens/refresh ↪️ 🟢 #146
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

Status: (1/4)

Method Name Message Type Supported Tracking Issue(s)
$/progress ➡️ ⬅️ 🔴 #176, #380, #381
window/workDoneProgress/create ↪️ 🔴 #381
window/workDoneProgress/cancel ➡️ 🔴 #381
textDocument/selectionRange ↩️ 🟢 #10

3.14.0 - 2018-12-13

Status: (1/1)

Method Name Message Type Supported Tracking Issue(s)
textDocument/declaration ↩️ 🟢 #10

3.12.0 - 2018-08-23

Status: (1/1)

Method Name Message Type Supported Tracking Issue(s)
textDocument/prepareRename ↩️ 🟢 #10

3.10.0 - 2018-07-23

Status: (1/1)

Method Name Message Type Supported Tracking Issue(s)
textDocument/foldingRange ↩️ 🟢 #10

3.6.0 - 2018-02-22

Status: (7/7)

Method Name Message Type Supported Tracking Issue(s)
workspace/workspaceFolders ↪️ 🟢 #13
workspace/didChangeWorkspaceFolders ➡️ 🟢 #8
workspace/configuration ↪️ 🟢 #13
textDocument/typeDefinition ↩️ 🟢 #10
textDocument/implementation ↩️ 🟢 #10
textDocument/documentColor ↩️ 🟢 #10
textDocument/colorPresentation ↩️ 🟢 #10

3.0.0 - 2017-02-08

Status: (39.5/40)

Method Name Message Type Supported Tracking Issue(s)
initialize ↩️ 🟢
initialized ➡️ 🟢
client/registerCapability ↪️ 🟢 #13
client/unregisterCapability ↪️ 🟢 #13
shutdown ↩️ 🟢
exit ➡️ 🟢
textDocument/didOpen ➡️ 🟢
textDocument/didChange ➡️ 🟢
textDocument/willSave ➡️ 🟢 #118
textDocument/willSaveWaitUntil ↩️ 🟢 #10
textDocument/didSave ➡️ 🟢
textDocument/didClose ➡️ 🟢
textDocument/definition ↩️ 🟢 #10
textDocument/references ↩️ 🟢 #10
textDocument/documentHighlight ↩️ 🟢
textDocument/documentLink ↩️ 🟢 #10
documentLink/resolve ↩️ 🟢 #12
textDocument/hover ↩️ 🟢
textDocument/codeLens ↩️ 🟢 #10
codeLens/resolve ↩️ 🟢 #11
textDocument/documentSymbol ↩️ 🟢 #10
textDocument/completion ↩️ 🟢 #10
completionItem/resolve ↩️ 🟢 #9
textDocument/publishDiagnostics ⬅️ 🟢
textDocument/signatureHelp ↩️ 🟢 #10
textDocument/codeAction ↩️ 🟢 #10
textDocument/formatting ↩️ 🟢 #10
textDocument/rangeFormatting ↩️ 🟢 #10
textDocument/onTypeFormatting ↩️ 🟢 #10
textDocument/rename ↩️ 🟢 #10
workspace/symbol ↩️ 🟢 #8
workspace/didChangeConfiguration ➡️ 🟢 #8
workspace/didChangeWatchedFiles ➡️ 🟢 #8
workspace/executeCommand ↩️ 🟢 #8
workspace/applyEdit ↪️ 🟢 #13
window/showMessage ⬅️ 🟢
window/showMessageRequest ↪️ 🟢 #13
window/logMessage ⬅️ 🟢
telemetry/event ⬅️ 🟢
$/cancelRequest ➡️ ⬅️ 🟡1 #145, #231

Footnotes

  1. Server-to-client $/cancelRequest support is not yet implemented. However, the raw message can be emitted manually using Client::send_notification(). Client-to-server support is implemented via async/await task cancellation.