dap.wit

 1interface dap {
 2    use common.{env-vars};
 3
 4    /// Resolves a specified TcpArgumentsTemplate into TcpArguments
 5    resolve-tcp-template: func(template: tcp-arguments-template) -> result<tcp-arguments, string>;
 6
 7    record launch-request {
 8        program: string,
 9        cwd: option<string>,
10        args: list<string>,
11        envs: env-vars,
12    }
13
14    record attach-request {
15        process-id: option<u32>,
16    }
17
18    variant debug-request {
19        launch(launch-request),
20        attach(attach-request)
21    }
22
23    record tcp-arguments {
24        port: u16,
25        host: u32,
26        timeout: option<u64>,
27    }
28
29    record tcp-arguments-template {
30        port: option<u16>,
31        host: option<u32>,
32        timeout: option<u64>,
33    }
34
35    record debug-task-definition {
36        label: string,
37        adapter: string,
38        config: string,
39        tcp-connection: option<tcp-arguments-template>,
40    }
41
42    enum start-debugging-request-arguments-request {
43        launch,
44        attach,
45    }
46
47    record start-debugging-request-arguments {
48        configuration: string,
49        request: start-debugging-request-arguments-request,
50    }
51
52    record debug-adapter-binary {
53        command: string,
54        arguments: list<string>,
55        envs: env-vars,
56        cwd: option<string>,
57        connection: option<tcp-arguments>,
58        request-args: start-debugging-request-arguments
59    }
60}