private static UsageNode getFirstUsageNode(@NotNull GroupNode parent) {
    Node found;
    synchronized (parent) {
      found = ContainerUtil.find(parent.getChildren(), c -> c instanceof UsageNode || c instanceof GroupNode);
    }
    return (found instanceof GroupNode groupNode) ? getFirstUsageNode(groupNode) : (UsageNode)found;
  }
private static UsageNode getFirstUsageNode(@NotNull GroupNode parent)