From c2d22ba0968faecd28f89f6f6ae6b444b16e6322 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Thu, 20 Aug 2015 14:00:54 +0300 Subject: [PATCH] review --- .../codeInsight/template/JavaCodeContextType.java | 3 ++- .../src/com/intellij/patterns/PsiJavaElementPattern.java | 4 ++-- .../src/com/intellij/patterns/TreeElementPattern.java | 8 ++------ 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/template/JavaCodeContextType.java b/java/java-impl/src/com/intellij/codeInsight/template/JavaCodeContextType.java index f74eb9acb4d4..9ae22b6459c4 100644 --- a/java/java-impl/src/com/intellij/codeInsight/template/JavaCodeContextType.java +++ b/java/java-impl/src/com/intellij/codeInsight/template/JavaCodeContextType.java @@ -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; diff --git a/java/java-psi-api/src/com/intellij/patterns/PsiJavaElementPattern.java b/java/java-psi-api/src/com/intellij/patterns/PsiJavaElementPattern.java index 43afec180c62..72e7fa1321c2 100644 --- a/java/java-psi-api/src/com/intellij/patterns/PsiJavaElementPattern.java +++ b/java/java-psi-api/src/com/intellij/patterns/PsiJavaElementPattern.java @@ -62,8 +62,8 @@ public class PsiJavaElementPattern 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)))); } diff --git a/platform/core-api/src/com/intellij/patterns/TreeElementPattern.java b/platform/core-api/src/com/intellij/patterns/TreeElementPattern.java index d552361c6277..232941e18b6d 100644 --- a/platform/core-api/src/com/intellij/patterns/TreeElementPattern.java +++ b/platform/core-api/src/com/intellij/patterns/TreeElementPattern.java @@ -150,12 +150,8 @@ public abstract class TreeElementPattern pattern) { - return isOrParentAtMost(1, pattern); - } - - public Self isOrParentAtMost(final int levelsUp, @NotNull final ElementPattern pattern) { - return with(new PatternCondition("isOrParent") { + public Self hasParentNear(final int levelsUp, @NotNull final ElementPattern pattern) { + return with(new PatternCondition("hasParentNear") { @Override public boolean accepts(@NotNull T t, ProcessingContext context) { ParentType element = t;