diff --git a/crates/extension_host/src/wasm_host/wit.rs b/crates/extension_host/src/wasm_host/wit.rs index d2334681b45aac2ed0505b5ee9570084663f91b2..ddd3f604c991a43bc58f494410db1be22a93a772 100644 --- a/crates/extension_host/src/wasm_host/wit.rs +++ b/crates/extension_host/src/wasm_host/wit.rs @@ -1007,6 +1007,20 @@ impl Extension { resource: Resource>, ) -> Result> { match self { + Extension::V0_8_0(ext) => { + let dap_binary = ext + .call_get_dap_binary( + store, + &adapter_name, + &task.try_into()?, + user_installed_path.as_ref().and_then(|p| p.to_str()), + resource, + ) + .await? + .map_err(|e| anyhow!("{e:?}"))?; + + Ok(Ok(dap_binary)) + } Extension::V0_6_0(ext) => { let dap_binary = ext .call_get_dap_binary( @@ -1021,7 +1035,16 @@ impl Extension { Ok(Ok(dap_binary)) } - _ => anyhow::bail!("`get_dap_binary` not available prior to v0.6.0"), + Extension::V0_5_0(_) + | Extension::V0_4_0(_) + | Extension::V0_3_0(_) + | Extension::V0_2_0(_) + | Extension::V0_1_0(_) + | Extension::V0_0_6(_) + | Extension::V0_0_4(_) + | Extension::V0_0_1(_) => { + anyhow::bail!("`get_dap_binary` not available prior to v0.6.0"); + } } } @@ -1032,6 +1055,16 @@ impl Extension { config: serde_json::Value, ) -> Result> { match self { + Extension::V0_8_0(ext) => { + let config = + serde_json::to_string(&config).context("Adapter config is not a valid JSON")?; + let dap_binary = ext + .call_dap_request_kind(store, &adapter_name, &config) + .await? + .map_err(|e| anyhow!("{e:?}"))?; + + Ok(Ok(dap_binary)) + } Extension::V0_6_0(ext) => { let config = serde_json::to_string(&config).context("Adapter config is not a valid JSON")?; @@ -1042,7 +1075,16 @@ impl Extension { Ok(Ok(dap_binary)) } - _ => anyhow::bail!("`dap_request_kind` not available prior to v0.6.0"), + Extension::V0_5_0(_) + | Extension::V0_4_0(_) + | Extension::V0_3_0(_) + | Extension::V0_2_0(_) + | Extension::V0_1_0(_) + | Extension::V0_0_6(_) + | Extension::V0_0_4(_) + | Extension::V0_0_1(_) => { + anyhow::bail!("`dap_request_kind` not available prior to v0.6.0"); + } } } @@ -1052,6 +1094,15 @@ impl Extension { config: ZedDebugConfig, ) -> Result> { match self { + Extension::V0_8_0(ext) => { + let config = config.into(); + let dap_binary = ext + .call_dap_config_to_scenario(store, &config) + .await? + .map_err(|e| anyhow!("{e:?}"))?; + + Ok(Ok(dap_binary.try_into()?)) + } Extension::V0_6_0(ext) => { let config = config.into(); let dap_binary = ext @@ -1061,7 +1112,16 @@ impl Extension { Ok(Ok(dap_binary.try_into()?)) } - _ => anyhow::bail!("`dap_config_to_scenario` not available prior to v0.6.0"), + Extension::V0_5_0(_) + | Extension::V0_4_0(_) + | Extension::V0_3_0(_) + | Extension::V0_2_0(_) + | Extension::V0_1_0(_) + | Extension::V0_0_6(_) + | Extension::V0_0_4(_) + | Extension::V0_0_1(_) => { + anyhow::bail!("`dap_config_to_scenario` not available prior to v0.6.0"); + } } } @@ -1074,6 +1134,20 @@ impl Extension { debug_adapter_name: String, ) -> Result> { match self { + Extension::V0_8_0(ext) => { + let build_config_template = build_config_template.into(); + let dap_binary = ext + .call_dap_locator_create_scenario( + store, + &locator_name, + &build_config_template, + &resolved_label, + &debug_adapter_name, + ) + .await?; + + Ok(dap_binary.map(TryInto::try_into).transpose()?) + } Extension::V0_6_0(ext) => { let build_config_template = build_config_template.into(); let dap_binary = ext @@ -1088,7 +1162,16 @@ impl Extension { Ok(dap_binary.map(TryInto::try_into).transpose()?) } - _ => anyhow::bail!("`dap_locator_create_scenario` not available prior to v0.6.0"), + Extension::V0_5_0(_) + | Extension::V0_4_0(_) + | Extension::V0_3_0(_) + | Extension::V0_2_0(_) + | Extension::V0_1_0(_) + | Extension::V0_0_6(_) + | Extension::V0_0_4(_) + | Extension::V0_0_1(_) => { + anyhow::bail!("`dap_locator_create_scenario` not available prior to v0.6.0"); + } } } @@ -1099,6 +1182,15 @@ impl Extension { resolved_build_task: SpawnInTerminal, ) -> Result> { match self { + Extension::V0_8_0(ext) => { + let build_config_template = resolved_build_task.try_into()?; + let dap_request = ext + .call_run_dap_locator(store, &locator_name, &build_config_template) + .await? + .map_err(|e| anyhow!("{e:?}"))?; + + Ok(Ok(dap_request.into())) + } Extension::V0_6_0(ext) => { let build_config_template = resolved_build_task.try_into()?; let dap_request = ext @@ -1108,7 +1200,16 @@ impl Extension { Ok(Ok(dap_request.into())) } - _ => anyhow::bail!("`dap_locator_create_scenario` not available prior to v0.6.0"), + Extension::V0_5_0(_) + | Extension::V0_4_0(_) + | Extension::V0_3_0(_) + | Extension::V0_2_0(_) + | Extension::V0_1_0(_) + | Extension::V0_0_6(_) + | Extension::V0_0_4(_) + | Extension::V0_0_1(_) => { + anyhow::bail!("`run_dap_locator` not available prior to v0.6.0"); + } } } }