This commit is contained in:
Alexey Kudravtsev
2015-08-21 14:02:59 +03:00
parent 85b535e925
commit c2d22ba096
3 changed files with 6 additions and 9 deletions
@@ -147,7 +147,8 @@ public abstract class JavaCodeContextType extends TemplateContextType {
private static boolean isAfterExpression(PsiElement element) {
ProcessingContext context = new ProcessingContext();
if (psiElement().isOrParent(instanceOf(PsiExpression.class)).afterLeaf(psiElement().isOrParent(psiElement(PsiExpression.class).save("prevExpr"))).accepts(element, context)) {
if (psiElement().hasParentNear(1, instanceOf(PsiExpression.class))
.afterLeaf(psiElement().hasParentNear(1, psiElement(PsiExpression.class).save("prevExpr"))).accepts(element, context)) {
PsiExpression prevExpr = (PsiExpression)context.get("prevExpr");
if (prevExpr.getTextRange().getEndOffset() <= element.getTextRange().getStartOffset()) {
return true;
@@ -62,8 +62,8 @@ public class PsiJavaElementPattern<T extends PsiElement,Self extends PsiJavaElem
}
public Self insideAnnotationParam(final ElementPattern<String> annotationQualifiedName, @NonNls final String parameterName) {
return isOrParentAtMost(3, // can be array initializer
PsiJavaPatterns.psiNameValuePair().withName(parameterName).withParent(
return hasParentNear(3, // can be array initializer
PsiJavaPatterns.psiNameValuePair().withName(parameterName).withParent(
PlatformPatterns.psiElement(PsiAnnotationParameterList.class).withParent(
PsiJavaPatterns.psiAnnotation().qName(annotationQualifiedName))));
}
@@ -150,12 +150,8 @@ public abstract class TreeElementPattern<ParentType, T extends ParentType, Self
});
}
public Self isOrParent(@NotNull final ElementPattern<? extends ParentType> pattern) {
return isOrParentAtMost(1, pattern);
}
public Self isOrParentAtMost(final int levelsUp, @NotNull final ElementPattern<? extends ParentType> pattern) {
return with(new PatternCondition<T>("isOrParent") {
public Self hasParentNear(final int levelsUp, @NotNull final ElementPattern<? extends ParentType> pattern) {
return with(new PatternCondition<T>("hasParentNear") {
@Override
public boolean accepts(@NotNull T t, ProcessingContext context) {
ParentType element = t;