private static XmlAttributeValuePattern nestedTagExtensionAttributePattern(@NonNls String tagName,
                                                                             @NonNls String[] attributeNames,
                                                                             @NonNls String... extensionPointClassNames) {
    return xmlAttributeValue(attributeNames)
      .inFile(DomPatterns.inDomFile(IdeaPlugin.class))
      .withSuperParent(2, xmlTag().withLocalName(tagName))
      .withSuperParent(3, extensionPointCapture(extensionPointClassNames));
  }
private static XmlAttributeValuePattern nestedTagExtensionAttributePattern(@NonNls String tagName,
                                                                             @NonNls String[] attributeNames,
                                                                             @NonNls String... extensionPointClassNames)