void (@NotNull XValueNodeImpl parentNode) { ValueDescriptorImpl descriptor = ((JavaValue)parentNode.getValueContainer()).getDescriptor(); EnumerationChildrenRenderer renderer = EnumerationChildrenRenderer.getCurrent(descriptor); XDebuggerTreeNode newNode = parentNode.addTemporaryEditorNode(AllIcons.Debugger.Db_watch, null); DebuggerUIUtil.invokeLater(() -> new CustomFieldInplaceEditor(newNode, null, renderer) { @Override public void cancelEditing() { super.cancelEditing(); parentNode.removeTemporaryEditorNode(newNode); } @Override protected List<EnumerationChildrenRenderer.ChildInfo> getRendererChildren() { if (myRenderer != null) { return myRenderer.getChildren(); } String name = getTypeName(descriptor); EnumerationChildrenRenderer enumerationChildrenRenderer = new EnumerationChildrenRenderer(); enumerationChildrenRenderer.setAppendDefaultChildren(true); Renderer lastRenderer = descriptor.getLastRenderer(); if (lastRenderer instanceof CompoundReferenceRenderer && NodeRendererSettings.getInstance().getCustomRenderers().contains((NodeRenderer)lastRenderer) && !(((CompoundReferenceRenderer)lastRenderer).getChildrenRenderer() instanceof ExpressionChildrenRenderer)) { ((CompoundReferenceRenderer)lastRenderer).setChildrenRenderer(enumerationChildrenRenderer); } else { NodeRenderer renderer = NodeRendererSettings.getInstance().createCompoundReferenceRenderer(name, name, null, enumerationChildrenRenderer); renderer.setEnabled(true); NodeRendererSettings.getInstance().getCustomRenderers().addRenderer(renderer); NodeRendererSettings.getInstance().fireRenderersChanged(); } return enumerationChildrenRenderer.getChildren(); } }.show()); }