| { |
| "jsonrpc": "2.0", |
| "id": 0, |
| "method": "initialize", |
| "params": { |
| "processId": 123, |
| "rootPath": "clangd", |
| "capabilities": { "window": { "workDoneProgress": true, "implicitWorkDoneProgressCreate": true} }, |
| "trace": "off" |
| } |
| } |
| --- |
| { |
| "jsonrpc": "2.0", |
| "method": "textDocument/didOpen", |
| "params": { |
| "textDocument": { |
| "uri": "file://DIRECTORY/bar.cpp", |
| "languageId": "cpp", |
| "version": 1, |
| "text": "#include \"sub_dir/foo.h\"\nint main(){\nreturn foo();\n}" |
| } |
| } |
| } |
| # BUILD: "method": "$/progress" |
| # BUILD-NEXT: "params": { |
| # BUILD-NEXT: "token": "backgroundIndexProgress", |
| # BUILD-NEXT: "value": { |
| # BUILD-NEXT: "kind": "begin", |
| # BUILD-NEXT: "percentage": 0, |
| # BUILD-NEXT: "title": "indexing" |
| # BUILD-NEXT: } |
| # BUILD-NEXT: } |
| # BUILD: "method": "$/progress" |
| # BUILD-NEXT: "params": { |
| # BUILD-NEXT: "token": "backgroundIndexProgress", |
| # BUILD-NEXT: "value": { |
| # BUILD-NEXT: "kind": "report", |
| # BUILD-NEXT: "message": "0/1", |
| # BUILD-NEXT: "percentage": 0 |
| # BUILD-NEXT: } |
| # BUILD-NEXT: } |
| # later... |
| # BUILD: "message": "1/2", |
| # BUILD-NEXT: "percentage": 50 |
| # finally... |
| # BUILD: "kind": "end" |
| # when using the index, we spawn one task to read it, but not more. |
| # USE-NOT: "message": "1/2", |
| --- |
| { |
| "jsonrpc": "2.0", |
| "id": 1, |
| "method": "sync", |
| "params": null |
| } |
| --- |
| { |
| "jsonrpc": "2.0", |
| "id": 2, |
| "method": "textDocument/definition", |
| "params": { |
| "textDocument": { |
| "uri": "file://DIRECTORY/bar.cpp" |
| }, |
| "position": { |
| "line": 2, |
| "character": 8 |
| } |
| } |
| } |
| # CHECK: "uri": "file://{{.*}}/foo.cpp" |
| --- |
| {"jsonrpc":"2.0","id":3,"method":"shutdown"} |
| --- |
| {"jsonrpc":"2.0","method":"exit"} |