================ @@ -1364,8 +1364,20 @@ void request_evaluate(const llvm::json::Object &request) { std::string expression = GetString(arguments, "expression").str(); llvm::StringRef context = GetString(arguments, "context"); - if (context == "repl" && g_dap.DetectExpressionContext(frame, expression) == - ExpressionContext::Command) { + if (context == "repl" && + ((!expression.empty() && + g_dap.DetectExpressionContext(frame, expression) == + ExpressionContext::Command) || + (expression.empty() && + g_dap.last_expression_context == ExpressionContext::Command))) { + // If the current expression is empty, and the last expression context was + // for a command, pass the empty expression along to the + // CommandInterpreter, to repeat the previous command. Also set the + // expression context properly for the next (possibly empty) expression. + g_dap.last_expression_context = ExpressionContext::Command; + // Since the current expression context is not for a variable, clear the + // last_nonempty_var_expression field. + g_dap.last_nonempty_var_expression.clear(); ---------------- cmtice wrote:
Actually I have an idea for a way to make this work with only one variable; let me try that. https://github.com/llvm/llvm-project/pull/107485 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits