public static Map<Language, InlineHandler.Inliner> initInliners(PsiElement elementToInline,
                                                                  UsageInfo[] usagesIn,
                                                                  InlineHandler.Settings settings,
                                                                  MultiMap<PsiElement, @DialogMessage String> conflicts,
                                                                  Language... emptyInliners) {
    ArrayList<PsiReference> refs = new ArrayList<>();
    for (UsageInfo info : usagesIn) {
      if (info instanceof NonCodeUsageInfo) continue;
      PsiElement element = info.getElement();
      if (element != null) {
        PsiReference[] references = element.getReferences();
        if (references.length > 0) {
          refs.add(references[0]);
        }
      }
    }

    Map<Language, InlineHandler.Inliner> inliners = initializeInliners(elementToInline, settings, refs);
    for (Language language : emptyInliners) {
      inliners.put(language, new InlineHandler.Inliner() {
        @Nullable
        @Override
        public MultiMap<PsiElement, String> getConflicts(@NotNull PsiReference reference, @NotNull PsiElement referenced) {
          return null;
        }

        @Override
        public void inlineUsage(@NotNull UsageInfo usage, @NotNull PsiElement referenced) { }
      });
    }

    for (PsiReference ref : refs) {
      collectConflicts(ref, elementToInline, inliners, conflicts);
    }

    return inliners;
  }
public static Map<Language, InlineHandler.Inliner> initInliners(PsiElement elementToInline,
                                                                  UsageInfo[] usagesIn,
                                                                  InlineHandler.Settings settings,
                                                                  MultiMap<PsiElement, @DialogMessage String> conflicts,
                                                                  Language... emptyInliners)