void (@NotNull XValueNode node, @NotNull String value, @NotNull @Nls String linkText, @Nullable String errorMessage) { if (errorMessage != null) { node.setPresentation(getValueIcon(), new XRegularValuePresentation(value, myType) { @Override public void renderValue(@NotNull XValueTextRenderer renderer) { renderer.renderError(errorMessage); } }, myContainer); } else { setElementPresentation(node, value); } if (isNumericContainer()) return; // do not update FullValueEvaluator not to break Array Viewer if (value.length() >= MAX_VALUE) { node.setFullValueEvaluator(new PyFullValueEvaluator(myFrameAccessor, getEvaluationExpression())); } else { node.setFullValueEvaluator(new XFullValueEvaluator(linkText) { @Override public void startEvaluation(@NotNull XFullValueEvaluationCallback callback) { callback.evaluated(value); } @Override public boolean isShowValuePopup() { return false; } }); } }