use LSPResult instead of optionals

This commit is contained in:
Richard Howell
2019-10-04 15:14:04 -07:00
parent 0f6f260701
commit 26d3fca5dd
8 changed files with 69 additions and 57 deletions

View File

@@ -184,24 +184,26 @@ extension BuildServerBuildSystem: BuildSystem {
}
}
public func buildTargetSources(targets: [BuildTargetIdentifier], reply: @escaping ([SourcesItem]?) -> Void) {
public func buildTargetSources(targets: [BuildTargetIdentifier], reply: @escaping (LSPResult<[SourcesItem]>) -> Void) {
let req = BuildTargetSources(targets: targets)
_ = self.buildServer?.send(req, queue: requestQueue) { result in
if let items = result.success?.items { reply(items) }
else {
log("error fetching build target sources: \(result)")
reply(nil)
_ = self.buildServer?.send(req, queue: requestQueue) { response in
switch response {
case .success(let result):
reply(.success(result.items))
case .failure(let error):
reply(.failure(error))
}
}
}
public func buildTargetOutputPaths(targets: [BuildTargetIdentifier], reply: @escaping ([OutputsItem]?) -> Void) {
public func buildTargetOutputPaths(targets: [BuildTargetIdentifier], reply: @escaping (LSPResult<[OutputsItem]>) -> Void) {
let req = BuildTargetOutputPaths(targets: targets)
_ = self.buildServer?.send(req, queue: requestQueue) { result in
if let items = result.success?.items { reply(items) }
else {
log("error fetching build target outputs: \(result)")
reply(nil)
_ = self.buildServer?.send(req, queue: requestQueue) { response in
switch response {
case .success(let result):
reply(.success(result.items))
case .failure(let error):
reply(.failure(error))
}
}
}