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


Java SourcePosition.getElementAt方法代码示例

本文整理汇总了Java中com.intellij.debugger.SourcePosition.getElementAt方法的典型用法代码示例。如果您正苦于以下问题:Java SourcePosition.getElementAt方法的具体用法?Java SourcePosition.getElementAt怎么用?Java SourcePosition.getElementAt使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.intellij.debugger.SourcePosition的用法示例。


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

示例1: getClassAt

import com.intellij.debugger.SourcePosition; //导入方法依赖的package包/类
@Nullable
public static PsiClass getClassAt(@Nullable SourcePosition position) {
  if (position == null) {
    return null;
  }
  final PsiElement element = position.getElementAt();
  return (element != null) ? PsiTreeUtil.getParentOfType(element, PsiClass.class, false) : null;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:9,代码来源:JVMNameUtil.java

示例2: inTheSameMethod

import com.intellij.debugger.SourcePosition; //导入方法依赖的package包/类
public static boolean inTheSameMethod(@NotNull SourcePosition pos1, @NotNull SourcePosition pos2) {
  ApplicationManager.getApplication().assertReadAccessAllowed();
  PsiElement elem1 = pos1.getElementAt();
  PsiElement elem2 = pos2.getElementAt();
  if (elem1 == null) return elem2 == null;
  if (elem2 != null) {
    PsiElement expectedMethod = getContainingMethod(elem1);
    PsiElement currentMethod = getContainingMethod(elem2);
    return Comparing.equal(expectedMethod, currentMethod);
  }
  return false;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:13,代码来源:DebuggerUtilsEx.java

示例3: getContextElement

import com.intellij.debugger.SourcePosition; //导入方法依赖的package包/类
@Nullable
public static PsiElement getContextElement(@Nullable SourcePosition position) {
  return position == null ? null : position.getElementAt();
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:5,代码来源:ContextUtil.java

示例4: collectLambdas

import com.intellij.debugger.SourcePosition; //导入方法依赖的package包/类
public static List<PsiLambdaExpression> collectLambdas(@NotNull SourcePosition position, final boolean onlyOnTheLine) {
  ApplicationManager.getApplication().assertReadAccessAllowed();
  PsiFile file = position.getFile();
  final int line = position.getLine();
  final Document document = PsiDocumentManager.getInstance(file.getProject()).getDocument(file);
  if (document == null || line >= document.getLineCount()) {
    return Collections.emptyList();
  }
  PsiElement element = position.getElementAt();
  final TextRange lineRange = DocumentUtil.getLineTextRange(document, line);
  do {
    PsiElement parent = element.getParent();
    if (parent == null || (parent.getTextOffset() < lineRange.getStartOffset())) {
      break;
    }
    element = parent;
  }
  while(true);

  final List<PsiLambdaExpression> lambdas = new ArrayList<PsiLambdaExpression>(3);
  final PsiElementVisitor lambdaCollector = new JavaRecursiveElementVisitor() {
    @Override
    public void visitLambdaExpression(PsiLambdaExpression expression) {
      super.visitLambdaExpression(expression);
      if (!onlyOnTheLine || getFirstElementOnTheLine(expression, document, line) != null) {
        lambdas.add(expression);
      }
    }
  };
  element.accept(lambdaCollector);
  // add initial lambda if we're inside already
  PsiElement method = getContainingMethod(element);
  if (method instanceof PsiLambdaExpression) {
    lambdas.add((PsiLambdaExpression)method);
  }
  for (PsiElement sibling = getNextElement(element); sibling != null; sibling = getNextElement(sibling)) {
    if (!intersects(lineRange, sibling)) {
      break;
    }
    sibling.accept(lambdaCollector);
  }
  return lambdas;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:44,代码来源:DebuggerUtilsEx.java

示例5: inTheMethod

import com.intellij.debugger.SourcePosition; //导入方法依赖的package包/类
public static boolean inTheMethod(@NotNull SourcePosition pos, @NotNull PsiElement method) {
  PsiElement elem = pos.getElementAt();
  if (elem == null) return false;
  return Comparing.equal(getContainingMethod(elem), method);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:6,代码来源:DebuggerUtilsEx.java


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