Skip to content

Commit 651eb49

Browse files
authored
Merge pull request #863 from jansorg/dap-spec-sync
Sync DAP interfaces and types with DAP 1.69.x spec
2 parents fea59ba + ac74e5b commit 651eb49

File tree

5 files changed

+257
-11
lines changed

5 files changed

+257
-11
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
### v0.24.0 (TBD)
44

5+
* Implemented DAP version 1.69.0
6+
57
Fixed issues: <https://github.com/eclipse-lsp4j/lsp4j/milestone/35?closed=1>
68

79
Breaking API changes:

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ The Maven Repositories, p2 Update Sites, and the Snapshots contain _signed jars_
6161

6262
### Supported DAP Versions
6363

64-
* LSP4J 0.24.&ast; _(Next release)_ &rarr; DAP 1.65.0
64+
* LSP4J 0.24.&ast; _(Next release)_ &rarr; DAP 1.69.0
6565
* LSP4J 0.23.&ast; &rarr; DAP 1.65.0
6666
* LSP4J 0.22.&ast; &rarr; DAP 1.60.0
6767
* LSP4J 0.21.&ast; &rarr; DAP 1.60.0

org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/DebugProtocol.xtend

Lines changed: 239 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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 &gt; 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
/**

org.eclipse.lsp4j.debug/src/main/java/org/eclipse/lsp4j/debug/services/IDebugProtocolClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public interface IDebugProtocolClient {
4747
/**
4848
* Version of Debug Protocol
4949
*/
50-
String SCHEMA_VERSION = "1.65.0";
50+
String SCHEMA_VERSION = "1.69.0";
5151

5252
/**
5353
* This event indicates that the debug adapter is ready to accept configuration

0 commit comments

Comments
 (0)