1 package com.jetbrains.python.debugger;
3 import com.intellij.xdebugger.frame.XFullValueEvaluator;
4 import org.jetbrains.annotations.NotNull;
9 public class PyFullValueEvaluator extends XFullValueEvaluator {
10 private final PyFrameAccessor myDebugProcess;
11 private final String myExpression;
14 * @param linkText text of the link what will be appended to a variables tree node text
18 protected PyFullValueEvaluator(String linkText, PyFrameAccessor debugProcess, String expression) {
20 myDebugProcess = debugProcess;
21 myExpression = expression;
25 protected PyFullValueEvaluator(PyFrameAccessor debugProcess, String expression) {
26 myDebugProcess = debugProcess;
27 myExpression = expression;
32 public void startEvaluation(@NotNull XFullValueEvaluationCallback callback) {
33 String expression = myExpression.trim();
34 if ("".equals(expression)) {
35 callback.evaluated("");
40 final PyDebugValue value = myDebugProcess.evaluate(expression, false, false);
41 callback.evaluated(value.getValue());
42 showCustomPopup(myDebugProcess, value);
44 catch (PyDebuggerException e) {
45 callback.errorOccurred(e.getTracebackError());
49 protected void showCustomPopup(PyFrameAccessor debugProcess, PyDebugValue debugValue) {