ruby-dap 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/README.md +17 -3
  4. data/lib/dap.rb +4 -0
  5. data/lib/dap/attach_request_arguments.rb +2 -0
  6. data/lib/dap/base.rb +57 -6
  7. data/lib/dap/breakpoint.rb +11 -9
  8. data/lib/dap/breakpoint_event_body.rb +2 -1
  9. data/lib/dap/breakpoint_location.rb +6 -4
  10. data/lib/dap/breakpoint_locations_arguments.rb +5 -4
  11. data/lib/dap/breakpoint_locations_response_body.rb +2 -0
  12. data/lib/dap/cancel_arguments.rb +3 -2
  13. data/lib/dap/capabilities.rb +33 -32
  14. data/lib/dap/capabilities_event_body.rb +6 -0
  15. data/lib/dap/checksum.rb +2 -1
  16. data/lib/dap/checksum_algorithm.rb +1 -0
  17. data/lib/dap/column_descriptor.rb +8 -5
  18. data/lib/dap/completion_item.rb +8 -7
  19. data/lib/dap/completion_item_type.rb +2 -0
  20. data/lib/dap/completions_arguments.rb +5 -4
  21. data/lib/dap/completions_response_body.rb +1 -0
  22. data/lib/dap/continue_arguments.rb +2 -1
  23. data/lib/dap/continue_response_body.rb +2 -1
  24. data/lib/dap/continued_event_body.rb +7 -2
  25. data/lib/dap/data_breakpoint.rb +4 -3
  26. data/lib/dap/data_breakpoint_access_type.rb +1 -0
  27. data/lib/dap/data_breakpoint_info_arguments.rb +3 -2
  28. data/lib/dap/data_breakpoint_info_response_body.rb +3 -2
  29. data/lib/dap/disassemble_arguments.rb +6 -5
  30. data/lib/dap/disassemble_response_body.rb +1 -0
  31. data/lib/dap/disassembled_instruction.rb +9 -8
  32. data/lib/dap/disconnect_arguments.rb +3 -2
  33. data/lib/dap/encoding.rb +12 -1
  34. data/lib/dap/enum.rb +6 -0
  35. data/lib/dap/error_response_body.rb +1 -0
  36. data/lib/dap/evaluate_arguments.rb +4 -3
  37. data/lib/dap/evaluate_response_body.rb +7 -6
  38. data/lib/dap/event.rb +7 -0
  39. data/lib/dap/exception_break_mode.rb +6 -0
  40. data/lib/dap/exception_breakpoints_filter.rb +5 -3
  41. data/lib/dap/exception_details.rb +6 -5
  42. data/lib/dap/exception_info_arguments.rb +2 -1
  43. data/lib/dap/exception_info_response_body.rb +3 -2
  44. data/lib/dap/exception_options.rb +1 -0
  45. data/lib/dap/exception_path_segment.rb +6 -2
  46. data/lib/dap/exited_event_body.rb +2 -1
  47. data/lib/dap/function_breakpoint.rb +4 -3
  48. data/lib/dap/goto_arguments.rb +3 -2
  49. data/lib/dap/goto_target.rb +10 -7
  50. data/lib/dap/goto_targets_arguments.rb +3 -2
  51. data/lib/dap/goto_targets_response_body.rb +1 -0
  52. data/lib/dap/initialize_request_arguments.rb +14 -13
  53. data/lib/dap/instruction_breakpoint.rb +5 -4
  54. data/lib/dap/invalidated_event_body.rb +11 -3
  55. data/lib/dap/launch_request_arguments.rb +3 -1
  56. data/lib/dap/loaded_source_event_body.rb +3 -1
  57. data/lib/dap/loaded_sources_response_body.rb +1 -0
  58. data/lib/dap/message.rb +8 -7
  59. data/lib/dap/module.rb +17 -8
  60. data/lib/dap/module_event_body.rb +2 -1
  61. data/lib/dap/modules_arguments.rb +3 -2
  62. data/lib/dap/modules_response_body.rb +2 -1
  63. data/lib/dap/next_arguments.rb +2 -1
  64. data/lib/dap/output_event_body.rb +7 -6
  65. data/lib/dap/pause_arguments.rb +2 -1
  66. data/lib/dap/process_event_body.rb +7 -5
  67. data/lib/dap/progress_end_event_body.rb +5 -2
  68. data/lib/dap/progress_start_event_body.rb +12 -6
  69. data/lib/dap/progress_update_event_body.rb +9 -3
  70. data/lib/dap/protocol_message.rb +12 -1
  71. data/lib/dap/read_memory_arguments.rb +4 -3
  72. data/lib/dap/read_memory_response_body.rb +4 -3
  73. data/lib/dap/relation.rb +17 -1
  74. data/lib/dap/request.rb +7 -0
  75. data/lib/dap/response.rb +22 -1
  76. data/lib/dap/restart_frame_arguments.rb +2 -1
  77. data/lib/dap/reverse_continue_arguments.rb +2 -1
  78. data/lib/dap/run_in_terminal_request_arguments.rb +6 -5
  79. data/lib/dap/run_in_terminal_response_body.rb +3 -2
  80. data/lib/dap/scope.rb +12 -10
  81. data/lib/dap/scopes_arguments.rb +2 -1
  82. data/lib/dap/scopes_response_body.rb +1 -0
  83. data/lib/dap/set_breakpoints_arguments.rb +3 -2
  84. data/lib/dap/set_breakpoints_response_body.rb +5 -0
  85. data/lib/dap/set_data_breakpoints_arguments.rb +1 -0
  86. data/lib/dap/set_data_breakpoints_response_body.rb +2 -0
  87. data/lib/dap/set_exception_breakpoints_arguments.rb +2 -1
  88. data/lib/dap/set_expression_arguments.rb +4 -3
  89. data/lib/dap/set_expression_response_body.rb +6 -5
  90. data/lib/dap/set_function_breakpoints_arguments.rb +1 -0
  91. data/lib/dap/set_function_breakpoints_response_body.rb +2 -0
  92. data/lib/dap/set_instruction_breakpoints_arguments.rb +1 -0
  93. data/lib/dap/set_instruction_breakpoints_response_body.rb +1 -0
  94. data/lib/dap/set_variable_arguments.rb +4 -3
  95. data/lib/dap/set_variable_response_body.rb +6 -5
  96. data/lib/dap/source.rb +7 -5
  97. data/lib/dap/source_arguments.rb +2 -1
  98. data/lib/dap/source_breakpoint.rb +6 -5
  99. data/lib/dap/source_response_body.rb +3 -2
  100. data/lib/dap/stack_frame.rb +9 -8
  101. data/lib/dap/stack_frame_format.rb +8 -7
  102. data/lib/dap/stack_trace_arguments.rb +4 -3
  103. data/lib/dap/stack_trace_response_body.rb +2 -1
  104. data/lib/dap/step_back_arguments.rb +2 -1
  105. data/lib/dap/step_in_arguments.rb +3 -2
  106. data/lib/dap/step_in_target.rb +4 -2
  107. data/lib/dap/step_in_targets_arguments.rb +2 -1
  108. data/lib/dap/step_in_targets_response_body.rb +1 -0
  109. data/lib/dap/step_out_arguments.rb +2 -1
  110. data/lib/dap/stepping_granularity.rb +10 -0
  111. data/lib/dap/stopped_event_body.rb +9 -6
  112. data/lib/dap/terminate_arguments.rb +2 -1
  113. data/lib/dap/terminate_threads_arguments.rb +2 -1
  114. data/lib/dap/terminated_event_body.rb +2 -0
  115. data/lib/dap/thread.rb +3 -2
  116. data/lib/dap/thread_event_body.rb +3 -2
  117. data/lib/dap/threads_response_body.rb +1 -0
  118. data/lib/dap/value_format.rb +2 -1
  119. data/lib/dap/variable.rb +17 -8
  120. data/lib/dap/variable_presentation_hint.rb +5 -3
  121. data/lib/dap/variables_arguments.rb +5 -4
  122. data/lib/dap/variables_response_body.rb +1 -0
  123. metadata +2 -2
