public static @NotNull List<StubFileElementType<?>> getStubFileElementTypeFromVersion(@NotNull String version) {
    int externalIdDelimPos = version.indexOf(':');
    if (externalIdDelimPos == -1) {
      LOG.error("Version info is incomplete: " + version);
      externalIdDelimPos = version.length();
    }
    String externalId = version.substring(0, externalIdDelimPos);
    List<StubFileElementType<?>> matches = ContainerUtil.map(IElementType.enumerate(p -> {
      return p instanceof StubFileElementType && ((StubFileElementType<?>)p).getExternalId().equals(externalId);
    }), p -> (StubFileElementType<?>)p);
    if (matches.size() > 1) {
      int stubVersionDelimPos = version.indexOf(':', externalIdDelimPos + 1);
      if (stubVersionDelimPos == -1) {
        LOG.error("Version info is incomplete: " + version);
        return matches;
      }
      int debugNameDelimPos = version.indexOf(':', stubVersionDelimPos + 1);
      if (debugNameDelimPos == -1) debugNameDelimPos = version.length();
      String debugName = version.substring(stubVersionDelimPos + 1, debugNameDelimPos);
      matches = ContainerUtil.filter(matches, p -> {
        return p.getDebugName().equals(debugName);
      });
    }
    return matches;
  }
public static @NotNull List<StubFileElementType<?>> getStubFileElementTypeFromVersion(@NotNull String version)