From b092489ffd1c64e63cf5c9863d425a3befdf67ff Mon Sep 17 00:00:00 2001 From: Andre Weinand Date: Thu, 19 Mar 2020 16:38:00 +0100 Subject: [PATCH] updated DAP to latest --- .../contrib/debug/common/debugProtocol.d.ts | 281 +++++++++++++----- 1 file changed, 208 insertions(+), 73 deletions(-) diff --git a/src/vs/workbench/contrib/debug/common/debugProtocol.d.ts b/src/vs/workbench/contrib/debug/common/debugProtocol.d.ts index 9fc4d468b56..4307295e632 100644 --- a/src/vs/workbench/contrib/debug/common/debugProtocol.d.ts +++ b/src/vs/workbench/contrib/debug/common/debugProtocol.d.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ - + /** Declaration module describing the VS Code debug protocol. Auto-generated from json schema. Do not edit manually. */ @@ -72,12 +72,15 @@ declare module DebugProtocol { /** Cancel request; value of command field is 'cancel'. The 'cancel' request is used by the frontend in two situations: - to indicate that it is no longer interested in the result produced by a specific request issued earlier - - to cancel a progress sequence. + - to cancel a progress sequence. Clients should only call this request if the capability 'supportsCancelRequest' is true. This request has a hint characteristic: a debug adapter can only be expected to make a 'best effort' in honouring this request but there are no guarantees. The 'cancel' request may return an error if it could not cancel an operation but a frontend should refrain from presenting this error to end users. A frontend client should only call this request if the capability 'supportsCancelRequest' is true. - The request that got canceled still needs to send a response back. This can either be a normal result ('success' attribute true) or an error response ('success' attribute false and the 'message' set to 'cancelled'). Returning partial results from a cancelled request is possible but please note that a frontend client has no generic way for detecting that a response is partial or not. - The progress that got cancelled still needs to send a 'progressEnd' event back. A client should not assume that progress just got cancelled after sending the 'cancel' request. + The request that got canceled still needs to send a response back. This can either be a normal result ('success' attribute true) + or an error response ('success' attribute false and the 'message' set to 'cancelled'). + Returning partial results from a cancelled request is possible but please note that a frontend client has no generic way for detecting that a response is partial or not. + The progress that got cancelled still needs to send a 'progressEnd' event back. + A client should not assume that progress just got cancelled after sending the 'cancel' request. */ export interface CancelRequest extends Request { // command: 'cancel'; @@ -86,9 +89,13 @@ declare module DebugProtocol { /** Arguments for 'cancel' request. */ export interface CancelArguments { - /** The ID (attribute 'seq') of the request to cancel. If missing no request is cancelled. Both a 'requestId' and a 'progressId' can be specified in one request. */ + /** The ID (attribute 'seq') of the request to cancel. If missing no request is cancelled. + Both a 'requestId' and a 'progressId' can be specified in one request. + */ requestId?: number; - /** The ID (attribute 'progressId') of the progress to cancel. If missing no progress is cancelled. Both a 'requestId' and a 'progressId' can be specified in one request. */ + /** The ID (attribute 'progressId') of the progress to cancel. If missing no progress is cancelled. + Both a 'requestId' and a 'progressId' can be specified in one request. + */ progressId?: string; } @@ -309,11 +316,14 @@ declare module DebugProtocol { The event signals that a long running operation is about to start and provides additional information for the client to set up a corresponding progress and cancellation UI. The client is free to delay the showing of the UI in order to reduce flicker. + This event should only be sent if the client has passed the value true for the 'supportsProgressReporting' capability of the 'initialize' request. */ export interface ProgressStartEvent extends Event { // event: 'progressStart'; body: { - /** An ID that must be used in subsequent 'progressUpdate' and 'progressEnd' events to make them refer to the same progress reporting. IDs must be unique within a debug session. */ + /** An ID that must be used in subsequent 'progressUpdate' and 'progressEnd' events to make them refer to the same progress reporting. + IDs must be unique within a debug session. + */ progressId: string; /** Mandatory (short) title of the progress reporting. Shown in the UI to describe the long running operation. */ title: string; @@ -337,6 +347,7 @@ declare module DebugProtocol { /** Event message for 'progressUpdate' event type. The event signals that the progress reporting needs to updated with a new message and/or percentage. The client does not have to update the UI immediately, but the clients needs to keep track of the message and/or percentage values. + This event should only be sent if the client has passed the value true for the 'supportsProgressReporting' capability of the 'initialize' request. */ export interface ProgressUpdateEvent extends Event { // event: 'progressUpdate'; @@ -352,6 +363,7 @@ declare module DebugProtocol { /** Event message for 'progressEnd' event type. The event signals the end of the progress reporting with an optional final message. + This event should only be sent if the client has passed the value true for the 'supportsProgressReporting' capability of the 'initialize' request. */ export interface ProgressEndEvent extends Event { // event: 'progressEnd'; @@ -364,7 +376,9 @@ declare module DebugProtocol { } /** RunInTerminal request; value of command field is 'runInTerminal'. - This request is sent from the debug adapter to the client to run a command in a terminal. This is typically used to launch the debuggee in a terminal provided by the client. + This optional request is sent from the debug adapter to the client to run a command in a terminal. + This is typically used to launch the debuggee in a terminal provided by the client. + This request should only be called if the client has passed the value true for the 'supportsRunInTerminalRequest' capability of the 'initialize' request. */ export interface RunInTerminalRequest extends Request { // command: 'runInTerminal'; @@ -396,8 +410,10 @@ declare module DebugProtocol { } /** Initialize request; value of command field is 'initialize'. - The 'initialize' request is sent as the first request from the client to the debug adapter in order to configure it with client capabilities and to retrieve capabilities from the debug adapter. - Until the debug adapter has responded to with an 'initialize' response, the client must not send any additional requests or events to the debug adapter. In addition the debug adapter is not allowed to send any requests or events to the client until it has responded with an 'initialize' response. + The 'initialize' request is sent as the first request from the client to the debug adapter + in order to configure it with client capabilities and to retrieve capabilities from the debug adapter. + Until the debug adapter has responded to with an 'initialize' response, the client must not send any additional requests or events to the debug adapter. + In addition the debug adapter is not allowed to send any requests or events to the client until it has responded with an 'initialize' response. The 'initialize' request may only be sent once. */ export interface InitializeRequest extends Request { @@ -442,7 +458,9 @@ declare module DebugProtocol { } /** ConfigurationDone request; value of command field is 'configurationDone'. - The client of the debug protocol must send this request at the end of the sequence of configuration requests (which was started by the 'initialized' event). + This optional request indicates that the client has finished initialization of the debug adapter. + So it is the last request in the sequence of configuration requests (which was started by the 'initialized' event). + Clients should only call this request if the capability 'supportsConfigurationDoneRequest' is true. */ export interface ConfigurationDoneRequest extends Request { // command: 'configurationDone'; @@ -458,7 +476,8 @@ declare module DebugProtocol { } /** Launch request; value of command field is 'launch'. - The launch request is sent from the client to the debug adapter to start the debuggee with or without debugging (if 'noDebug' is true). Since launching is debugger/runtime specific, the arguments for this request are not part of this specification. + This launch request is sent from the client to the debug adapter to start the debuggee with or without debugging (if 'noDebug' is true). + Since launching is debugger/runtime specific, the arguments for this request are not part of this specification. */ export interface LaunchRequest extends Request { // command: 'launch'; @@ -481,7 +500,8 @@ declare module DebugProtocol { } /** Attach request; value of command field is 'attach'. - The attach request is sent from the client to the debug adapter to attach to a debuggee that is already running. Since attaching is debugger/runtime specific, the arguments for this request are not part of this specification. + The attach request is sent from the client to the debug adapter to attach to a debuggee that is already running. + Since attaching is debugger/runtime specific, the arguments for this request are not part of this specification. */ export interface AttachRequest extends Request { // command: 'attach'; @@ -502,10 +522,8 @@ declare module DebugProtocol { } /** Restart request; value of command field is 'restart'. - Restarts a debug session. If the capability 'supportsRestartRequest' is missing or has the value false, - the client will implement 'restart' by terminating the debug adapter first and then launching it anew. - A debug adapter can override this default behaviour by implementing a restart request - and setting the capability 'supportsRestartRequest' to true. + Restarts a debug session. Clients should only call this request if the capability 'supportsRestartRequest' is true. + If the capability is missing or has the value false, a typical client will emulate 'restart' by terminating the debug adapter first and then launching it anew. */ export interface RestartRequest extends Request { // command: 'restart'; @@ -521,7 +539,11 @@ declare module DebugProtocol { } /** Disconnect request; value of command field is 'disconnect'. - The 'disconnect' request is sent from the client to the debug adapter in order to stop debugging. It asks the debug adapter to disconnect from the debuggee and to terminate the debug adapter. If the debuggee has been started with the 'launch' request, the 'disconnect' request terminates the debuggee. If the 'attach' request was used to connect to the debuggee, 'disconnect' does not terminate the debuggee. This behavior can be controlled with the 'terminateDebuggee' argument (if supported by the debug adapter). + The 'disconnect' request is sent from the client to the debug adapter in order to stop debugging. + It asks the debug adapter to disconnect from the debuggee and to terminate the debug adapter. + If the debuggee has been started with the 'launch' request, the 'disconnect' request terminates the debuggee. + If the 'attach' request was used to connect to the debuggee, 'disconnect' does not terminate the debuggee. + This behavior can be controlled with the 'terminateDebuggee' argument (if supported by the debug adapter). */ export interface DisconnectRequest extends Request { // command: 'disconnect'; @@ -534,7 +556,7 @@ declare module DebugProtocol { restart?: boolean; /** Indicates whether the debuggee should be terminated when the debugger is disconnected. If unspecified, the debug adapter is free to do whatever it thinks is best. - A client can only rely on this attribute being properly honored if a debug adapter returns true for the 'supportTerminateDebuggee' capability. + The attribute is only honored by a debug adapter if the capability 'supportTerminateDebuggee' is true. */ terminateDebuggee?: boolean; } @@ -545,6 +567,7 @@ declare module DebugProtocol { /** Terminate request; value of command field is 'terminate'. The 'terminate' request is sent from the client to the debug adapter in order to give the debuggee a chance for terminating itself. + Clients should only call this request if the capability 'supportsTerminateRequest' is true. */ export interface TerminateRequest extends Request { // command: 'terminate'; @@ -563,6 +586,7 @@ declare module DebugProtocol { /** BreakpointLocations request; value of command field is 'breakpointLocations'. The 'breakpointLocations' request returns all possible locations for source breakpoints in a given range. + Clients should only call this request if the capability 'supportsBreakpointLocationsRequest' is true. */ export interface BreakpointLocationsRequest extends Request { // command: 'breakpointLocations'; @@ -623,7 +647,9 @@ declare module DebugProtocol { */ export interface SetBreakpointsResponse extends Response { body: { - /** Information about the breakpoints. The array elements are in the same order as the elements of the 'breakpoints' (or the deprecated 'lines') array in the arguments. */ + /** Information about the breakpoints. + The array elements are in the same order as the elements of the 'breakpoints' (or the deprecated 'lines') array in the arguments. + */ breakpoints: Breakpoint[]; }; } @@ -632,6 +658,7 @@ declare module DebugProtocol { Replaces all existing function breakpoints with new function breakpoints. To clear all function breakpoints, specify an empty array. When a function breakpoint is hit, a 'stopped' event (with reason 'function breakpoint') is generated. + Clients should only call this request if the capability 'supportsFunctionBreakpoints' is true. */ export interface SetFunctionBreakpointsRequest extends Request { // command: 'setFunctionBreakpoints'; @@ -655,7 +682,9 @@ declare module DebugProtocol { } /** SetExceptionBreakpoints request; value of command field is 'setExceptionBreakpoints'. - The request configures the debuggers response to thrown exceptions. If an exception is configured to break, a 'stopped' event is fired (with reason 'exception'). + The request configures the debuggers response to thrown exceptions. + If an exception is configured to break, a 'stopped' event is fired (with reason 'exception'). + Clients should only call this request if the capability 'exceptionBreakpointFilters' returns one or more filters. */ export interface SetExceptionBreakpointsRequest extends Request { // command: 'setExceptionBreakpoints'; @@ -666,7 +695,9 @@ declare module DebugProtocol { export interface SetExceptionBreakpointsArguments { /** IDs of checked exception options. The set of IDs is returned via the 'exceptionBreakpointFilters' capability. */ filters: string[]; - /** Configuration options for selected exceptions. */ + /** Configuration options for selected exceptions. + The attribute is only honored by a debug adapter if the capability 'supportsExceptionOptions' is true. + */ exceptionOptions?: ExceptionOptions[]; } @@ -676,6 +707,7 @@ declare module DebugProtocol { /** DataBreakpointInfo request; value of command field is 'dataBreakpointInfo'. Obtains information on a possible data breakpoint that could be set on an expression or variable. + Clients should only call this request if the capability 'supportsDataBreakpoints' is true. */ export interface DataBreakpointInfoRequest extends Request { // command: 'dataBreakpointInfo'; @@ -686,7 +718,9 @@ declare module DebugProtocol { export interface DataBreakpointInfoArguments { /** Reference to the Variable container if the data breakpoint is requested for a child of the container. */ variablesReference?: number; - /** The name of the Variable's child to obtain data breakpoint information for. If variableReference isn’t provided, this can be an expression. */ + /** The name of the Variable's child to obtain data breakpoint information for. + If variableReference isn’t provided, this can be an expression. + */ name: string; } @@ -708,6 +742,7 @@ declare module DebugProtocol { Replaces all existing data breakpoints with new data breakpoints. To clear all data breakpoints, specify an empty array. When a data breakpoint is hit, a 'stopped' event (with reason 'data breakpoint') is generated. + Clients should only call this request if the capability 'supportsDataBreakpoints' is true. */ export interface SetDataBreakpointsRequest extends Request { // command: 'setDataBreakpoints'; @@ -740,14 +775,18 @@ declare module DebugProtocol { /** Arguments for 'continue' request. */ export interface ContinueArguments { - /** Continue execution for the specified thread (if possible). If the backend cannot continue on a single thread but will continue on all threads, it should set the 'allThreadsContinued' attribute in the response to true. */ + /** Continue execution for the specified thread (if possible). + If the backend cannot continue on a single thread but will continue on all threads, it should set the 'allThreadsContinued' attribute in the response to true. + */ threadId: number; } /** Response to 'continue' request. */ export interface ContinueResponse extends Response { body: { - /** If true, the 'continue' request has ignored the specified thread and continued all threads instead. If this attribute is missing a value of 'true' is assumed for backward compatibility. */ + /** If true, the 'continue' request has ignored the specified thread and continued all threads instead. + If this attribute is missing a value of 'true' is assumed for backward compatibility. + */ allThreadsContinued?: boolean; }; } @@ -817,7 +856,8 @@ declare module DebugProtocol { /** StepBack request; value of command field is 'stepBack'. The request starts the debuggee to run one step backwards. - The debug adapter first sends the response and then a 'stopped' event (with reason 'step') after the step has completed. Clients should only call this request if the capability 'supportsStepBack' is true. + The debug adapter first sends the response and then a 'stopped' event (with reason 'step') after the step has completed. + Clients should only call this request if the capability 'supportsStepBack' is true. */ export interface StepBackRequest extends Request { // command: 'stepBack'; @@ -835,7 +875,8 @@ declare module DebugProtocol { } /** ReverseContinue request; value of command field is 'reverseContinue'. - The request starts the debuggee to run backward. Clients should only call this request if the capability 'supportsStepBack' is true. + The request starts the debuggee to run backward. + Clients should only call this request if the capability 'supportsStepBack' is true. */ export interface ReverseContinueRequest extends Request { // command: 'reverseContinue'; @@ -855,6 +896,7 @@ declare module DebugProtocol { /** RestartFrame request; value of command field is 'restartFrame'. The request restarts execution of the specified stackframe. The debug adapter first sends the response and then a 'stopped' event (with reason 'restart') after the restart has completed. + Clients should only call this request if the capability 'supportsRestartFrame' is true. */ export interface RestartFrameRequest extends Request { // command: 'restartFrame'; @@ -876,6 +918,7 @@ declare module DebugProtocol { This makes it possible to skip the execution of code or to executed code again. The code between the current location and the goto target is not executed but skipped. The debug adapter first sends the response and then a 'stopped' event with reason 'goto'. + Clients should only call this request if the capability 'supportsGotoTargetsRequest' is true (because only then goto targets exist that can be passed as arguments). */ export interface GotoRequest extends Request { // command: 'goto'; @@ -929,7 +972,9 @@ declare module DebugProtocol { startFrame?: number; /** The maximum number of frames to return. If levels is not specified or 0, all frames are returned. */ levels?: number; - /** Specifies details on how to format the stack frames. */ + /** Specifies details on how to format the stack frames. + The attribute is only honored by a debug adapter if the capability 'supportsValueFormattingOptions' is true. + */ format?: StackFrameFormat; } @@ -986,7 +1031,9 @@ declare module DebugProtocol { start?: number; /** The number of variables to return. If count is missing or 0, all variables are returned. */ count?: number; - /** Specifies details on how to format the Variable values. */ + /** Specifies details on how to format the Variable values. + The attribute is only honored by a debug adapter if the capability 'supportsValueFormattingOptions' is true. + */ format?: ValueFormat; } @@ -999,7 +1046,7 @@ declare module DebugProtocol { } /** SetVariable request; value of command field is 'setVariable'. - Set the variable with the given name in the variable container to a new value. + Set the variable with the given name in the variable container to a new value. Clients should only call this request if the capability 'supportsSetVariable' is true. */ export interface SetVariableRequest extends Request { // command: 'setVariable'; @@ -1025,14 +1072,18 @@ declare module DebugProtocol { value: string; /** The type of the new value. Typically shown in the UI when hovering over the value. */ type?: string; - /** If variablesReference is > 0, the new value is structured and its children can be retrieved by passing variablesReference to the VariablesRequest. The value should be less than or equal to 2147483647 (2^31 - 1). */ + /** If variablesReference is > 0, the new value is structured and its children can be retrieved by passing variablesReference to the VariablesRequest. + The value should be less than or equal to 2147483647 (2^31 - 1). + */ variablesReference?: number; /** The number of named child variables. - The client can use this optional information to present the variables in a paged UI and fetch them in chunks. The value should be less than or equal to 2147483647 (2^31 - 1). + The client can use this optional information to present the variables in a paged UI and fetch them in chunks. + The value should be less than or equal to 2147483647 (2^31 - 1). */ namedVariables?: number; /** The number of indexed child variables. - The client can use this optional information to present the variables in a paged UI and fetch them in chunks. The value should be less than or equal to 2147483647 (2^31 - 1). + The client can use this optional information to present the variables in a paged UI and fetch them in chunks. + The value should be less than or equal to 2147483647 (2^31 - 1). */ indexedVariables?: number; }; @@ -1050,7 +1101,9 @@ declare module DebugProtocol { export interface SourceArguments { /** Specifies the source content to load. Either source.path or source.sourceReference must be specified. */ source?: Source; - /** The reference to the source. This is the same as source.sourceReference. This is provided for backward compatibility since old backends do not understand the 'source' attribute. */ + /** The reference to the source. This is the same as source.sourceReference. + This is provided for backward compatibility since old backends do not understand the 'source' attribute. + */ sourceReference: number; } @@ -1081,6 +1134,7 @@ declare module DebugProtocol { /** TerminateThreads request; value of command field is 'terminateThreads'. The request terminates the threads with the given ids. + Clients should only call this request if the capability 'supportsTerminateThreadsRequest' is true. */ export interface TerminateThreadsRequest extends Request { // command: 'terminateThreads'; @@ -1098,7 +1152,8 @@ declare module DebugProtocol { } /** Modules request; value of command field is 'modules'. - Modules can be retrieved from the debug adapter with the ModulesRequest which can either return all modules or a range of modules to support paging. + Modules can be retrieved from the debug adapter with this request which can either return all modules or a range of modules to support paging. + Clients should only call this request if the capability 'supportsModulesRequest' is true. */ export interface ModulesRequest extends Request { // command: 'modules'; @@ -1125,6 +1180,7 @@ declare module DebugProtocol { /** LoadedSources request; value of command field is 'loadedSources'. Retrieves the set of all sources currently loaded by the debugged process. + Clients should only call this request if the capability 'supportsLoadedSourcesRequest' is true. */ export interface LoadedSourcesRequest extends Request { // command: 'loadedSources'; @@ -1164,10 +1220,13 @@ declare module DebugProtocol { 'repl': evaluate is run from REPL console. 'hover': evaluate is run from a data hover. 'clipboard': evaluate is run to generate the value that will be stored in the clipboard. + The attribute is only honored by a debug adapter if the capability 'supportsClipboardContext' is true. etc. */ context?: string; - /** Specifies details on how to format the Evaluate result. */ + /** Specifies details on how to format the Evaluate result. + The attribute is only honored by a debug adapter if the capability 'supportsValueFormattingOptions' is true. + */ format?: ValueFormat; } @@ -1176,21 +1235,30 @@ declare module DebugProtocol { body: { /** The result of the evaluate request. */ result: string; - /** The optional type of the evaluate result. */ + /** The optional type of the evaluate result. + This attribute should only be returned by a debug adapter if the client has passed the value true for the 'supportsVariableType' capability of the 'initialize' request. + */ type?: string; /** Properties of a evaluate result that can be used to determine how to render the result in the UI. */ presentationHint?: VariablePresentationHint; - /** If variablesReference is > 0, the evaluate result is structured and its children can be retrieved by passing variablesReference to the VariablesRequest. The value should be less than or equal to 2147483647 (2^31 - 1). */ + /** If variablesReference is > 0, the evaluate result is structured and its children can be retrieved by passing variablesReference to the VariablesRequest. + The value should be less than or equal to 2147483647 (2^31 - 1). + */ variablesReference: number; /** The number of named child variables. - The client can use this optional information to present the variables in a paged UI and fetch them in chunks. The value should be less than or equal to 2147483647 (2^31 - 1). + The client can use this optional information to present the variables in a paged UI and fetch them in chunks. + The value should be less than or equal to 2147483647 (2^31 - 1). */ namedVariables?: number; /** The number of indexed child variables. - The client can use this optional information to present the variables in a paged UI and fetch them in chunks. The value should be less than or equal to 2147483647 (2^31 - 1). + The client can use this optional information to present the variables in a paged UI and fetch them in chunks. + The value should be less than or equal to 2147483647 (2^31 - 1). */ indexedVariables?: number; - /** Memory reference to a location appropriate for this result. For pointer type eval results, this is generally a reference to the memory address contained in the pointer. */ + /** Optional memory reference to a location appropriate for this result. + For pointer type eval results, this is generally a reference to the memory address contained in the pointer. + This attribute should be returned by a debug adapter if the client has passed the value true for the 'supportsMemoryReferences' capability of the 'initialize' request. + */ memoryReference?: string; }; } @@ -1198,6 +1266,7 @@ declare module DebugProtocol { /** SetExpression request; value of command field is 'setExpression'. Evaluates the given 'value' expression and assigns it to the 'expression' which must be a modifiable l-value. The expressions have access to any variables and arguments that are in scope of the specified frame. + Clients should only call this request if the capability 'supportsSetExpression' is true. */ export interface SetExpressionRequest extends Request { // command: 'setExpression'; @@ -1221,18 +1290,24 @@ declare module DebugProtocol { body: { /** The new value of the expression. */ value: string; - /** The optional type of the value. */ + /** The optional type of the value. + This attribute should only be returned by a debug adapter if the client has passed the value true for the 'supportsVariableType' capability of the 'initialize' request. + */ type?: string; /** Properties of a value that can be used to determine how to render the result in the UI. */ presentationHint?: VariablePresentationHint; - /** If variablesReference is > 0, the value is structured and its children can be retrieved by passing variablesReference to the VariablesRequest. The value should be less than or equal to 2147483647 (2^31 - 1). */ + /** If variablesReference is > 0, the value is structured and its children can be retrieved by passing variablesReference to the VariablesRequest. + The value should be less than or equal to 2147483647 (2^31 - 1). + */ variablesReference?: number; /** The number of named child variables. - The client can use this optional information to present the variables in a paged UI and fetch them in chunks. The value should be less than or equal to 2147483647 (2^31 - 1). + The client can use this optional information to present the variables in a paged UI and fetch them in chunks. + The value should be less than or equal to 2147483647 (2^31 - 1). */ namedVariables?: number; /** The number of indexed child variables. - The client can use this optional information to present the variables in a paged UI and fetch them in chunks. The value should be less than or equal to 2147483647 (2^31 - 1). + The client can use this optional information to present the variables in a paged UI and fetch them in chunks. + The value should be less than or equal to 2147483647 (2^31 - 1). */ indexedVariables?: number; }; @@ -1242,6 +1317,7 @@ declare module DebugProtocol { This request retrieves the possible stepIn targets for the specified stack frame. These targets can be used in the 'stepIn' request. The StepInTargets may only be called if the 'supportsStepInTargetsRequest' capability exists and is true. + Clients should only call this request if the capability 'supportsStepInTargetsRequest' is true. */ export interface StepInTargetsRequest extends Request { // command: 'stepInTargets'; @@ -1265,7 +1341,7 @@ declare module DebugProtocol { /** GotoTargets request; value of command field is 'gotoTargets'. This request retrieves the possible goto targets for the specified source location. These targets can be used in the 'goto' request. - The GotoTargets request may only be called if the 'supportsGotoTargetsRequest' capability exists and is true. + Clients should only call this request if the capability 'supportsGotoTargetsRequest' is true. */ export interface GotoTargetsRequest extends Request { // command: 'gotoTargets'; @@ -1292,7 +1368,7 @@ declare module DebugProtocol { /** Completions request; value of command field is 'completions'. Returns a list of possible completions for a given caret position and text. - The CompletionsRequest may only be called if the 'supportsCompletionsRequest' capability exists and is true. + Clients should only call this request if the capability 'supportsCompletionsRequest' is true. */ export interface CompletionsRequest extends Request { // command: 'completions'; @@ -1321,6 +1397,7 @@ declare module DebugProtocol { /** ExceptionInfo request; value of command field is 'exceptionInfo'. Retrieves the details of the exception that caused this event to be raised. + Clients should only call this request if the capability 'supportsExceptionInfoRequest' is true. */ export interface ExceptionInfoRequest extends Request { // command: 'exceptionInfo'; @@ -1349,6 +1426,7 @@ declare module DebugProtocol { /** ReadMemory request; value of command field is 'readMemory'. Reads bytes from memory at the provided location. + Clients should only call this request if the capability 'supportsReadMemoryRequest' is true. */ export interface ReadMemoryRequest extends Request { // command: 'readMemory'; @@ -1368,9 +1446,13 @@ declare module DebugProtocol { /** Response to 'readMemory' request. */ export interface ReadMemoryResponse extends Response { body?: { - /** The address of the first byte of data returned. Treated as a hex value if prefixed with '0x', or as a decimal value otherwise. */ + /** The address of the first byte of data returned. + Treated as a hex value if prefixed with '0x', or as a decimal value otherwise. + */ address: string; - /** The number of unreadable bytes encountered after the last successfully read byte. This can be used to determine the number of bytes that must be skipped before a subsequent 'readMemory' request will succeed. */ + /** The number of unreadable bytes encountered after the last successfully read byte. + This can be used to determine the number of bytes that must be skipped before a subsequent 'readMemory' request will succeed. + */ unreadableBytes?: number; /** The bytes read from memory, encoded using base64. */ data?: string; @@ -1379,6 +1461,7 @@ declare module DebugProtocol { /** Disassemble request; value of command field is 'disassemble'. Disassembles code stored at the provided location. + Clients should only call this request if the capability 'supportsDisassembleRequest' is true. */ export interface DisassembleRequest extends Request { // command: 'disassemble'; @@ -1393,7 +1476,9 @@ declare module DebugProtocol { offset?: number; /** Optional offset (in instructions) to be applied after the byte offset (if any) before disassembling. Can be negative. */ instructionOffset?: number; - /** Number of instructions to disassemble starting at the specified location and offset. An adapter must return exactly this number of instructions - any unavailable instructions should be replaced with an implementation-defined 'invalid instruction' value. */ + /** Number of instructions to disassemble starting at the specified location and offset. + An adapter must return exactly this number of instructions - any unavailable instructions should be replaced with an implementation-defined 'invalid instruction' value. + */ instructionCount: number; /** If true, the adapter should attempt to resolve memory addresses and other values to symbolic names. */ resolveSymbols?: boolean; @@ -1543,7 +1628,8 @@ declare module DebugProtocol { addressRange?: string; } - /** A ColumnDescriptor specifies what module attribute to show in a column of the ModulesView, how to format it, and what the column's label should be. + /** A ColumnDescriptor specifies what module attribute to show in a column of the ModulesView, how to format it, + and what the column's label should be. It is only used if the underlying UI actually supports this level of customization. */ export interface ColumnDescriptor { @@ -1574,21 +1660,34 @@ declare module DebugProtocol { name: string; } - /** A Source is a descriptor for source code. It is returned from the debug adapter as part of a StackFrame and it is used by clients when specifying breakpoints. */ + /** A Source is a descriptor for source code. + It is returned from the debug adapter as part of a StackFrame and it is used by clients when specifying breakpoints. + */ export interface Source { - /** The short name of the source. Every source returned from the debug adapter has a name. When sending a source to the debug adapter this name is optional. */ + /** The short name of the source. Every source returned from the debug adapter has a name. + When sending a source to the debug adapter this name is optional. + */ name?: string; - /** The path of the source to be shown in the UI. It is only used to locate and load the content of the source if no sourceReference is specified (or its value is 0). */ + /** The path of the source to be shown in the UI. + It is only used to locate and load the content of the source if no sourceReference is specified (or its value is 0). + */ path?: string; - /** If sourceReference > 0 the contents of the source must be retrieved through the SourceRequest (even if a path is specified). A sourceReference is only valid for a session, so it must not be used to persist a source. The value should be less than or equal to 2147483647 (2^31 - 1). */ + /** If sourceReference > 0 the contents of the source must be retrieved through the SourceRequest (even if a path is specified). + A sourceReference is only valid for a session, so it must not be used to persist a source. + The value should be less than or equal to 2147483647 (2^31 - 1). + */ sourceReference?: number; - /** An optional hint for how to present the source in the UI. A value of 'deemphasize' can be used to indicate that the source is not available or that it is skipped on stepping. */ + /** An optional hint for how to present the source in the UI. + A value of 'deemphasize' can be used to indicate that the source is not available or that it is skipped on stepping. + */ presentationHint?: 'normal' | 'emphasize' | 'deemphasize'; /** The (optional) origin of this source: possible values 'internal module', 'inlined content from source map', etc. */ origin?: string; /** An optional list of sources that are related to this source. These may be the source that generated this source. */ sources?: Source[]; - /** Optional data that a debug adapter might want to loop through the client. The client should leave the data intact and persist it across sessions. The client should not interpret the data. */ + /** Optional data that a debug adapter might want to loop through the client. + The client should leave the data intact and persist it across sessions. The client should not interpret the data. + */ adapterData?: any; /** The checksums associated with this file. */ checksums?: Checksum[]; @@ -1596,7 +1695,9 @@ declare module DebugProtocol { /** A Stackframe contains the source location. */ export interface StackFrame { - /** An identifier for the stack frame. It must be unique across all threads. This id can be used to retrieve the scopes of the frame with the 'scopesRequest' or to restart the execution of a stackframe. */ + /** An identifier for the stack frame. It must be unique across all threads. + This id can be used to retrieve the scopes of the frame with the 'scopesRequest' or to restart the execution of a stackframe. + */ id: number; /** The name of the stack frame, typically a method name. */ name: string; @@ -1614,7 +1715,9 @@ declare module DebugProtocol { instructionPointerReference?: string; /** The module associated with this frame, if any. */ moduleId?: number | string; - /** An optional hint for how to present this frame in the UI. A value of 'label' can be used to indicate that the frame is an artificial frame that is used as a visual label or separator. A value of 'subtle' can be used to change the appearance of a frame in a 'subtle' way. */ + /** An optional hint for how to present this frame in the UI. + A value of 'label' can be used to indicate that the frame is an artificial frame that is used as a visual label or separator. A value of 'subtle' can be used to change the appearance of a frame in a 'subtle' way. + */ presentationHint?: 'normal' | 'label' | 'subtle'; } @@ -1666,7 +1769,9 @@ declare module DebugProtocol { name: string; /** The variable's value. This can be a multi-line text, e.g. for a function the body of a function. */ value: string; - /** The type of the variable's value. Typically shown in the UI when hovering over the value. */ + /** The type of the variable's value. Typically shown in the UI when hovering over the value. + This attribute should only be returned by a debug adapter if the client has passed the value true for the 'supportsVariableType' capability of the 'initialize' request. + */ type?: string; /** Properties of a variable that can be used to determine how to render the variable in the UI. */ presentationHint?: VariablePresentationHint; @@ -1682,7 +1787,9 @@ declare module DebugProtocol { The client can use this optional information to present the children in a paged UI and fetch them in chunks. */ indexedVariables?: number; - /** Optional memory reference for the variable if the variable represents executable code, such as a function pointer. */ + /** Optional memory reference for the variable if the variable represents executable code, such as a function pointer. + This attribute is only required if the client has passed the value true for the 'supportsMemoryReferences' capability of the 'initialize' request. + */ memoryReference?: string; } @@ -1699,7 +1806,8 @@ declare module DebugProtocol { 'innerClass': Indicates that the object is an inner class. 'interface': Indicates that the object is an interface. 'mostDerivedClass': Indicates that the object is the most derived class. - 'virtual': Indicates that the object is virtual, that means it is a synthetic object introduced by the adapter for rendering purposes, e.g. an index range for large arrays. + 'virtual': Indicates that the object is virtual, that means it is a synthetic object introducedby the + adapter for rendering purposes, e.g. an index range for large arrays. 'dataBreakpoint': Indicates that a data breakpoint is registered for the object. etc. */ @@ -1740,11 +1848,19 @@ declare module DebugProtocol { line: number; /** An optional source column of the breakpoint. */ column?: number; - /** An optional expression for conditional breakpoints. */ + /** An optional expression for conditional breakpoints. + It is only honored by a debug adapter if the capability 'supportsConditionalBreakpoints' is true. + */ condition?: string; - /** An optional expression that controls how many hits of the breakpoint are ignored. The backend is expected to interpret the expression as needed. */ + /** An optional expression that controls how many hits of the breakpoint are ignored. + The backend is expected to interpret the expression as needed. + The attribute is only honored by a debug adapter if the capability 'supportsHitConditionalBreakpoints' is true. + */ hitCondition?: string; - /** If this attribute exists and is non-empty, the backend must not 'break' (stop) but log the message instead. Expressions within {} are interpolated. */ + /** If this attribute exists and is non-empty, the backend must not 'break' (stop) + but log the message instead. Expressions within {} are interpolated. + The attribute is only honored by a debug adapter if the capability 'supportsLogPoints' is true. + */ logMessage?: string; } @@ -1752,9 +1868,14 @@ declare module DebugProtocol { export interface FunctionBreakpoint { /** The name of the function. */ name: string; - /** An optional expression for conditional breakpoints. */ + /** An optional expression for conditional breakpoints. + It is only honored by a debug adapter if the capability 'supportsConditionalBreakpoints' is true. + */ condition?: string; - /** An optional expression that controls how many hits of the breakpoint are ignored. The backend is expected to interpret the expression as needed. */ + /** An optional expression that controls how many hits of the breakpoint are ignored. + The backend is expected to interpret the expression as needed. + The attribute is only honored by a debug adapter if the capability 'supportsHitConditionalBreakpoints' is true. + */ hitCondition?: string; } @@ -1769,7 +1890,9 @@ declare module DebugProtocol { accessType?: DataBreakpointAccessType; /** An optional expression for conditional breakpoints. */ condition?: string; - /** An optional expression that controls how many hits of the breakpoint are ignored. The backend is expected to interpret the expression as needed. */ + /** An optional expression that controls how many hits of the breakpoint are ignored. + The backend is expected to interpret the expression as needed. + */ hitCondition?: string; } @@ -1779,7 +1902,9 @@ declare module DebugProtocol { id?: number; /** If true breakpoint could be set (but not necessarily at the desired location). */ verified: boolean; - /** An optional message about the state of the breakpoint. This is shown to the user and can be used to explain why a breakpoint could not be verified. */ + /** An optional message about the state of the breakpoint. + This is shown to the user and can be used to explain why a breakpoint could not be verified. + */ message?: string; /** The source where the breakpoint is located. */ source?: Source; @@ -1789,7 +1914,9 @@ declare module DebugProtocol { column?: number; /** An optional end line of the actual range covered by the breakpoint. */ endLine?: number; - /** An optional end column of the actual range covered by the breakpoint. If no end line is given, then the end column is assumed to be in the start line. */ + /** An optional end column of the actual range covered by the breakpoint. + If no end line is given, then the end column is assumed to be in the start line. + */ endColumn?: number; } @@ -1891,7 +2018,9 @@ declare module DebugProtocol { /** An ExceptionOptions assigns configuration options to a set of exceptions. */ export interface ExceptionOptions { - /** A path that selects a single or multiple exceptions in a tree. If 'path' is missing, the whole tree is selected. By convention the first segment of the path is a category that is used to group exceptions in the UI. */ + /** A path that selects a single or multiple exceptions in a tree. If 'path' is missing, the whole tree is selected. + By convention the first segment of the path is a category that is used to group exceptions in the UI. + */ path?: ExceptionPathSegment[]; /** Condition when a thrown exception should result in a break. */ breakMode: ExceptionBreakMode; @@ -1905,7 +2034,10 @@ declare module DebugProtocol { */ export type ExceptionBreakMode = 'never' | 'always' | 'unhandled' | 'userUnhandled'; - /** An ExceptionPathSegment represents a segment in a path that is used to match leafs or nodes in a tree of exceptions. If a segment consists of more than one name, it matches the names provided if 'negate' is false or missing or it matches anything except the names provided if 'negate' is true. */ + /** An ExceptionPathSegment represents a segment in a path that is used to match leafs or nodes in a tree of exceptions. + If a segment consists of more than one name, it matches the names provided if 'negate' is false or missing or + it matches anything except the names provided if 'negate' is true. + */ export interface ExceptionPathSegment { /** If false or missing this segment matches the names provided, otherwise it matches anything except the names provided. */ negate?: boolean; @@ -1939,7 +2071,10 @@ declare module DebugProtocol { instruction: string; /** Name of the symbol that corresponds with the location of this instruction, if any. */ symbol?: string; - /** Source location that corresponds to this instruction, if any. Should always be set (if available) on the first instruction returned, but can be omitted afterwards if this instruction maps to the same source file as the previous instruction. */ + /** Source location that corresponds to this instruction, if any. + Should always be set (if available) on the first instruction returned, + but can be omitted afterwards if this instruction maps to the same source file as the previous instruction. + */ location?: Source; /** The line within the source location that corresponds to this instruction, if any. */ line?: number; -- GitLab