diff --git a/platform/core-api/src/com/intellij/patterns/PsiElementPattern.java b/platform/core-api/src/com/intellij/patterns/PsiElementPattern.java index 61904cf83ae7..5d4599feb32d 100644 --- a/platform/core-api/src/com/intellij/patterns/PsiElementPattern.java +++ b/platform/core-api/src/com/intellij/patterns/PsiElementPattern.java @@ -339,6 +339,19 @@ public abstract class PsiElementPattern("withLastChildSkipping") { + @Override + public boolean accepts(@NotNull T t, ProcessingContext context) { + PsiElement last = t.getLastChild(); + while (last != null && skip.accepts(last)) { + last = last.getPrevSibling(); + } + return pattern.accepts(last); + } + }); + } + public static class Capture extends PsiElementPattern> { protected Capture(final Class aClass) {