Supported LSP requests - AdaCore/ada_language_server GitHub Wiki

Supported LSP Server Requests

General Requests

Request Supported (Ada) Supported (GPR)
initialize :white_check_mark: :white_check_mark:
initialized :white_check_mark:
shutdown :white_check_mark: :white_check_mark:
exit :white_check_mark:
$/cancelRequest :white_check_mark:

Workspace Requests

Request Supported (Ada) OOE (Ada) Supported (GPR)
workspace/didChangeConfiguration :white_check_mark: :no_good: :white_check_mark:
workspace/didChangeWorkspaceFolders :white_check_mark:
workspace/didChangeWatchedFiles :white_check_mark:
workspace/symbol :white_check_mark:
workspace/executeCommand :white_check_mark:

Synchronization Requests

Request Supported (Ada) OOE (Ada) Supported (GPR)
textDocument/didOpen :white_check_mark: :white_check_mark:
textDocument/didChange :white_check_mark: :no_good: :white_check_mark:
textDocument/willSave
textDocument/willSaveWaitUntil
textDocument/didSave
textDocument/didClose :white_check_mark: :white_check_mark:

Text Document Requests

Request Supported (Ada) OOE (Ada) Supported (GPR)
textDocument/completion :white_check_mark: :white_check_mark:
completionItem/resolve :white_check_mark:
textDocument/hover :white_check_mark: :rabbit2: :white_check_mark:
textDocument/signatureHelp :white_check_mark:
textDocument/definition :white_check_mark: :rabbit2: :white_check_mark:
textDocument/declaration :white_check_mark: :rabbit2: :white_check_mark:
textDocument/typeDefinition :white_check_mark:
textDocument/implementation :white_check_mark:
textDocument/references :white_check_mark: :turtle:
textDocument/documentHighlight :white_check_mark:
textDocument/documentSymbol :white_check_mark: :turtle: :white_check_mark:
textDocument/codeAction :white_check_mark:
textDocument/codeLens
codeLens/resolve
textDocument/documentLink
documentLink/resolve
textDocument/documentColor
textDocument/colorPresentation
textDocument/formatting :white_check_mark:
textDocument/rangeFormatting :white_check_mark:
textDocument/onTypeFormatting :white_check_mark:
textDocument/rename :white_check_mark:
textDocument/prepareRename :white_check_mark:
textDocument/foldingRange :white_check_mark: :turtle:
textDocument/prepareCallHierarchy :white_check_mark:
callHierarchy/incomingCalls :white_check_mark:
callHierarchy/outgoingCalls :white_check_mark:
textDocument/semanticTokens/full :white_check_mark: :turtle:
textDocument/semanticTokens/range :white_check_mark: :rabbit2:
textDocument/prepareTypeHierarchy :white_check_mark: :turtle:
typeHierarchy/supertypes :white_check_mark: :turtle:
typeHierarchy/subtypes :white_check_mark: :turtle:

Out-of-Order Execution

ALS is able to execute some requests out of order they are arriving. For these request we have several execution strategies:

  • :no_good: (fence priority) - don't execute the request till any previously arrived requests are executed. This priority mostly works as in-order execution.
  • :rabbit2: (high priority) - execute the request as fast as possible
  • :turtle: (low priority) - execute the request in the background