@@ -1,5 +1,11 @@
1
1
  require_relative 'capabilities'
2
2
 
3
+ # The event indicates that one or more capabilities have changed. Since the
4
+ # capabilities are dependent on the frontend and its UI, it might not be possible
5
+ # to change that at random times (or too late). Consequently this event has a hint
6
+ # characteristic: a frontend can only be expected to make a ‘best effort’ in
7
+ # honouring individual capabilities but there are no guarantees. Only changed
8
+ # capabilities need to be included, all other capabilities keep their values.
3
9
  class DAP::CapabilitiesEventBody < DAP::Base
4
10
  # The set of updated capabilities.
5
11
  property :capabilities, as: DAP::Capabilities
@@ -1,9 +1,10 @@
1
1
  require_relative 'checksum_algorithm'
2
2
 
3
+ # The checksum of an item calculated by the specified algorithm.
3
4
  class DAP::Checksum < DAP::Base
4
5
  # The algorithm used to calculate this checksum.
5
6
  property :algorithm, as: DAP::ChecksumAlgorithm
6
7
 
7
8
  # Value of the checksum.
8
- property :checksum
9
+ property :checksum, as: 'string'
9
10
  end
@@ -1,3 +1,4 @@
1
+ # Names of checksum algorithms that may be supported by a debug adapter.
1
2
  class DAP::ChecksumAlgorithm < DAP::Enum
