@@ -28,7 +28,7 @@ class DebugProtocol {
2828 /**
2929 * Version of Debug Protocol
3030 */
31- public static final String SCHEMA_VERSION = " 1.65 .0" ;
31+ public static final String SCHEMA_VERSION = " 1.69 .0" ;
3232
3333 /**
3434 * Refer to the Debug Adapter Protocol's
@@ -261,7 +261,13 @@ class OutputEventArguments {
261261 String category;
262262 /**
263263 * The output to report.
264- */
264+ * <p >
265+ * ANSI escape sequences may be used to influence text color and styling if `supportsANSIStyling` is present in
266+ * both the adapter's `Capabilities` and the client's `InitializeRequestArguments`. A client may strip any
267+ * unrecognized ANSI sequences.
268+ * <p >
269+ * If the `supportsANSIStyling` capabilities are not both true, then the client should display the output literally.
270+ */
265271 @NonNull
266272 String output;
267273 /**
@@ -305,6 +311,19 @@ class OutputEventArguments {
305311 * This is an optional property.
306312 */
307313 Object data;
314+ /**
315+ * A reference that allows the client to request the location where the new value is declared. For example,
316+ * if the logged value is function pointer, the adapter may be able to look up the function's location. This should
317+ * be present only if the adapter is likely to be able to resolve the location.
318+ * <p >
319+ * This reference shares the same lifetime as the `variablesReference`.
320+ * See 'Lifetime of Object References' in the Overview section for details.
321+ * <p >
322+ * This is an optional property.
323+ * <p >
324+ * Since 1.68
325+ */
326+ Integer locationReference;
308327}
309328
310329/**
@@ -475,7 +494,9 @@ class ProcessEventArguments {
475494 @NonNull
476495 String name;
477496 /**
478- * The system process id of the debugged process. This property is missing for non-system processes.
497+ * The process ID of the debugged process, as assigned by the operating system.
498+ * This property should be omitted for logical processes that do not map to
499+ * operating system processes on the machine.
479500 * <p >
480501 * This is an optional property.
481502 */
@@ -902,6 +923,15 @@ class InitializeRequestArguments {
902923 * Since 1.59
903924 */
904925 Boolean supportsStartDebuggingRequest;
926+ /**
927+ * The client will interpret ANSI escape sequences in the display of `OutputEvent.output` and `Variable.value`
928+ * fields when `Capabilities.supportsANSIStyling` is also enabled.
929+ * <p >
930+ * This is an optional property.
931+ * <p >
932+ * Since 1.69
933+ */
934+ Boolean supportsANSIStyling;
905935}
906936
907937/**
@@ -1280,7 +1310,8 @@ class DataBreakpointInfoArguments {
12801310 /**
12811311 * The name of the Variable's child to obtain data breakpoint information for.
12821312 * <p >
1283- * If variablesReference isn't specified, this can be an expression.
1313+ * If variablesReference isn't specified, this can be an expression, or an address
1314+ * if `asAddress` is also true.
12841315 */
12851316 @NonNull
12861317 String name;
@@ -1294,6 +1325,29 @@ class DataBreakpointInfoArguments {
12941325 * Since 1.59
12951326 */
12961327 Integer frameId;
1328+ /**
1329+ * If specified, a debug adapter should return information for the range of memory extending `bytes` number of
1330+ * bytes from the address or variable specified by `name`. Breakpoints set using the resulting data ID should
1331+ * pause on data access anywhere within that range.
1332+ * <p >
1333+ * Clients may set this property only if the `supportsDataBreakpointBytes` capability is true.
1334+ * <p >
1335+ * This is an optional property.
1336+ * <p >
1337+ * Since 1.66
1338+ */
1339+ Integer bytes;
1340+ /**
1341+ * If `true`, the `name` is a memory address and the debugger should interpret it as a decimal value,
1342+ * or hex value if it is prefixed with `0x`.
1343+ * <p >
1344+ * Clients may set this property only if the `supportsDataBreakpointBytes` capability is true.
1345+ * <p >
1346+ * This is an optional property.
1347+ * <p >
1348+ * Since 1.66
1349+ */
1350+ Boolean asAddress;
12971351 /**
12981352 * The mode of the desired breakpoint. If defined, this must be one of the `breakpointModes`
12991353 * the debug adapter advertised in its `Capabilities`.
@@ -1728,7 +1782,10 @@ class SetVariableResponse {
17281782 /**
17291783 * If `variablesReference` is > ; 0, the new value is structured and its children can be retrieved by passing
17301784 * `variablesReference` to the `variables` request as long as execution remains suspended.
1731- * See 'Lifetime of Object References' in the {@link DebugProtocol#Overview} section for details.
1785+ * See 'Lifetime of Object References' in the Overview section for details.
1786+ * <p >
1787+ * If this property is included in the response, any `variablesReference` previously associated with
1788+ * the updated variable, and those of its children, are no longer valid.
17321789 * <p >
17331790 * This is an optional property.
17341791 */
@@ -1766,6 +1823,19 @@ class SetVariableResponse {
17661823 * Since 1.63
17671824 */
17681825 String memoryReference;
1826+ /**
1827+ * A reference that allows the client to request the location where the new value is declared. For example,
1828+ * if the new value is function pointer, the adapter may be able to look up the function's location. This should be
1829+ * present only if the adapter is likely to be able to resolve the location.
1830+ * <p >
1831+ * This reference shares the same lifetime as the `variablesReference`.
1832+ * See 'Lifetime of Object References' in the Overview section for details.
1833+ * <p >
1834+ * This is an optional property.
1835+ * <p >
1836+ * Since 1.68
1837+ */
1838+ Integer valueLocationReference;
17691839}
17701840
17711841/**
@@ -1979,6 +2049,19 @@ class EvaluateResponse {
19792049 * This is an optional property.
19802050 */
19812051 String memoryReference;
2052+ /**
2053+ * A reference that allows the client to request the location where the returned value is declared. For example,
2054+ * if a function pointer is returned, the adapter may be able to look up the function's location.
2055+ * This should be present only if the adapter is likely to be able to resolve the location.
2056+ * <p >
2057+ * This reference shares the same lifetime as the `variablesReference`.
2058+ * See 'Lifetime of Object References' in the Overview section for details.
2059+ * <p >
2060+ * This is an optional property.
2061+ * <p >
2062+ * Since 1.68
2063+ */
2064+ Integer valueLocationReference;
19822065}
19832066
19842067/**
@@ -1998,6 +2081,34 @@ class EvaluateArguments {
19982081 * This is an optional property.
19992082 */
20002083 Integer frameId;
2084+ /**
2085+ * The contextual line where the expression should be evaluated. In the 'hover' context, this should be set to the
2086+ * start of the expression being hovered.
2087+ * <p >
2088+ * This is an optional property.
2089+ * <p >
2090+ * Since 1.67
2091+ */
2092+ Integer line;
2093+ /**
2094+ * The contextual column where the expression should be evaluated. This may be provided if `line` is also provided.
2095+ * <p >
2096+ * It is measured in UTF-16 code units and the client capability `columnsStartAt1` determines whether
2097+ * it is 0- or 1-based.
2098+ * <p >
2099+ * This is an optional property.
2100+ * <p >
2101+ * Since 1.67
2102+ */
2103+ Integer column;
2104+ /**
2105+ * The contextual source in which the `line` is found. This must be provided if `line` is provided.
2106+ * <p >
2107+ * This is an optional property.
2108+ * <p >
2109+ * Since 1.67
2110+ */
2111+ Source source;
20012112 /**
20022113 * The context in which the evaluate request is used.
20032114 * <p >
@@ -2117,6 +2228,19 @@ class SetExpressionResponse {
21172228 * Since 1.63
21182229 */
21192230 String memoryReference;
2231+ /**
2232+ * A reference that allows the client to request the location where the new value is declared. For example,
2233+ * if the new value is function pointer, the adapter may be able to look up the function's location. This should be
2234+ * present only if the adapter is likely to be able to resolve the location.
2235+ * <p >
2236+ * This reference shares the same lifetime as the `variablesReference`.
2237+ * See 'Lifetime of Object References' in the Overview section for details.
2238+ * <p >
2239+ * This is an optional property.
2240+ * <p >
2241+ * Since 1.68
2242+ */
2243+ Integer valueLocationReference;
21202244}
21212245
21222246/**
@@ -2458,6 +2582,66 @@ class DisassembleArguments {
24582582 Boolean resolveSymbols;
24592583}
24602584
2585+
2586+ /**
2587+ * Arguments for 'locations' request.
2588+ * <p >
2589+ * Since 1.68
2590+ */
2591+ @JsonRpcData
2592+ class LocationsArguments {
2593+ /**
2594+ * Location reference to resolve.
2595+ */
2596+ @NonNull
2597+ Integer locationReference;
2598+ }
2599+
2600+ /**
2601+ * Response to 'locations' request.
2602+ * <p >
2603+ * Since 1.68
2604+ */
2605+ @JsonRpcData
2606+ class LocationsResponse {
2607+ /**
2608+ * The source containing the location; either `source.path` or
2609+ * `source.sourceReference` must be specified.
2610+ */
2611+ @NonNull
2612+ Source source;
2613+ /**
2614+ * The line number of the location. The client capability `linesStartAt1`
2615+ * determines whether it is 0- or 1-based.
2616+ */
2617+ @NonNull
2618+ Integer line;
2619+ /**
2620+ * Position of the location within the `line`. It is measured in UTF-16 code
2621+ * units and the client capability `columnsStartAt1` determines whether it
2622+ * is 0- or 1-based. If no column is given, the first position in the start
2623+ * line is assumed.
2624+ * <p >
2625+ * This is an optional property.
2626+ */
2627+ Integer column;
2628+ /**
2629+ * End line of the location, present if the location refers to a range. The
2630+ * client capability `linesStartAt1` determines whether it is 0- or 1-based.
2631+ * <p >
2632+ * This is an optional property.
2633+ */
2634+ Integer endLine;
2635+ /**
2636+ * End position of the location within `endLine`, present if the location
2637+ * refers to a range. It is measured in UTF-16 code units and the client
2638+ * capability `columnsStartAt1` determines whether it is 0- or 1-based.
2639+ * <p >
2640+ * This is an optional property.
2641+ */
2642+ Integer endColumn;
2643+ }
2644+
24612645/**
24622646 * Information about the capabilities of a debug adapter.
24632647 */
@@ -2709,6 +2893,15 @@ class Capabilities {
27092893 * Since 1.51
27102894 */
27112895 Boolean supportsSingleThreadExecutionRequests;
2896+ /**
2897+ * The debug adapter supports the 'asAddress' and 'bytes' fields in the 'dataBreakpointInfo'
2898+ * request.
2899+ * <p >
2900+ * This is an optional property.
2901+ * <p >
2902+ * Since 1.66
2903+ */
2904+ Boolean supportsDataBreakpointBytes;
27122905 /**
27132906 * Modes of breakpoints supported by the debug adapter, such as 'hardware' or 'software'.
27142907 * If present, the client may allow the user to select a mode and include it in its `setBreakpoints` request.
@@ -2723,6 +2916,14 @@ class Capabilities {
27232916 * Since 1.65
27242917 */
27252918 BreakpointMode [] breakpointModes;
2919+ /**
2920+ * The debug adapter supports ANSI escape sequences in styling of `OutputEvent.output` and `Variable.value` fields.
2921+ * <p >
2922+ * This is an optional property.
2923+ * <p >
2924+ * Since 1.69
2925+ */
2926+ Boolean supportsANSIStyling;
27262927}
27272928
27282929/**
@@ -3172,8 +3373,8 @@ class StackFrame {
31723373 */
31733374 Integer endColumn;
31743375 /**
3175- * Indicates whether this frame can be restarted with the 'restart' request.
3176- * Clients should only use this if the debug adapter supports the ' restart' request
3376+ * Indicates whether this frame can be restarted with the `restartFrame` request.
3377+ * Clients should only use this if the debug adapter supports the ` restart` request
31773378 * and the corresponding capability {@link Capabilities#getSupportsRestartRequest}
31783379 * is {@code true }. If a debug adapter has this capability, then `canRestart` defaults
31793380 * to `true` if the property is absent.
@@ -3319,6 +3520,12 @@ interface ScopePresentationHint {
33193520 * Scope contains registers. Only a single 'registers' scope should be returned from a 'scopes' request.
33203521 */
33213522 public static final String REGISTERS = " registers" ;
3523+ /**
3524+ * Scope contains one or more return values.
3525+ * <p >
3526+ * Since 1.67
3527+ */
3528+ public static final String RETURN_VALUE = " returnValue" ;
33223529}
33233530
33243531/**
@@ -3413,6 +3620,31 @@ class Variable {
34133620 * This is an optional property.
34143621 */
34153622 String memoryReference;
3623+ /**
3624+ * A reference that allows the client to request the location where the variable is declared. This should be
3625+ * present only if the adapter is likely to be able to resolve the location.
3626+ * <p >
3627+ * This reference shares the same lifetime as the `variablesReference`.
3628+ * See 'Lifetime of Object References' in the Overview section for details.
3629+ * <p >
3630+ * This is an optional property.
3631+ * <p >
3632+ * Since 1.68
3633+ */
3634+ Integer declarationLocationReference;
3635+ /**
3636+ * A reference that allows the client to request the location where the variable's value is declared. For example,
3637+ * if the variable contains a function pointer, the adapter may be able to look up the function's location.
3638+ * This should be present only if the adapter is likely to be able to resolve the location.
3639+ * <p >
3640+ * This reference shares the same lifetime as the `variablesReference`.
3641+ * See 'Lifetime of Object References' in the Overview section for details.
3642+ * <p >
3643+ * This is an optional property.
3644+ * <p >
3645+ * Since 1.68
3646+ */
3647+ Integer valueLocationReference;
34163648}
34173649
34183650/**
0 commit comments