void (@NotNull XFullValueEvaluationCallback callback, boolean doTrunc) { String expression = myExpression.trim(); if (expression.isEmpty()) { callback.evaluated(""); return; } ApplicationManager.getApplication().executeOnPooledThread(() -> { try { final PyDebugValue value = myDebugProcess.evaluate(expression, false, doTrunc); if (value.getValue() == null) { throw new PyDebuggerException("Failed to Load Value"); } callback.evaluated(value.getValue()); if (!isCopyValueCallback(callback)) { ApplicationManager.getApplication().invokeLater(() -> showCustomPopup(myDebugProcess, value)); } } catch (PyDebuggerException e) { callback.errorOccurred(e.getTracebackError()); } }); }