@Override
  public LineMarkerInfo<?> getLineMarkerInfo(@NotNull PsiElement element) {
    InjectedLanguageManager injectedLanguageManager = InjectedLanguageManager.getInstance(element.getProject());
    if (injectedLanguageManager.isInjectedFragment(element.getContainingFile())) return null;

    List<RunLineMarkerContributor> contributors =
      DumbService.getInstance(element.getProject()).filterByDumbAwareness(RunLineMarkerContributor.EXTENSION.allForLanguageOrAny(element.getLanguage()));
    Icon icon = null;
    List<Info> infos = null;
    for (RunLineMarkerContributor contributor : contributors) {
      ProgressManager.checkCanceled();
      Info info = contributor.getInfo(element);
      if (info == null) {
        continue;
      }
      if (icon == null) {
        icon = info.icon;
      }

      if (infos == null) {
        infos = new SmartList<>();
      }
      infos.add(info);
    }
    if (icon == null) return null;

    return createLineMarker(element, icon, infos);
  }
@Override
  public LineMarkerInfo<?> getLineMarkerInfo(@NotNull PsiElement element)