2
3
  MD5 = new('MD5')
3
4
  SHA1 = new('SHA1')
@@ -1,17 +1,20 @@
1
+ # A ColumnDescriptor specifies what module attribute to show in a column of the
2
+ # ModulesView, how to format it, and what the column’s label should be. It is only
3
+ # used if the underlying UI actually supports this level of customization.
1
4
  class DAP::ColumnDescriptor < DAP::Base
2
5
  # Name of the attribute rendered in this column.
3
- property :attributeName
6
+ property :attributeName, as: 'string'
4
7
 
5
8
  # Header UI label of column.
6
- property :label
9
+ property :label, as: 'string'
7
10
 
8
11
  # Format to use for the rendered values in this column. TBD how the format strings looks like.
9
- property :format, required: false
12
+ property :format, required: false, as: 'string'
10
13
 
11
14
  # Datatype of values in this column. Defaults to 'string' if not specified.
12
15
  # Values: 'string', 'number', 'boolean', 'unixTimestampUTC', etc.
13
- property :type, required: false # 'string' | 'number' | 'boolean' | 'unixTimestampUTC'
16
+ property :type, required: false, as: 'string'
14
17
 
15
18
  # Width of this column in characters (hint only).
16
- property :width, required: false
19
+ property :width, required: false, as: 'number'
17
20
  end
@@ -1,33 +1,34 @@
1
1
  require_relative 'completion_item_type'
2
2
 
3
+ # CompletionItems are the suggestions returned from the CompletionsRequest.
3
4
  class DAP::CompletionItem < DAP::Base
4
5
  # The label of this completion item. By default this is also the text that is inserted when selecting this completion.
5
- property :label
6
+ property :label, as: 'string'
6
7
 
7
8
  # If text is not falsy then it is inserted instead of the label.
8
- property :text, required: false
9
+ property :text, required: false, as: 'string'
9
10
 
10
11
  # A string that should be used when comparing this item with other items. When `falsy` the label is used.
11
- property :sortText, required: false
12
+ property :sortText, required: false, as: 'string'
12
13
 
13
14
  # The item's type. Typically the client uses this information to render the item in the UI with an icon.
14
15
  property :type, required: false, as: DAP::CompletionItemType
15
16
 
16
17
  # This value determines the location (in the CompletionsRequest's 'text' attribute) where the completion text is added.
17
18
  # If missing the text is added at the location specified by the CompletionsRequest's 'column' attribute.
18
- property :start, required: false
19
+ property :start, required: false, as: 'number'
19
20
 
20
21
  # This value determines how many characters are overwritten by the completion text.
21
22
  # If missing the value 0 is assumed which results in the completion text being inserted.
22
- property :length, required: false
23
+ property :length, required: false, as: 'number'
23
24
 
