diff --git a/platform/script-debugger/debugger-ui/src/org/jetbrains/debugger/CustomPropertiesValuePresentation.java b/platform/script-debugger/debugger-ui/src/org/jetbrains/debugger/CustomPropertiesValuePresentation.java index 9a951b2b441e..e9359da80a8b 100644 --- a/platform/script-debugger/debugger-ui/src/org/jetbrains/debugger/CustomPropertiesValuePresentation.java +++ b/platform/script-debugger/debugger-ui/src/org/jetbrains/debugger/CustomPropertiesValuePresentation.java @@ -13,79 +13,54 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.jetbrains.debugger; +package org.jetbrains.debugger -import com.intellij.xdebugger.XDebuggerBundle; -import com.intellij.xdebugger.frame.XValueNode; -import com.intellij.xdebugger.frame.presentation.XValuePresentation; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.debugger.values.ObjectValue; -import org.jetbrains.debugger.values.StringValue; -import org.jetbrains.debugger.values.Value; +import com.intellij.openapi.editor.DefaultLanguageHighlighterColors +import com.intellij.xdebugger.XDebuggerBundle +import com.intellij.xdebugger.frame.XValueNode +import com.intellij.xdebugger.frame.presentation.XValuePresentation +import org.jetbrains.debugger.values.ObjectValue +import org.jetbrains.debugger.values.StringValue +import org.jetbrains.debugger.values.ValueType -import java.util.List; - -public class CustomPropertiesValuePresentation extends XValuePresentation { - private final ObjectValue value; - private final List properties; - - public CustomPropertiesValuePresentation(@NotNull ObjectValue value, @NotNull List properties) { - this.value = value; - this.properties = properties; - } - - @Override - public void renderValue(@NotNull XValueTextRenderer renderer) { - renderer.renderComment(VariableViewKt.getObjectValueDescription(value)); - renderer.renderSpecialSymbol(" {"); - boolean isFirst = true; - for (Variable property : properties) { +class CustomPropertiesValuePresentation(private val value: ObjectValue, private val properties: List) : XValuePresentation() { + override fun renderValue(renderer: XValuePresentation.XValueTextRenderer) { + renderer.renderComment(getObjectValueDescription(value)) + renderer.renderSpecialSymbol(" {") + var isFirst = true + for (property in properties) { if (isFirst) { - isFirst = false; + isFirst = false } else { - renderer.renderSpecialSymbol(", "); + renderer.renderSpecialSymbol(", ") } - renderer.renderValue(property.getName()); - renderer.renderSpecialSymbol(": "); + renderer.renderValue(property.name, DefaultLanguageHighlighterColors.INSTANCE_FIELD) + renderer.renderSpecialSymbol(": ") - Value value = property.getValue(); - assert value != null; + val value = property.value!! + when (value.type) { + ValueType.BOOLEAN, ValueType.NULL, ValueType.UNDEFINED, ValueType.SYMBOL -> renderer.renderKeywordValue(value.valueString!!) - switch (value.getType()) { - case BOOLEAN: - case NULL: - case UNDEFINED: - case SYMBOL: - renderer.renderKeywordValue(value.getValueString()); - break; + ValueType.NUMBER -> renderer.renderNumericValue(value.valueString!!) - case NUMBER: - renderer.renderNumericValue(value.getValueString()); - break; - - case STRING: - String string = value.getValueString(); - renderer.renderStringValue(string, "\"\\", XValueNode.MAX_VALUE_LENGTH); - int actualStringLength = value instanceof StringValue ? ((StringValue)value).getLength() : string.length(); + ValueType.STRING -> { + val string = value.valueString + renderer.renderStringValue(string!!, "\"\\", XValueNode.MAX_VALUE_LENGTH) + val actualStringLength = (value as? StringValue)?.length ?: string.length if (actualStringLength > XValueNode.MAX_VALUE_LENGTH) { - renderer.renderComment(XDebuggerBundle.message("node.text.ellipsis.truncated", actualStringLength)); + renderer.renderComment(XDebuggerBundle.message("node.text.ellipsis.truncated", actualStringLength)) } - break; + } - case FUNCTION: - renderer.renderComment(VariableViewKt.trimFunctionDescription(value)); - break; + ValueType.FUNCTION -> renderer.renderComment(trimFunctionDescription(value)) - case OBJECT: - renderer.renderComment(VariableViewKt.getObjectValueDescription((ObjectValue)value)); - break; + ValueType.OBJECT -> renderer.renderComment(getObjectValueDescription(value as ObjectValue)) - default: - renderer.renderValue(value.getValueString()); + else -> renderer.renderValue(value.valueString!!) } } - renderer.renderSpecialSymbol("}"); + renderer.renderSpecialSymbol("}") } } \ No newline at end of file