| # 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: "codeActionProvider": true, |
| # CHECK-NEXT: "compilationDatabase": { |
| # CHECK-NEXT: "automaticReload": true |
| # CHECK-NEXT: }, |
| # CHECK-NEXT: "completionProvider": { |
| # CHECK-NEXT: "allCommitCharacters": [ |
| # CHECK-NEXT: " ", |
| # CHECK-NEXT: "\t", |
| # CHECK-NEXT: "(", |
| # CHECK-NEXT: ")", |
| # CHECK-NEXT: "[", |
| # CHECK-NEXT: "]", |
| # CHECK-NEXT: "{", |
| # CHECK-NEXT: "}", |
| # CHECK-NEXT: "<", |
| # CHECK-NEXT: ">", |
| # CHECK-NEXT: ":", |
| # CHECK-NEXT: ";", |
| # CHECK-NEXT: ",", |
| # CHECK-NEXT: "+", |
| # CHECK-NEXT: "-", |
| # CHECK-NEXT: "/", |
| # CHECK-NEXT: "*", |
| # CHECK-NEXT: "%", |
| # CHECK-NEXT: "^", |
| # CHECK-NEXT: "&", |
| # CHECK-NEXT: "#", |
| # CHECK-NEXT: "?", |
| # CHECK-NEXT: ".", |
| # CHECK-NEXT: "=", |
| # CHECK-NEXT: "\"", |
| # CHECK-NEXT: "'", |
| # CHECK-NEXT: "|" |
| # CHECK-NEXT: ], |
| # 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: "hoverProvider": true, |
| # CHECK-NEXT: "implementationProvider": 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: "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: "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: "textDocumentSync": { |
| # CHECK-NEXT: "change": 2, |
| # CHECK-NEXT: "openClose": true, |
| # CHECK-NEXT: "save": true |
| # CHECK-NEXT: }, |
| # 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"} |