@@ -619,22 +619,41 @@ pub fn dap_variables(cx: &mut Context) {
619619 // TODO: group by scope
620620 // TODO: ui::Text to use tui::text + styled builder
621621
622+ // let contents = tui::text::Text::new();
623+
624+ let theme = &cx.editor.theme;
625+ let scope_style = theme.get("ui.linenr.selected");
626+ let type_style = theme.get("ui.text");
627+ let text_style = theme.get("ui.text.focus");
628+
622629 for scope in scopes.iter() {
630+ // use helix_view::graphics::Style;
631+ use tui::text::{Span, Spans};
623632 let response = block_on(debugger.variables(scope.variables_reference));
624633
634+ variables.push(Spans::from(Span::styled(
635+ format!("▸ {}", scope.name),
636+ scope_style,
637+ )));
638+
625639 if let Ok(vars) = response {
626640 variables.reserve(vars.len());
627641 for var in vars {
628− let prefix = match var.ty {
629− Some(data_type) => format!("{} ", data_type),
630− None => "".to_owned(),
631− };
632− variables.push(format!("{}{} = {}", prefix, var.name, var.value));
642+ let mut spans = Vec::with_capacity(5);
643+
644+ spans.push(Span::styled(var.name.to_owned(), text_style));
645+ if let Some(ty) = var.ty {
646+ spans.push(Span::raw(": "));
647+ spans.push(Span::styled(ty.to_owned(), type_style));
648+ }
649+ spans.push(Span::raw(" = "));
650+ spans.push(Span::styled(var.value.to_owned(), text_style));
651+ variables.push(Spans::from(spans));
633652 }
634653 }
635654 }
636655
637− let contents = Text::new(variables.join("\n"));
656+ let contents = Text::from(tui::text::Text::from(variables));
638657 let popup = Popup::new(contents);
639658 cx.push_layer(Box::new(popup));
640659}