11import { DebugProtocol } from "@vscode/debugprotocol" ;
22import { QueryResultType } from "../pure/new-messages" ;
3+ import { QuickEvalContext } from "../run-queries-shared" ;
4+
5+ // Events
36
47export type Event = { type : "event" } ;
58
@@ -9,65 +12,82 @@ export type StoppedEvent = DebugProtocol.StoppedEvent &
912export type InitializedEvent = DebugProtocol . InitializedEvent &
1013 Event & { event : "initialized" } ;
1114
15+ export type ExitedEvent = DebugProtocol . ExitedEvent &
16+ Event & { event : "exited" } ;
17+
1218export type OutputEvent = DebugProtocol . OutputEvent &
1319 Event & { event : "output" } ;
1420
15- export interface EvaluationStartedEventBody {
16- id : string ;
17- outputDir : string ;
18- quickEvalPosition : Position | undefined ;
19- }
20-
2121/**
2222 * Custom event to provide additional information about a running evaluation.
2323 */
24- export interface EvaluationStartedEvent extends DebugProtocol . Event {
24+ export interface EvaluationStartedEvent extends Event {
2525 event : "codeql-evaluation-started" ;
26- body : EvaluationStartedEventBody ;
27- }
28-
29- export interface EvaluationCompletedEventBody {
30- resultType : QueryResultType ;
31- message : string | undefined ;
32- evaluationTime : number ;
26+ body : {
27+ id : string ;
28+ outputDir : string ;
29+ quickEvalContext : QuickEvalContext | undefined ;
30+ } ;
3331}
3432
3533/**
3634 * Custom event to provide additional information about a completed evaluation.
3735 */
38- export interface EvaluationCompletedEvent extends DebugProtocol . Event {
36+ export interface EvaluationCompletedEvent extends Event {
3937 event : "codeql-evaluation-completed" ;
40- body : EvaluationCompletedEventBody ;
38+ body : {
39+ resultType : QueryResultType ;
40+ message : string | undefined ;
41+ evaluationTime : number ;
42+ } ;
4143}
4244
4345export type AnyEvent =
4446 | StoppedEvent
47+ | ExitedEvent
4548 | InitializedEvent
4649 | OutputEvent
4750 | EvaluationStartedEvent
4851 | EvaluationCompletedEvent ;
4952
53+ // Requests
54+
5055export type Request = DebugProtocol . Request & { type : "request" } ;
5156
57+ export type InitializeRequest = DebugProtocol . InitializeRequest &
58+ Request & { command : "initialize" } ;
59+
60+ export interface LaunchConfig {
61+ /** Full path to query (.ql) file. */
62+ query : string ;
63+ /** Full path to the database directory. */
64+ database : string ;
65+ /** Full paths to `--additional-packs` directories. */
66+ additionalPacks : string [ ] ;
67+ /** Pack names of extension packs. */
68+ extensionPacks : string [ ] ;
69+ /** Optional quick evaluation context. */
70+ quickEvalContext : QuickEvalContext | undefined ;
71+ /** Run the query without debugging it. */
72+ noDebug : boolean ;
73+ }
74+
75+ export interface LaunchRequest extends Request , DebugProtocol . LaunchRequest {
76+ type : "request" ;
77+ command : "launch" ;
78+ arguments : DebugProtocol . LaunchRequestArguments & LaunchConfig ;
79+ }
80+
5281export interface QuickEvalRequest extends Request {
5382 command : "codeql-quickeval" ;
5483 arguments : {
55- quickEvalPosition : Position ;
84+ quickEvalContext : QuickEvalContext ;
5685 } ;
5786}
5887
59- export interface DebugResultRequest extends Request {
60- command : "codeql-debug-result" ;
61- arguments : undefined ;
62- }
63-
64- export type InitializeRequest = DebugProtocol . InitializeRequest &
65- Request & { command : "initialize" } ;
88+ export type AnyRequest = InitializeRequest | LaunchRequest | QuickEvalRequest ;
6689
67- export type AnyRequest =
68- | InitializeRequest
69- | DebugResultRequest
70- | QuickEvalRequest ;
90+ // Responses
7191
7292export type Response = DebugProtocol . Response & { type : "response" } ;
7393
@@ -77,32 +97,6 @@ export type InitializeResponse = DebugProtocol.InitializeResponse &
7797// eslint-disable-next-line @typescript-eslint/no-empty-interface
7898export interface QuickEvalResponse extends Response { }
7999
80- export type AnyResponse = InitializeResponse ;
100+ export type AnyResponse = InitializeResponse | QuickEvalResponse ;
81101
82102export type AnyProtocolMessage = AnyEvent | AnyRequest | AnyResponse ;
83-
84- export interface Position {
85- fileName : string ;
86- line : number ;
87- column : number ;
88- endLine : number ;
89- endColumn : number ;
90- }
91-
92- export interface LaunchConfig {
93- /** Full path to query (.ql) file. */
94- query : string ;
95- /** Full path to the database directory. */
96- database : string ;
97- /** Full paths to `--additional-packs` directories. */
98- additionalPacks : string [ ] ;
99- /** Pack names of extension packs. */
100- extensionPacks : string [ ] ;
101- /** Optional quick evaluation position. */
102- quickEvalPosition : Position | undefined ;
103- /** Run the query without debugging it. */
104- noDebug : boolean ;
105- }
106-
107- export type LaunchRequestArguments = DebugProtocol . LaunchRequestArguments &
108- LaunchConfig ;
0 commit comments