# RUN: clangd -lit-test < %s | FileCheck -strict-whitespace %s
# Test initialize request parameters with rootUri
{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":123,"rootUri":"test:///workspace","capabilities":{},"trace":"off"}}
# CHECK: "id": 0,
# CHECK-NEXT: "jsonrpc": "2.0",
# CHECK-NEXT: "result": {
# CHECK-NEXT: "capabilities": {
# CHECK-NEXT: "astProvider": true,
# CHECK-NEXT: "callHierarchyProvider": true,
# CHECK-NEXT: "clangdInlayHintsProvider": true,
# CHECK-NEXT: "codeActionProvider": true,
# CHECK-NEXT: "compilationDatabase": {
# CHECK-NEXT: "automaticReload": true
# CHECK-NEXT: },
# CHECK-NEXT: "completionProvider": {
# CHECK-NEXT: "resolveProvider": false,
# CHECK-NEXT: "triggerCharacters": [
# CHECK-NEXT: ".",
# CHECK-NEXT: "<",
# CHECK-NEXT: ">",
# CHECK-NEXT: ":",
# CHECK-NEXT: "\"",
# CHECK-NEXT: "/",
# CHECK-NEXT: "*"
# CHECK-NEXT: ]
# CHECK-NEXT: },
# CHECK-NEXT: "declarationProvider": true,
# CHECK-NEXT: "definitionProvider": true,
# CHECK-NEXT: "documentFormattingProvider": true,
# CHECK-NEXT: "documentHighlightProvider": true,
# CHECK-NEXT: "documentLinkProvider": {
# CHECK-NEXT: "resolveProvider": false
# CHECK-NEXT: }
# CHECK-NEXT: "documentOnTypeFormattingProvider": {
# CHECK-NEXT: "firstTriggerCharacter": "\n",
# CHECK-NEXT: "moreTriggerCharacter": []
# CHECK-NEXT: },
# CHECK-NEXT: "documentRangeFormattingProvider": true,
# CHECK-NEXT: "documentSymbolProvider": true,
# CHECK-NEXT: "executeCommandProvider": {
# CHECK-NEXT: "commands": [
# CHECK-NEXT: "clangd.applyFix",
# CHECK-NEXT: "clangd.applyRename"
# CHECK-NEXT: "clangd.applyTweak"
# CHECK-NEXT: ]
# CHECK-NEXT: },
# CHECK-NEXT: "foldingRangeProvider": true,
# CHECK-NEXT: "hoverProvider": true,
# CHECK-NEXT: "implementationProvider": true,
# CHECK-NEXT: "inactiveRegionsProvider": true,
# CHECK-NEXT: "inlayHintProvider": true,
# CHECK-NEXT: "memoryUsageProvider": true,
# CHECK-NEXT: "referencesProvider": true,
# CHECK-NEXT: "renameProvider": true,
# CHECK-NEXT: "selectionRangeProvider": true,
# CHECK-NEXT: "semanticTokensProvider": {
# CHECK-NEXT: "full": {
# CHECK-NEXT: "delta": true
# CHECK-NEXT: },
# CHECK-NEXT: "legend": {
# CHECK-NEXT: "tokenModifiers": [
# CHECK-NEXT: "declaration",
# CHECK-NEXT: "definition",
# CHECK-NEXT: "deprecated",
# CHECK-NEXT: "deduced",
# CHECK-NEXT: "readonly",
# CHECK-NEXT: "static",
# CHECK-NEXT: "abstract",
# CHECK-NEXT: "virtual",
# CHECK-NEXT: "dependentName",
# CHECK-NEXT: "defaultLibrary",
# CHECK-NEXT: "usedAsMutableReference",
# CHECK-NEXT: "usedAsMutablePointer",
# CHECK-NEXT: "constructorOrDestructor",
# CHECK-NEXT: "userDefined",
# CHECK-NEXT: "functionScope",
# CHECK-NEXT: "classScope",
# CHECK-NEXT: "fileScope",
# CHECK-NEXT: "globalScope"
# CHECK-NEXT: ],
# CHECK-NEXT: "tokenTypes": [
# CHECK-NEXT: "variable",
# CHECK: ]
# CHECK-NEXT: },
# CHECK-NEXT: "range": false
# CHECK-NEXT: },
# CHECK-NEXT: "signatureHelpProvider": {
# CHECK-NEXT: "triggerCharacters": [
# CHECK-NEXT: "(",
# CHECK-NEXT: ")",
# CHECK-NEXT: "{",
# CHECK-NEXT: "}",
# CHECK-NEXT: "<",
# CHECK-NEXT: ">"
# CHECK-NEXT: ","
# CHECK-NEXT: ]
# CHECK-NEXT: },
# CHECK-NEXT: "standardTypeHierarchyProvider": true,
# CHECK-NEXT: "textDocumentSync": {
# CHECK-NEXT: "change": 2,
# CHECK-NEXT: "openClose": true,
# CHECK-NEXT: "save": true
# CHECK-NEXT: },
# CHECK-NEXT: "typeDefinitionProvider": true,
# CHECK-NEXT: "typeHierarchyProvider": true
# CHECK-NEXT: "workspaceSymbolProvider": true
# CHECK-NEXT: },
# CHECK-NEXT: "serverInfo": {
# CHECK-NEXT: "name": "clangd",
# CHECK-NEXT: "version": "{{.*}}clangd version {{.*}}"
# CHECK-NEXT: }
# CHECK-NEXT: }
---
{"jsonrpc":"2.0","id":3,"method":"shutdown"}
# CHECK: "id": 3,
# CHECK-NEXT: "jsonrpc": "2.0",
# CHECK-NEXT: "result": null
---
{"jsonrpc":"2.0","method":"exit"}