Files
sourcekit-lsp/Tests/INPUTS/BuildServerBuildSystemTests.testServerInitialize/server.py
2019-08-29 10:20:27 -07:00

58 lines
1.6 KiB
Python
Executable File

#!/usr/bin/env python
import json
import sys
while True:
line = sys.stdin.readline()
if len(line) == 0:
break
assert line.startswith('Content-Length:')
length = int(line[len('Content-Length:'):])
sys.stdin.readline()
message = json.loads(sys.stdin.read(length))
response = None
if message["method"] == "build/initialize":
response = {
"jsonrpc": "2.0",
"id": message["id"],
"result": {
"displayName": "test server",
"version": "0.1",
"bspVersion": "2.0",
"rootUri": "blah",
"capabilities": {"languageIds": ["a", "b"]},
"data": {
"indexStorePath": "some/index/store/path"
}
}
}
elif message["method"] == "build/initialized":
continue
elif message["method"] == "build/shutdown":
response = {
"jsonrpc": "2.0",
"id": message["id"],
"result": None
}
elif message["method"] == "build/exit":
break
# ignore other notifications
elif "id" in message:
response = {
"jsonrpc": "2.0",
"id": message["id"],
"error": {
"code": 123,
"message": "unhandled method {}".format(message["method"]),
}
}
if response:
responseStr = json.dumps(response)
sys.stdout.write("Content-Length: {}\r\n\r\n{}".format(len(responseStr), responseStr))
sys.stdout.flush()