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