@@ -20,16 +20,77 @@ use tokio::{
23+#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
24+#[serde(rename_all = "camelCase")]
25+pub struct ColumnDescriptor {
26+ pub attribute_name: String,
28+ pub format: Option<String>,
29+ #[serde(rename = "type")]
30+ pub col_type: Option<String>,
31+ pub width: Option<usize>,
34+#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
35+#[serde(rename_all = "camelCase")]
36+pub struct ExceptionBreakpointsFilter {
39+ pub description: Option<String>,
40+ pub default: Option<bool>,
41+ pub supports_condition: Option<bool>,
42+ pub condition_description: Option<String>,
23#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
45#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
24#[serde(rename_all = "camelCase")]
46#[serde(rename_all = "camelCase")]
25pub struct DebuggerCapabilities {
47pub struct DebuggerCapabilities {
26 pub supports_configuration_done_request: Option<bool>,
48 pub supports_configuration_done_request: Option<bool>,
27 pub supports_function_breakpoints: Option<bool>,
49 pub supports_function_breakpoints: Option<bool>,
28 pub supports_conditional_breakpoints: Option<bool>,
50 pub supports_conditional_breakpoints: Option<bool>,
51+ pub supports_hit_conditional_breakpoints: Option<bool>,
52+ pub supports_evaluate_for_hovers: Option<bool>,
53+ pub supports_step_back: Option<bool>,
54+ pub supports_set_variable: Option<bool>,
55+ pub supports_restart_frame: Option<bool>,
56+ pub supports_goto_targets_request: Option<bool>,
57+ pub supports_step_in_targets_request: Option<bool>,
58+ pub supports_completions_request: Option<bool>,
59+ pub supports_modules_request: Option<bool>,
60+ pub supports_restart_request: Option<bool>,
61+ pub supports_exception_options: Option<bool>,
62+ pub supports_value_formatting_options: Option<bool>,
29 pub supports_exception_info_request: Option<bool>,
63 pub supports_exception_info_request: Option<bool>,
30 pub support_terminate_debuggee: Option<bool>,
64 pub support_terminate_debuggee: Option<bool>,
65+ pub support_suspend_debuggee: Option<bool>,
31 pub supports_delayed_stack_trace_loading: Option<bool>,
66 pub supports_delayed_stack_trace_loading: Option<bool>,
32− // TODO: complete this
67+ pub supports_loaded_sources_request: Option<bool>,
68+ pub supports_log_points: Option<bool>,
69+ pub supports_terminate_threads_request: Option<bool>,
70+ pub supports_set_expression: Option<bool>,
71+ pub supports_terminate_request: Option<bool>,
72+ pub supports_data_breakpoints: Option<bool>,
73+ pub supports_read_memory_request: Option<bool>,
74+ pub supports_write_memory_request: Option<bool>,
75+ pub supports_disassemble_request: Option<bool>,
76+ pub supports_cancel_request: Option<bool>,
77+ pub supports_breakpoint_locations_request: Option<bool>,
78+ pub supports_clipboard_context: Option<bool>,
79+ pub supports_stepping_granularity: Option<bool>,
80+ pub supports_instruction_breakpoints: Option<bool>,
81+ pub supports_exception_filter_options: Option<bool>,
82+ pub exception_breakpoint_filters: Option<Vec<ExceptionBreakpointsFilter>>,
83+ pub completion_trigger_characters: Option<Vec<String>>,
84+ pub additional_module_columns: Option<Vec<ColumnDescriptor>>,
85+ pub supported_checksum_algorithms: Option<Vec<String>>,
88+impl std::ops::Deref for DebuggerCapabilities {
89+ type Target = Option<bool>;
91+ fn deref(&self) -> &Self::Target {
92+ &self.supports_exception_options
35#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
96#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]