void (@NotNull XValueTextRenderer renderer, @Nullable XValueNodeImpl node) { boolean compact = node != null; String valueText = myValueDescriptor.getValueText(); EvaluateException exception = myValueDescriptor.getEvaluateException(); if (exception != null) { String errorMessage = exception.getMessage(); if (valueText.endsWith(errorMessage)) { renderer.renderValue(valueText.substring(0, valueText.length() - errorMessage.length())); } renderer.renderError(errorMessage); } else { if (compact) { String text = myValueDescriptor.getCompactValueText(); if (text != null) { renderer.renderValue(text); return; } } if (myValueDescriptor.isString()) { renderer.renderStringValue(valueText, "\"", XValueNode.MAX_VALUE_LENGTH); return; } String value = truncateToMaxLength(valueText); Renderer lastRenderer = myValueDescriptor.getLastLabelRenderer(); if (lastRenderer instanceof ToStringRenderer) { if (!((ToStringRenderer)lastRenderer).isShowValue(myValueDescriptor, myValueDescriptor.getStoredEvaluationContext())) { return; // to avoid empty line for not calculated toStrings } value = StringUtil.wrapWithDoubleQuote(value); } renderer.renderValue(value); } }