private void process(@NotNull PsiElement element, @NotNull InlayParameterHintsProvider provider) {
    List<InlayInfo> hints = provider.getParameterHints(element, myFile);
    if (hints.isEmpty()) return;
    HintInfo info = provider.getHintInfo(element, myFile);

    boolean showHints = info == null || info instanceof HintInfo.OptionInfo || myHintInfoFilter.showHint(info);

    Stream<InlayInfo> inlays = hints.stream();
    if (!showHints) {
      inlays = inlays.filter(inlayInfo -> !inlayInfo.isFilterByExcludeList());
    }

    inlays.forEach(hint -> {
      int offset = hint.getOffset();
      if (!canShowHintsAtOffset(offset)) return;
      if (ParameterNameHintsSuppressor.All.isSuppressedFor(myFile, hint)) return;

      String presentation = provider.getInlayPresentation(hint.getText());
      if (hint.isShowOnlyIfExistedBefore()) {
        myShowOnlyIfExistedBeforeHints.put(offset, presentation);
      }
      else {
        List<HintData> hintList = myHints.get(offset);
        if (hintList == null) myHints.put(offset, hintList = new ArrayList<>());
        HintWidthAdjustment widthAdjustment = convertHintPresentation(hint.getWidthAdjustment(), provider);
        hintList.add(new HintData(presentation, hint.getRelatesToPrecedingText(), widthAdjustment));
      }
    });
  }
private void process(@NotNull PsiElement element, @NotNull InlayParameterHintsProvider provider)