Truncate multi-line debug value hints (#34305)

Release Notes:

- Multi-line debug inline values are now truncated.

Co-authored-by: Anthony Eid <hello@anthonyeid.me>
This commit is contained in:
Julia Ryan
2025-07-11 17:49:52 +00:00
committed by GitHub
co-authored by Anthony Eid
parent 90bf602ceb
commit 0bd65829f7
3 changed files with 40 additions and 3 deletions
@@ -2241,3 +2241,34 @@ func main() {
)
.await;
}
#[gpui::test]
async fn test_trim_multi_line_inline_value(executor: BackgroundExecutor, cx: &mut TestAppContext) {
let variables = [("y", "hello\n world")];
let before = r#"
fn main() {
let y = "hello\n world";
}
"#
.unindent();
let after = r#"
fn main() {
let y: hello… = "hello\n world";
}
"#
.unindent();
test_inline_values_util(
&variables,
&[],
&before,
&after,
None,
rust_lang(),
executor,
cx,
)
.await;
}
+3 -2
View File
@@ -19655,8 +19655,9 @@ impl Editor {
Anchor::in_buffer(excerpt_id, buffer_id, hint.position),
hint.text(),
);
new_inlays.push(inlay);
if !inlay.text.chars().contains(&'\n') {
new_inlays.push(inlay);
}
});
}
+6 -1
View File
@@ -560,6 +560,11 @@ impl DapStore {
fn format_value(mut value: String) -> String {
const LIMIT: usize = 100;
if let Some(index) = value.find("\n") {
value.truncate(index);
value.push_str("");
}
if value.len() > LIMIT {
let mut index = LIMIT;
// If index isn't a char boundary truncate will cause a panic
@@ -567,7 +572,7 @@ impl DapStore {
index -= 1;
}
value.truncate(index);
value.push_str("...");
value.push_str("");
}
format!(": {}", value)