public static boolean isIncompleteModeWithLombokAnnotation(@NotNull PsiElement context) {
    if (!isIncompleteMode(context.getProject())) {
      return false;
    }

    if (context.getLanguage() != JavaLanguage.INSTANCE) {
      return false;
    }

    if (context instanceof PsiModifierList modifierList && hasAnyFullyQualifiedLombokAnnotation(modifierList.getAnnotations())) {
      return true;
    }

    PsiClass psiClass = PsiTreeUtil.getNonStrictParentOfType(context, PsiClass.class);

    if (psiClass == null) return false;

    return CachedValuesManager.getProjectPsiDependentCache(psiClass, psiElement -> {
      if (!(psiElement.getContainingFile() instanceof PsiJavaFile file)) {
        return false;
      }
      if (file.getImportList() != null && ContainerUtil.exists(file.getImportList().getAllImportStatements(), statement -> {
        return canBeLombokImport(statement);
      })) {
        return true;
      }
      while (psiElement != null) {
        if (psiElement instanceof PsiExtensibleClass extensibleClass &&
            (hasAnyFullyQualifiedLombokAnnotation(extensibleClass.getAnnotations()) ||
             ContainerUtil.exists(extensibleClass.getOwnFields(), field -> hasAnyFullyQualifiedLombokAnnotation(field.getAnnotations())) ||
             ContainerUtil.exists(extensibleClass.getOwnMethods(), method -> hasAnyFullyQualifiedLombokAnnotation(method.getAnnotations())) ||
             (file.getImportList() != null && ContainerUtil.exists(file.getImportList().getAllImportStatements(), statement -> {
               return canBeLombokImport(statement);
             })))) {
          return true;
        }
        psiElement = PsiTreeUtil.getParentOfType(psiElement, PsiClass.class);
      }
      return false;
    });
  }
public static boolean isIncompleteModeWithLombokAnnotation(@NotNull PsiElement context)