debugger: Use integrated terminal for Python (#31190)
Closes #ISSUE Release Notes: - debugger: Use integrated terminal for Python, allowing one to interact with standard input/output when debugging Python projects.
This commit is contained in:
parent
8ab664a52c
commit
3c03d53e3e
4 changed files with 26 additions and 1 deletions
13
Cargo.lock
generated
13
Cargo.lock
generated
|
@ -4054,6 +4054,7 @@ dependencies = [
|
|||
"dap",
|
||||
"futures 0.3.31",
|
||||
"gpui",
|
||||
"json_dotpath",
|
||||
"language",
|
||||
"paths",
|
||||
"serde",
|
||||
|
@ -8550,6 +8551,18 @@ dependencies = [
|
|||
"wasm-bindgen",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "json_dotpath"
|
||||
version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dbdcfef3cf5591f0cef62da413ae795e3d1f5a00936ccec0b2071499a32efd1a"
|
||||
dependencies = [
|
||||
"serde",
|
||||
"serde_derive",
|
||||
"serde_json",
|
||||
"thiserror 1.0.69",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "jsonschema"
|
||||
version = "0.30.0"
|
||||
|
|
|
@ -462,6 +462,7 @@ indoc = "2"
|
|||
inventory = "0.3.19"
|
||||
itertools = "0.14.0"
|
||||
jj-lib = { git = "https://github.com/jj-vcs/jj", rev = "e18eb8e05efaa153fad5ef46576af145bba1807f" }
|
||||
json_dotpath = "1.1"
|
||||
jsonschema = "0.30.0"
|
||||
jsonwebtoken = "9.3"
|
||||
jupyter-protocol = { git = "https://github.com/ConradIrwin/runtimed", rev = "7130c804216b6914355d15d0b91ea91f6babd734" }
|
||||
|
|
|
@ -26,6 +26,7 @@ async-trait.workspace = true
|
|||
dap.workspace = true
|
||||
futures.workspace = true
|
||||
gpui.workspace = true
|
||||
json_dotpath.workspace = true
|
||||
language.workspace = true
|
||||
paths.workspace = true
|
||||
serde.workspace = true
|
||||
|
|
|
@ -5,7 +5,9 @@ use dap::{
|
|||
adapters::DebugTaskDefinition,
|
||||
};
|
||||
use gpui::{AsyncApp, SharedString};
|
||||
use json_dotpath::DotPaths;
|
||||
use language::LanguageName;
|
||||
use serde_json::Value;
|
||||
use std::{collections::HashMap, ffi::OsStr, path::PathBuf, sync::OnceLock};
|
||||
use util::ResultExt;
|
||||
|
||||
|
@ -26,8 +28,16 @@ impl PythonDebugAdapter {
|
|||
) -> Result<StartDebuggingRequestArguments> {
|
||||
let request = self.validate_config(&task_definition.config)?;
|
||||
|
||||
let mut configuration = task_definition.config.clone();
|
||||
if let Ok(console) = configuration.dot_get_mut("console") {
|
||||
// Use built-in Zed terminal if user did not explicitly provide a setting for console.
|
||||
if console.is_null() {
|
||||
*console = Value::String("integratedTerminal".into());
|
||||
}
|
||||
}
|
||||
|
||||
Ok(StartDebuggingRequestArguments {
|
||||
configuration: task_definition.config.clone(),
|
||||
configuration,
|
||||
request,
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue