| # A smoke test to check that clangd works without compilation database |
| # |
| # Windows have different escaping modes. |
| # FIXME: We should add one for windows. |
| # UNSUPPORTED: system-windows |
| # |
| # RUN: rm -fr %t |
| # RUN: mkdir -p %t |
| # RUN: split-file %s %t |
| # |
| # RUN: sed -e "s|DIR|%/t|g" %t/definition.jsonrpc.tmpl > %t/definition.jsonrpc |
| # |
| # RUN: clangd -experimental-modules-support -lit-test < %t/definition.jsonrpc \ |
| # RUN: | FileCheck -strict-whitespace %t/definition.jsonrpc |
| |
| #--- A.h |
| void printA(); |
| |
| #--- Use.cpp |
| #include "A.h" |
| void foo() { |
| print |
| } |
| |
| #--- definition.jsonrpc.tmpl |
| { |
| "jsonrpc": "2.0", |
| "id": 0, |
| "method": "initialize", |
| "params": { |
| "processId": 123, |
| "rootPath": "clangd", |
| "capabilities": { |
| "textDocument": { |
| "completion": { |
| "completionItem": { |
| "snippetSupport": true |
| } |
| } |
| } |
| }, |
| "trace": "off" |
| } |
| } |
| --- |
| { |
| "jsonrpc": "2.0", |
| "method": "textDocument/didOpen", |
| "params": { |
| "textDocument": { |
| "uri": "file://DIR/Use.cpp", |
| "languageId": "cpp", |
| "version": 1, |
| "text": "#include \"A.h\"\nvoid foo() {\n print\n}\n" |
| } |
| } |
| } |
| |
| # CHECK: "message"{{.*}}printA{{.*}}(fix available) |
| |
| --- |
| {"jsonrpc":"2.0","id":1,"method":"textDocument/completion","params":{"textDocument":{"uri":"file://DIR/Use.cpp"},"context":{"triggerKind":1},"position":{"line":2,"character":6}}} |
| --- |
| {"jsonrpc":"2.0","id":2,"method":"shutdown"} |
| --- |
| {"jsonrpc":"2.0","method":"exit"} |