private static void processComponentContext(@NotNull ComponentContext context,
                                              @NotNull ComponentContextProcessor processor) {
    @Nullable Integer level = context.level;
    PsiClass recordClass = context.recordClass;
    PsiStatement scope = context.base.getBody();
    boolean showAsInfo = false;
    if (!recordClass.isRecord() ||
        recordClass.getRecordComponents().length == 0) {
      return;
    }
    if ((level != null && level > context.options.maxLevel) ||
        recordClass.getRecordComponents().length > context.options.maxComponentCount) {
      if (!context.options.isOnTheFly) {
        return;
      }
      showAsInfo = true;
    }
    List<? extends PsiElement> references = VariableAccessUtils.getVariableReferences(context.currentParameter, scope);
    Map<String, List<PsiElement>> components = processReferences(references, context);
    if (components.isEmpty()) {
      return;
    }
    PsiRecordComponent[] recordComponents = recordClass.getRecordComponents();
    if (recordComponents.length - components.size() > context.options.maxNotUsedComponentCount) {
      if (!context.options.isOnTheFly) {
        return;
      }
      showAsInfo = true;
    }
    context.showInfoFolder.showInfo = context.showInfoFolder.showInfo || showAsInfo;
    processor.accept(context, components);
  }
private static void processComponentContext(@NotNull ComponentContext context,
                                              @NotNull ComponentContextProcessor processor)