add support for index store path via metadata

This commit is contained in:
Richard Howell
2019-08-28 10:38:07 -07:00
parent 7b842235be
commit cbd33eed6a
3 changed files with 27 additions and 2 deletions

View File

@@ -85,11 +85,34 @@ public final class BuildServerBuildSystem {
let response = try buildServer.sendSync(initializeRequest)
buildServer.send(InitializedBuildNotification())
log("initialized build server \(response.displayName)")
// see if index store was set as part of the server metadata
if let indexStorePath = readReponseDataKey(data: response.data, key: "indexStorePath") {
self.indexStorePath = AbsolutePath(indexStorePath, relativeTo: self.projectRoot)
}
self.buildServer = buildServer
self.handler = handler
}
}
private func readReponseDataKey(data: LSPAny?, key: String) -> String? {
switch data {
case .dictionary(let dataDict):
if let val = dataDict[key] {
switch val {
case .string(let stringVal):
return stringVal
default:
break
}
}
default:
break
}
return nil
}
final class BuildServerHandler: LanguageServerEndpoint {
override func _registerBuiltinHandlers() { }
}