24
25
  # Determines the start of the new selection after the text has been inserted (or replaced).
25
26
  # The start position must in the range 0 and length of the completion text.
26
27
  # If omitted the selection starts at the end of the completion text.
27
- property :selectionStart, required: false
28
+ property :selectionStart, required: false, as: 'number'
28
29
 
29
30
  # Determines the length of the new selection after the text has been inserted (or replaced).
30
31
  # The selection can not extend beyond the bounds of the completion text.
31
32
  # If omitted the length is assumed to be 0.
32
- property :selectionLength, required: false
33
+ property :selectionLength, required: false, as: 'number'
33
34
  end
@@ -1,3 +1,5 @@
1
+ # Some predefined types for the CompletionItem. Please note that not all clients
2
+ # have specific icons for all of them.
1
3
  class DAP::CompletionItemType < DAP::Enum
2
4
  METHOD = new('method')
3
5
  FUNCTION = new('function')
@@ -1,13 +1,14 @@
1
+ # Arguments for ‘completions’ request.
1
2
  class DAP::CompletionsArguments < DAP::Base
2
3
  # Returns completions in the scope of this stack frame. If not specified, the completions are returned for the global scope.
3
- property :frameId, required: false
4
+ property :frameId, required: false, as: 'number'
4
5
 
5
6
  # One or more source lines. Typically this is the text a user has typed into the debug console before he asked for completion.
6
- property :text
7
+ property :text, as: 'string'
7
8
 
8
9
  # The character position for which to determine the completion proposals.
9
- property :column
10
+ property :column, as: 'number'
10
11
 
11
12
  # An optional line for which to determine the completion proposals. If missing the first line of the text is assumed.
12
- property :line, required: false
13
+ property :line, required: false, as: 'number'
13
14
  end
@@ -1,5 +1,6 @@
1
1
  require_relative 'completion_item'
2
2
 
3
+ # Response to ‘completions’ request.
3
4
  class DAP::CompletionsResponseBody < DAP::Base
4
5
  # The possible completions for .
5
6
  property :targets, as: many(DAP::CompletionItem)
@@ -1,5 +1,6 @@
1
+ # Arguments for ‘continue’ request.
1
2
  class DAP::ContinueArguments < DAP::Base
2
3
  # Continue execution for the specified thread (if possible).
3
4
  # 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.
4
- property :threadId
5
+ property :threadId, as: 'number'
5
6
  end
@@ -1,5 +1,6 @@
1
+ # Response to ‘continue’ request.
1
2
  class DAP::ContinueResponseBody < DAP::Base
2
3
  # If true, the 'continue' request has ignored the specified thread and continued all threads instead.
3
4
  # If this attribute is missing a value of 'true' is assumed for backward compatibility.
4
- property :allThreadsContinued, required: false
5
+ property :allThreadsContinued, required: false, as: 'boolean'
5
6
  end
@@ -1,7 +1,12 @@
1
+ # The event indicates that the execution of the debuggee has continued. Please
2
+ # note: a debug adapter is not expected to send this event in response to a
3
+ # request that implies that execution continues, e.g. ‘launch’ or ‘continue’. It
4
+ # is only necessary to send a ‘continued’ event if there was no previous request
5
+ # that implied this.
1
6
  class DAP::ContinuedEventBody < DAP::Base
2
7
  # The thread which was continued.
3
- property :threadId
8
+ property :threadId, as: 'number'
4
9
 
5
10
  # If 'allThreadsContinued' is true, a debug adapter can announce that all threads have continued.
6
- property :allThreadsContinued, required: false
11
+ property :allThreadsContinued, required: false, as: 'boolean'
7
12
  end
@@ -1,16 +1,17 @@
1
1
  require_relative 'data_breakpoint_access_type'
2
2
 
3
+ # Properties of a data breakpoint passed to the setDataBreakpoints request.
3
4
  class DAP::DataBreakpoint < DAP::Base
4
5
  # An id representing the data. This id is returned from the dataBreakpointInfo request.
5
- property :dataId
6
+ property :dataId, as: 'string'
6
7
 
7
8
  # The access type of the data.
