on master help sign in
compat: add all possible debugger caps
commite388079a0b9e02b3125f426649b9accdb9d65234 authorDmitry Sharshakov <d3dx12.xx@gmail.com> dateSat 14 Aug 2021, 11:41 (5 years ago) parent43c9eba
2 files changed+63−2
helix-dap/examples/dap-basic.rs+1−1 helix-dap/src/client.rs+62−1
helix-dap/examples/dap-basic.rs+1−1
@@ -41,7 +41,7 @@ pub async fn main() -> Result<()> {
4141 tokio::spawn(output(output_event));
4242
4343 println!("init: {:?}", client.initialize("go".to_owned()).await);
44− println!("caps: {:#?}", client.capabilities());
44+ println!("caps: {:?}", client.capabilities());
4545
4646 let args = LaunchArguments {
4747 mode: "exec".to_owned(),
helix-dap/src/client.rs+62−1
@@ -20,16 +20,77 @@ use tokio::{
2020 },
2121};
2222
23+#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
24+#[serde(rename_all = "camelCase")]
25+pub struct ColumnDescriptor {
26+ pub attribute_name: String,
27+ pub label: String,
28+ pub format: Option<String>,
29+ #[serde(rename = "type")]
30+ pub col_type: Option<String>,
31+ pub width: Option<usize>,
32+}
33+
34+#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
35+#[serde(rename_all = "camelCase")]
36+pub struct ExceptionBreakpointsFilter {
37+ pub filter: String,
38+ pub label: String,
39+ pub description: Option<String>,
40+ pub default: Option<bool>,
41+ pub supports_condition: Option<bool>,
42+ pub condition_description: Option<String>,
43+}
44+
2345#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
2446#[serde(rename_all = "camelCase")]
2547pub struct DebuggerCapabilities {
2648 pub supports_configuration_done_request: Option<bool>,
2749 pub supports_function_breakpoints: Option<bool>,
2850 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>,
2963 pub supports_exception_info_request: Option<bool>,
3064 pub support_terminate_debuggee: Option<bool>,
65+ pub support_suspend_debuggee: Option<bool>,
3166 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>>,
86+}
87+
88+impl std::ops::Deref for DebuggerCapabilities {
89+ type Target = Option<bool>;
90+
91+ fn deref(&self) -> &Self::Target {
92+ &self.supports_exception_options
93+ }
3394}
3495
3596#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]