类com.intellij.psi.PsiCodeBlock源码实例Demo

下面列出了怎么用com.intellij.psi.PsiCodeBlock的API类实例代码及写法,或者点击链接到github查看源代码。


public PsiElement getStatement() {
    PsiElement element = this.statement.getElement();
    if (element instanceof PsiStatement || element instanceof PsiCodeBlock) {
        return element;
    } else {
        return null;
    }
}
 

public static void translate(PsiCodeBlock block, TranslationContext ctx) {
    ctx.append("{\n");
    ctx.increaseIdent();
    for (PsiStatement statement : block.getStatements()) {
        StatementTranslator.translate(statement, ctx);
    }
    ctx.decreaseIdent();
    ctx.print("}");
}
 

@Override
public boolean isHandled(@Nullable PsiElement element, @NotNull PsiClassType exceptionType, PsiElement topElement) {
  if (!(topElement instanceof PsiCodeBlock)) {
    final PsiMethod psiMethod = PsiTreeUtil.getParentOfType(element, PsiMethod.class);
    return psiMethod != null && isExceptionHandled(psiMethod, exceptionType);
  }
  return false;
}
 

@NotNull
public static PsiCodeBlock createCodeBlockFromText(@NotNull String blockText, @NotNull PsiElement psiElement) {
  final PsiElementFactory elementFactory = JavaPsiFacade.getElementFactory(psiElement.getProject());
  return elementFactory.createCodeBlockFromText("{" + blockText + "}", psiElement);
}
 
 类所在包
 同包方法