8
9
  property :accessType, required: false, as: DAP::DataBreakpointAccessType
9
10
 
10
11
  # An optional expression for conditional breakpoints.
11
- property :condition, required: false
12
+ property :condition, required: false, as: 'string'
12
13
 
13
14
  # An optional expression that controls how many hits of the breakpoint are ignored.
14
15
  # The backend is expected to interpret the expression as needed.
15
- property :hitCondition, required: false
16
+ property :hitCondition, required: false, as: 'string'
16
17
  end
@@ -1,3 +1,4 @@
1
+ # This enumeration defines all possible access types for data breakpoints.
1
2
  class DAP::DataBreakpointAccessType < DAP::Enum
2
3
  READ = new('read')
3
4
  WRITE = new('write')
@@ -1,8 +1,9 @@
1
+ # Arguments for ‘dataBreakpointInfo’ request.
1
2
  class DAP::DataBreakpointInfoArguments < DAP::Base
2
3
  # Reference to the Variable container if the data breakpoint is requested for a child of the container.
3
- property :variablesReference, required: false
4
+ property :variablesReference, required: false, as: 'number'
4
5
 
5
6
  # The name of the Variable's child to obtain data breakpoint information for.
6
7
  # If variableReference isn’t provided, this can be an expression.
7
- property :name
8
+ property :name, as: 'string'
8
9
  end
@@ -1,15 +1,16 @@
1
1
  require_relative 'data_breakpoint_access_type'
2
2
 
3
+ # Response to ‘dataBreakpointInfo’ request.
3
4
  class DAP::DataBreakpointInfoResponseBody < DAP::Base
4
5
  # An identifier for the data on which a data breakpoint can be registered with the setDataBreakpoints request or null if no data breakpoint is available.
5
6
  property :dataId
6
7
 
7
8
  # UI string that describes on what data the breakpoint is set on or why a data breakpoint is not available.
8
- property :description
9
+ property :description, as: 'string'
9
10
 
10
11
  # Optional attribute listing the available access types for a potential data breakpoint. A UI frontend could surface this information.
11
12
  property :accessTypes, required: false, as: many(DAP::DataBreakpointAccessType)
12
13
 
13
14
  # Optional attribute indicating that a potential data breakpoint could be persisted across sessions.
14
- property :canPersist, required: false
15
+ property :canPersist, required: false, as: 'boolean'
15
16
  end
@@ -1,17 +1,18 @@
1
+ # Arguments for ‘disassemble’ request.
1
2
  class DAP::DisassembleArguments < DAP::Base
2
3
  # Memory reference to the base location containing the instructions to disassemble.
3
- property :memoryReference
4
+ property :memoryReference, as: 'string'
4
5
 
5
6
  # Optional offset (in bytes) to be applied to the reference location before disassembling. Can be negative.
6
- property :offset, required: false
7
+ property :offset, required: false, as: 'number'
7
8
 
8
9
  # Optional offset (in instructions) to be applied after the byte offset (if any) before disassembling. Can be negative.
9
- property :instructionOffset, required: false
10
+ property :instructionOffset, required: false, as: 'number'
10
11
 
11
12
  # Number of instructions to disassemble starting at the specified location and offset.
12
13
  # An adapter must return exactly this number of instructions - any unavailable instructions should be replaced with an implementation-defined 'invalid instruction' value.
13
- property :instructionCount
14
+ property :instructionCount, as: 'number'
14
15
 
15
16
  # If true, the adapter should attempt to resolve memory addresses and other values to symbolic names.
16
- property :resolveSymbols, required: false
17
+ property :resolveSymbols, required: false, as: 'boolean'
17
18
  end
@@ -1,5 +1,6 @@
1
1
  require_relative 'disassembled_instruction'
2
2
 
3
+ # Response to ‘disassemble’ request.
3
4
  class DAP::DisassembleResponseBody < DAP::Base
4
5
  # The list of disassembled instructions.
5
6
  property :instructions, as: many(DAP::DisassembledInstruction)
@@ -1,17 +1,18 @@
1
1
  require_relative 'source'
2
2
 
