当前位置: 首页>>代码示例>>Java>>正文


Java RelatedItemLineMarkerProvider类代码示例

本文整理汇总了Java中com.intellij.codeInsight.daemon.RelatedItemLineMarkerProvider的典型用法代码示例。如果您正苦于以下问题:Java RelatedItemLineMarkerProvider类的具体用法?Java RelatedItemLineMarkerProvider怎么用?Java RelatedItemLineMarkerProvider使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


RelatedItemLineMarkerProvider类属于com.intellij.codeInsight.daemon包,在下文中一共展示了RelatedItemLineMarkerProvider类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getItems

import com.intellij.codeInsight.daemon.RelatedItemLineMarkerProvider; //导入依赖的package包/类
@NotNull
@Override
public List<? extends GotoRelatedItem> getItems(@NotNull PsiElement context) {
  List<PsiElement> parents = new ArrayList<PsiElement>();
  PsiElement current = context;
  Set<Language> languages = new HashSet<Language>();
  while (current != null) {
    parents.add(current);
    languages.add(current.getLanguage());
    if (current instanceof PsiFile) break;
    current = current.getParent();
  }

  List<LineMarkerProvider> providers = new ArrayList<LineMarkerProvider>();
  for (Language language : languages) {
    providers.addAll(LineMarkersPass.getMarkerProviders(language, context.getProject()));
  }
  List<GotoRelatedItem> items = new ArrayList<GotoRelatedItem>();
  for (LineMarkerProvider provider : providers) {
    if (provider instanceof RelatedItemLineMarkerProvider) {
      List<RelatedItemLineMarkerInfo> markers = new ArrayList<RelatedItemLineMarkerInfo>();
      RelatedItemLineMarkerProvider relatedItemLineMarkerProvider = (RelatedItemLineMarkerProvider)provider;
      for (PsiElement parent : parents) {
        ContainerUtil.addIfNotNull(relatedItemLineMarkerProvider.getLineMarkerInfo(parent), markers);
      }
      relatedItemLineMarkerProvider.collectNavigationMarkers(parents, markers, true);

      addItemsForMarkers(markers, items);
    }
  }

  return items;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:34,代码来源:RelatedItemLineMarkerGotoAdapter.java

示例2: getItems

import com.intellij.codeInsight.daemon.RelatedItemLineMarkerProvider; //导入依赖的package包/类
@Nonnull
@Override
public List<? extends GotoRelatedItem> getItems(@Nonnull PsiElement context) {
  List<PsiElement> parents = new ArrayList<PsiElement>();
  PsiElement current = context;
  Set<Language> languages = new HashSet<Language>();
  while (current != null) {
    parents.add(current);
    languages.add(current.getLanguage());
    if (current instanceof PsiFile) break;
    current = current.getParent();
  }

  List<LineMarkerProvider> providers = new ArrayList<LineMarkerProvider>();
  for (Language language : languages) {
    providers.addAll(LineMarkersPass.getMarkerProviders(language, context.getProject()));
  }
  List<GotoRelatedItem> items = new ArrayList<GotoRelatedItem>();
  for (LineMarkerProvider provider : providers) {
    if (provider instanceof RelatedItemLineMarkerProvider) {
      List<RelatedItemLineMarkerInfo> markers = new ArrayList<RelatedItemLineMarkerInfo>();
      RelatedItemLineMarkerProvider relatedItemLineMarkerProvider = (RelatedItemLineMarkerProvider)provider;
      for (PsiElement parent : parents) {
        ContainerUtil.addIfNotNull(relatedItemLineMarkerProvider.getLineMarkerInfo(parent), markers);
      }
      relatedItemLineMarkerProvider.collectNavigationMarkers(parents, markers, true);

      addItemsForMarkers(markers, items);
    }
  }

  return items;
}
 
开发者ID:consulo,项目名称:consulo,代码行数:34,代码来源:RelatedItemLineMarkerGotoAdapter.java


注:本文中的com.intellij.codeInsight.daemon.RelatedItemLineMarkerProvider类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。