Mercurial > hg > CbC > CbC_llvm
view clang-tools-extra/clangd/test/path-mappings.test @ 221:79ff65ed7e25
LLVM12 Original
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 15 Jun 2021 19:15:29 +0900 |
parents | 0572611fdcc8 |
children |
line wrap: on
line source
# Copy over the server file into test workspace # RUN: rm -rf %t # RUN: cp -r %S/Inputs/path-mappings %t # # RUN: clangd --path-mappings 'C:\client=%t/server' -lit-test < %s | FileCheck -strict-whitespace %s {"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":123,"rootPath":"clangd","capabilities":{},"trace":"off"}} --- { "jsonrpc": "2.0", "method": "textDocument/didOpen", "params": { "textDocument": { "uri": "file:///C:/client/bar.cpp", "languageId": "cpp", "text": "#include \"foo.h\"\nint main(){\nreturn foo();\n}" } } } # Ensure that the client gets back the same client path (clangd thinks it edited %t/server/bar.cpp) # CHECK: "method": "textDocument/publishDiagnostics", # CHECK-NEXT: "params": { # CHECK-NEXT: "diagnostics": [], # CHECK-NEXT: "uri": "file:///C:/client/bar.cpp", # CHECK-NEXT: "version": 0 # CHECK-NEXT: } --- # We're editing bar.cpp, which includes foo.h, where foo.h "exists" at a server location # With path mappings, when we go to definition on foo(), we get back a client file uri { "jsonrpc": "2.0", "id": 1, "method": "textDocument/definition", "params": { "textDocument": { "uri": "file:///C:/client/bar.cpp" }, "position": { "line": 2, "character": 8 } } } # CHECK: "id": 1, # CHECK-NEXT: "jsonrpc": "2.0", # CHECK-NEXT: "result": [ # CHECK-NEXT: { # CHECK-NEXT: "range": { # CHECK-NEXT: "end": { # CHECK-NEXT: "character": {{[0-9]+}}, # CHECK-NEXT: "line": {{[0-9]+}} # CHECK-NEXT: }, # CHECK-NEXT: "start": { # CHECK-NEXT: "character": {{[0-9]+}}, # CHECK-NEXT: "line": {{[0-9]+}} # CHECK-NEXT: } # CHECK-NEXT: }, # CHECK-NEXT: "uri": "file:///C:/client/foo.h" # CHECK-NEXT: } # CHECK-NEXT: ] # --- {"jsonrpc":"2.0","id":2,"method":"shutdown"} --- {"jsonrpc":"2.0","method":"exit"}