3
+ # Represents a single disassembled instruction.
3
4
  class DAP::DisassembledInstruction < DAP::Base
4
5
  # The address of the instruction. Treated as a hex value if prefixed with '0x', or as a decimal value otherwise.
5
- property :address
6
+ property :address, as: 'string'
6
7
 
7
8
  # Optional raw bytes representing the instruction and its operands, in an implementation-defined format.
8
- property :instructionBytes, required: false
9
+ property :instructionBytes, required: false, as: 'string'
9
10
 
10
11
  # Text representing the instruction and its operands, in an implementation-defined format.
11
- property :instruction
12
+ property :instruction, as: 'string'
12
13
 
13
14
  # Name of the symbol that corresponds with the location of this instruction, if any.
14
- property :symbol, required: false
15
+ property :symbol, required: false, as: 'string'
15
16
 
16
17
  # Source location that corresponds to this instruction, if any.
17
18
  # Should always be set (if available) on the first instruction returned,
@@ -19,14 +20,14 @@ class DAP::DisassembledInstruction < DAP::Base
19
20
  property :location, required: false, as: DAP::Source
20
21
 
21
22
  # The line within the source location that corresponds to this instruction, if any.
22
- property :line, required: false
23
+ property :line, required: false, as: 'number'
23
24
 
24
25
  # The column within the line that corresponds to this instruction, if any.
25
- property :column, required: false
26
+ property :column, required: false, as: 'number'
26
27
 
27
28
  # The end line of the range that corresponds to this instruction, if any.
28
- property :endLine, required: false
29
+ property :endLine, required: false, as: 'number'
29
30
 
30
31
  # The end column of the range that corresponds to this instruction, if any.
31
- property :endColumn, required: false
32
+ property :endColumn, required: false, as: 'number'
32
33
  end
@@ -1,9 +1,10 @@
1
+ # Arguments for ‘disconnect’ request.
1
2
  class DAP::DisconnectArguments < DAP::Base
2
3
  # A value of true indicates that this 'disconnect' request is part of a restart sequence.
3
- property :restart, required: false
4
+ property :restart, required: false, as: 'boolean'
4
5
 
5
6
  # Indicates whether the debuggee should be terminated when the debugger is disconnected.
6
7
  # If unspecified, the debug adapter is free to do whatever it thinks is best.
7
8
  # The attribute is only honored by a debug adapter if the capability 'supportTerminateDebuggee' is true.
8
- property :terminateDebuggee, required: false
9
+ property :terminateDebuggee, required: false, as: 'boolean'
9
10
  end
@@ -1,6 +1,11 @@
1
+ # Encoding and decoding for DAP messages
1
2
  module DAP::Encoding
3
+ # The name of the content length header.
2
4
  CONTENT_LENGTH_HEADER = 'Content-Length'
3
5
 
6
+ # Decode a DAP message from the stream.
7
+ # @param s [IO] the stream
8
+ # @return [ProtocolMessage] the message
4
9
  def self.decode(s)
5
10
  headers = {}
6
11
 
@@ -28,17 +33,23 @@ module DAP::Encoding
28
33
  DAP::ProtocolMessage.from(values)
29
34
  end
30
35
 
36
+ # Encode a DAP message to a string.
37
+ # @param message [ProtocolMessage] the message
38
+ # @return [String] the encoded message
31
39
  def self.encode(message)
32
40
  raise "Body must be a protocol message" unless message.is_a? DAP::ProtocolMessage
33
41
 
34
42
  headers = {}
35
43
 
36
44
  body = JSON.dump(message.to_wire)
37
- headers[CONTENT_LENGTH_HEADER] = body.size
45
+ headers[CONTENT_LENGTH_HEADER] = body.bytesize
38
46
 
39
47
  headers.map { |name, value| "#{name}: #{value}\r\n" }.join + "\r\n" + body
40
48
  end
41
49
 
50
+ # Decode all DAP messages from the stream.
51
+ # @param s [IO] the stream
52
+ # @yield Invokes the block for each message
42
53
  def self.decode_all(s)
43
54
  loop do
44
55
  yield decode(s)
