-
Notifications
You must be signed in to change notification settings - Fork 229
Expand file tree
/
Copy pathdebug-protocol.ts
More file actions
104 lines (82 loc) · 2.89 KB
/
debug-protocol.ts
File metadata and controls
104 lines (82 loc) · 2.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
import type { DebugProtocol } from "@vscode/debugprotocol";
import type { QueryResultType } from "../query-server/messages";
import type { QuickEvalContext } from "../run-queries-shared";
// Events
export type Event = { type: "event" };
export type StoppedEvent = DebugProtocol.StoppedEvent &
Event & { event: "stopped" };
export type InitializedEvent = DebugProtocol.InitializedEvent &
Event & { event: "initialized" };
export type ExitedEvent = DebugProtocol.ExitedEvent &
Event & { event: "exited" };
export type OutputEvent = DebugProtocol.OutputEvent &
Event & { event: "output" };
/**
* Custom event to provide additional information about a running evaluation.
*/
export interface EvaluationStartedEvent extends Event {
event: "codeql-evaluation-started";
body: {
id: string;
outputDir: string;
quickEvalContext: QuickEvalContext | undefined;
};
}
/**
* Custom event to provide additional information about a completed evaluation.
*/
export interface EvaluationCompletedEvent extends Event {
event: "codeql-evaluation-completed";
body: {
resultType: QueryResultType;
message: string | undefined;
evaluationTime: number;
outputBaseName: string;
};
}
export type AnyEvent =
| StoppedEvent
| ExitedEvent
| InitializedEvent
| OutputEvent
| EvaluationStartedEvent
| EvaluationCompletedEvent;
// Requests
export type Request = DebugProtocol.Request & { type: "request" };
export type InitializeRequest = DebugProtocol.InitializeRequest &
Request & { command: "initialize" };
export interface LaunchConfig {
/** Full path to query (.ql) file. */
query: string;
/** Full path to the database directory. */
database: string;
/** Full paths to `--additional-packs` directories. */
additionalPacks: string[];
/** Pack names of extension packs. */
extensionPacks: string[];
/** Optional quick evaluation context. */
quickEvalContext: QuickEvalContext | undefined;
/** Run the query without debugging it. */
noDebug: boolean;
/** Undocumented: Additional arguments to be passed to the `runQuery` API on the query server. */
additionalRunQueryArgs: Record<string, unknown>;
}
export interface LaunchRequest extends Request, DebugProtocol.LaunchRequest {
type: "request";
command: "launch";
arguments: DebugProtocol.LaunchRequestArguments & LaunchConfig;
}
export interface QuickEvalRequest extends Request {
command: "codeql-quickeval";
arguments: {
quickEvalContext: QuickEvalContext;
};
}
export type AnyRequest = InitializeRequest | LaunchRequest | QuickEvalRequest;
// Responses
export type Response = DebugProtocol.Response & { type: "response" };
export type InitializeResponse = DebugProtocol.InitializeResponse &
Response & { command: "initialize" };
export type QuickEvalResponse = Response;
export type AnyResponse = InitializeResponse | QuickEvalResponse;
export type AnyProtocolMessage = AnyEvent | AnyRequest | AnyResponse;