@Override
    public Object @NotNull [] getVariants() {
      ExtensionPoint extensionPoint = myExtension.getExtensionPoint();
      if (extensionPoint == null) {
        return ArrayUtilRt.EMPTY_OBJECT_ARRAY;
      }

      List<ExtensionCandidate> candidates = locateExtensionsByExtensionPoint(extensionPoint);
      Project project = getElement().getProject();
      DomManager domManager = DomManager.getDomManager(project);

      List<Extension> extensionsForThisEp = new ArrayList<>();
      for (ExtensionCandidate candidate : candidates) {
        XmlTag tag = candidate.pointer.getElement();
        DomElement domElement = domManager.getDomElement(tag);
        if (domElement instanceof Extension) {
          extensionsForThisEp.add((Extension)domElement);
        }
      }

      Map<Extension, String> targetExtensionsWithMarks = filterAndMarkExtensions(extensionsForThisEp, project);
      List<LookupElement> idCompletionVariants = getLookupElements(targetExtensionsWithMarks);
      return idCompletionVariants.toArray(LookupElement.EMPTY_ARRAY);
    }
@Override
    public Object @NotNull [] getVariants()