# 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.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"}