用于 Microsoft 调试适配器协议 的 Swift SDK
注意:仍处于 alpha 开发阶段 - 功能不完整!
这是使用提供的 DebugAdapter
的最基本方法。.start()
告诉适配器开始监听来自传递到 DebugAdapter
构造函数的 input
的传入 DAP 消息。
import DebugAdapterProtocol
let input = FileHandle.standardInput
let output = FileHandle.standardOutput
DebugAdapter(input, output).start()
此时,它唯一会做的就是监听 DAP 消息并解析它们,但它不会对它们做任何处理。因此,您必须实现一个 ProtocolMessageHandler
来处理这些消息。
class ExampleHandler: ProtocolMessageHandler {
func handle(message: ProtocolMessage) {
// do something about the incoming message
}
}
您可以将一个工厂方法传递给 DebugAdapter
来创建您的消息处理程序,如下所示:
DebugAdapter(input, output)
.withMessageHandler { sender in ExampleHandler(...) }
.start()
工厂方法中的 sender
参数是一个 ProtocolMessageSender
,它本质上是一个接受 ProtocolMessage
并通过 DebugAdapter
发送它的函数。 如果您想响应请求,您可能需要在 ProtocolMessageHandler
中使用它。
import DebugAdapterProtocol
class MessageHandler: ProtocolMessageHandler {
let send: ProtocolMessageSender
init(_ send: ProtocolMessageSender) {
self.send = send
}
func handle(message: ProtocolMessage) {
switch message {
case .request(seq: let seq, request: let request):
send(.response(seq: seq, response: /* ... */))
default:
break
}
}
}
main() {
DebugAdapter(input, output)
.withMessageHandler { sender in MessageHandler(sender) }
.start()
}