Features of the server

May 22, 2023 · View on GitHub

LSP methods

The LSP is a relatively extensive protocol with many features/methods, not all of which are implemented and not all of which are relevant for Terraform. The following matrix should provide some visibility into the current and future state.

It's important to note that ✅ does not imply the functionality is fully implemented (some features have various opt-in capabilities), just that the method is in use by the server. You can filter any known open issues by the relevant label, e.g. textDocument/completion issues and open new issues for any method which you would like to be implemented.

Requests

LSP methodImplementedNote
callHierarchy/incomingCalls
callHierarchy/outgoingCalls
client/registerCapability
client/unregisterCapability
codeAction/resolve
codeLens/resolve
completionItem/resolve
documentLink/resolve
initialize
inlayHint/resolve
shutdown
textDocument/codeActionSee code-actions.md
textDocument/codeLensSee Code Lens section
textDocument/colorPresentationNot relevant
textDocument/completion
textDocument/declaration
textDocument/definition
textDocument/diagnostic
textDocument/documentColorNot relevant
textDocument/documentHighlight
textDocument/documentLink
textDocument/documentSymbol
textDocument/foldingRange
textDocument/formatting
textDocument/hover
textDocument/implementation
textDocument/inlayHint
textDocument/inlineValue
textDocument/linkedEditingRange
textDocument/moniker
textDocument/onTypeFormatting
textDocument/prepareCallHierarchy
textDocument/prepareRename
textDocument/prepareTypeHierarchy
textDocument/rangeFormatting
textDocument/references
textDocument/rename
textDocument/selectionRange
textDocument/semanticTokens/fullSee syntax-highlighting.md
textDocument/semanticTokens/full/delta
textDocument/semanticTokens/range
textDocument/signatureHelp
textDocument/typeDefinition
textDocument/willSaveWaitUntil
typeHierarchy/subtypes
typeHierarchy/supertypes
window/showDocument
window/showMessageRequest
window/workDoneProgress/create
workspace/applyEdit
workspace/codeLens/refresh
workspace/configuration
workspace/diagnostic
workspace/diagnostic/refresh
workspace/executeCommandSee commands.md
workspace/inlayHint/refresh
workspace/inlineValue/refresh
workspace/semanticTokens/refreshSee syntax-highlighting.md
workspace/symbol
workspace/willCreateFiles
workspace/willDeleteFiles
workspace/willRenameFiles
workspace/workspaceFolders
workspaceSymbol/resolve

List of methods sourced via

curl -s https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/metaModel/metaModel.json | jq -r '.requests[].method' | sort

Notifications

LSP methodImplementedNote
$/cancelRequest
$/logTrace
$/progress
$/setTrace
exit
initialized
notebookDocument/didChange
notebookDocument/didClose
notebookDocument/didOpen
notebookDocument/didSave
telemetry/eventSee telemetry.md
textDocument/didChange
textDocument/didClose
textDocument/didOpen
textDocument/didSave
textDocument/publishDiagnostics
textDocument/willSave
window/logMessage
window/showMessage
window/workDoneProgress/cancel
workspace/didChangeConfiguration
workspace/didChangeWatchedFilesSee Watched Files section
workspace/didChangeWorkspaceFolders
workspace/didCreateFiles
workspace/didDeleteFiles
workspace/didRenameFiles

List of methods sourced via

curl -s https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/metaModel/metaModel.json | jq -r '.requests[].method' | sort