debugger: Fix evaluate selection running two evaluations & failing for Python and go (#44205)

Evaluate selection now acts as if the text was typed verbatim into the
console.

Closes ##33526

Release Notes:

- debugger: Fixed "evaluate selection" not behaving as if the
highlighted text was not typed verbatim into the console.
This commit is contained in:
Piotr Osiewicz 2025-12-05 12:08:04 +01:00 committed by GitHub
parent d6241b17d3
commit 35da6d000a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 14 additions and 3 deletions

View file

@ -387,7 +387,7 @@ pub fn init(cx: &mut App) {
window.on_action(
TypeId::of::<editor::actions::EvaluateSelectedText>(),
move |_, _, window, cx| {
maybe!({
let status = maybe!({
let text = editor
.update(cx, |editor, cx| {
let range = editor
@ -411,7 +411,13 @@ pub fn init(cx: &mut App) {
state.session().update(cx, |session, cx| {
session
.evaluate(text, None, stack_id, None, cx)
.evaluate(
text,
Some(dap::EvaluateArgumentsContext::Repl),
stack_id,
None,
cx,
)
.detach();
});
});
@ -419,6 +425,9 @@ pub fn init(cx: &mut App) {
Some(())
});
if status.is_some() {
cx.stop_propagation();
}
},
);
})

View file

@ -1023,7 +1023,7 @@ impl DebugDelegate {
Some(TaskSourceKind::Lsp { language_name, .. }) => {
Some(format!("LSP: {language_name}"))
}
Some(TaskSourceKind::Language { name }) => Some(format!("Lang: {name}")),
Some(TaskSourceKind::Language { name }) => Some(format!("Language: {name}")),
_ => context.clone().and_then(|ctx| {
ctx.task_context
.task_variables

View file

@ -2656,6 +2656,8 @@ impl Session {
this.update(cx, |this, cx| {
this.memory.clear(cx.background_executor());
this.invalidate_command_type::<ReadMemory>();
this.invalidate_command_type::<VariablesCommand>();
cx.emit(SessionEvent::Variables);
match response {
Ok(response) => {
let event = dap::OutputEvent {