@@ -1,12 +1,18 @@
1
+ # Base class for DAP enumerations
1
2
  class DAP::Enum
3
+ # Retreive an enumeration instance by value.
4
+ # @param value [String] the enumeration string value
5
+ # @return [Enum] the enumeration instance
2
6
  def self.from(value)
3
7
  values[value]
4
8
  end
5
9
 
10
+ # The enumeration string value
6
11
  def to_s
7
12
  @value
8
13
  end
9
14
 
15
+ # The enumeration string value, suitable for encoding
10
16
  def to_wire
11
17
  @value
12
18
  end
@@ -1,5 +1,6 @@
1
1
  require_relative 'message'
2
2
 
3
+ # On error (whenever ‘success’ is false), the body can provide more details.
3
4
  class DAP::ErrorResponseBody < DAP::Base
4
5
  # An optional, structured error message.
5
6
  property :error, required: false, as: DAP::Message
@@ -1,11 +1,12 @@
1
1
  require_relative 'value_format'
2
2
 
3
+ # Arguments for ‘evaluate’ request.
3
4
  class DAP::EvaluateArguments < DAP::Base
4
5
  # The expression to evaluate.
5
- property :expression
6
+ property :expression, as: 'string'
6
7
 
7
8
  # Evaluate the expression in the scope of this stack frame. If not specified, the expression is evaluated in the global scope.
8
- property :frameId, required: false
9
+ property :frameId, required: false, as: 'number'
9
10
 
10
11
  # The context in which the evaluate request is run.
11
12
  # Values:
@@ -15,7 +16,7 @@ class DAP::EvaluateArguments < DAP::Base
15
16
  # 'clipboard': evaluate is run to generate the value that will be stored in the clipboard.
16
17
  # The attribute is only honored by a debug adapter if the capability 'supportsClipboardContext' is true.
17
18
  # etc.
18
- property :context, required: false # 'watch' | 'repl' | 'hover' | 'clipboard' | string
19
+ property :context, required: false, as: 'string'
19
20
 
20
21
  # Specifies details on how to format the Evaluate result.
21
22
  # The attribute is only honored by a debug adapter if the capability 'supportsValueFormattingOptions' is true.
@@ -1,32 +1,33 @@
1
1
  require_relative 'variable_presentation_hint'
2
2
 
3
+ # Response to ‘evaluate’ request.
3
4
  class DAP::EvaluateResponseBody < DAP::Base
4
5
  # The result of the evaluate request.
5
- property :result
6
+ property :result, as: 'string'
6
7
 
7
8
  # The optional type of the evaluate result.
8
9
  # 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.
9
- property :type, required: false
10
+ property :type, required: false, as: 'string'
10
11
 
11
12
  # Properties of a evaluate result that can be used to determine how to render the result in the UI.
12
13
  property :presentationHint, required: false, as: DAP::VariablePresentationHint
13
14
 
14
15
  # If variablesReference is > 0, the evaluate result is structured and its children can be retrieved by passing variablesReference to the VariablesRequest.
15
16
  # The value should be less than or equal to 2147483647 (2^31 - 1).
16
- property :variablesReference
17
+ property :variablesReference, as: 'number'
17
18
 
18
19
  # The number of named child variables.
19
20
  # The client can use this optional information to present the variables in a paged UI and fetch them in chunks.
20
21
  # The value should be less than or equal to 2147483647 (2^31 - 1).
21
- property :namedVariables, required: false
22
+ property :namedVariables, required: false, as: 'number'
22
23
 
23
24
  # The number of indexed child variables.
24
25
  # The client can use this optional information to present the variables in a paged UI and fetch them in chunks.
25
26
  # The value should be less than or equal to 2147483647 (2^31 - 1).
26
- property :indexedVariables, required: false
27
+ property :indexedVariables, required: false, as: 'number'
27
28
 
28
29
  # Optional memory reference to a location appropriate for this result.
29
30
  # For pointer type eval results, this is generally a reference to the memory address contained in the pointer.
30
31
  # 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.
31
- property :memoryReference, required: false
32
+ property :memoryReference, required: false, as: 'string'
32
33
  end