From ffb32f50297a655ad27bb5238e1bf36a281801a2 Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 19 Aug 2013 19:33:50 +0200 Subject: [PATCH] less garbage in ReferenceListWeigher --- .../intellij/psi/util/proximity/ReferenceListWeigher.java | 6 +++++- .../lang/completion/weighers/GrReferenceListWeigher.java | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/java/java-impl/src/com/intellij/psi/util/proximity/ReferenceListWeigher.java b/java/java-impl/src/com/intellij/psi/util/proximity/ReferenceListWeigher.java index 217585fe5118..b7d29f148d91 100644 --- a/java/java-impl/src/com/intellij/psi/util/proximity/ReferenceListWeigher.java +++ b/java/java-impl/src/com/intellij/psi/util/proximity/ReferenceListWeigher.java @@ -18,6 +18,7 @@ package com.intellij.psi.util.proximity; import com.intellij.openapi.roots.ProjectFileIndex; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.patterns.PlatformPatterns; +import com.intellij.patterns.PsiElementPattern; import com.intellij.psi.*; import com.intellij.psi.util.InheritanceUtil; import com.intellij.psi.util.ProximityLocation; @@ -29,6 +30,9 @@ import org.jetbrains.annotations.Nullable; */ public class ReferenceListWeigher extends ProximityWeigher { + private static final PsiElementPattern.Capture INSIDE_REFERENCE_LIST = + PlatformPatterns.psiElement().withParents(PsiJavaCodeReferenceElement.class, PsiReferenceList.class); + protected enum Preference { Interfaces, Classes, Exceptions } @@ -36,7 +40,7 @@ public class ReferenceListWeigher extends ProximityWeigher { @Nullable protected Preference getPreferredCondition(@NotNull ProximityLocation location) { PsiElement position = location.getPosition(); - if (PlatformPatterns.psiElement().withParents(PsiJavaCodeReferenceElement.class, PsiReferenceList.class).accepts(position)) { + if (INSIDE_REFERENCE_LIST.accepts(position)) { assert position != null; PsiReferenceList list = (PsiReferenceList)position.getParent().getParent(); PsiReferenceList.Role role = list.getRole(); diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/weighers/GrReferenceListWeigher.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/weighers/GrReferenceListWeigher.java index c7f0b61ea4e1..2205867381ec 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/weighers/GrReferenceListWeigher.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/completion/weighers/GrReferenceListWeigher.java @@ -16,6 +16,7 @@ package org.jetbrains.plugins.groovy.lang.completion.weighers; import com.intellij.patterns.PlatformPatterns; +import com.intellij.patterns.PsiElementPattern; import com.intellij.psi.PsiElement; import com.intellij.psi.util.ProximityLocation; import com.intellij.psi.util.proximity.ReferenceListWeigher; @@ -29,10 +30,13 @@ import org.jetbrains.plugins.groovy.lang.psi.api.types.GrCodeReferenceElement; * @author peter */ public class GrReferenceListWeigher extends ReferenceListWeigher { + private static final PsiElementPattern.Capture INSIDE_REFERENCE_LIST = + PlatformPatterns.psiElement().withParents(GrCodeReferenceElement.class, GrReferenceList.class); + @Override protected Preference getPreferredCondition(@NotNull ProximityLocation location) { PsiElement position = location.getPosition(); - if (PlatformPatterns.psiElement().withParents(GrCodeReferenceElement.class, GrReferenceList.class).accepts(position)) { + if (INSIDE_REFERENCE_LIST.accepts(position)) { assert position != null; GrReferenceList list = (GrReferenceList)position.getParent().getParent(); PsiElement parent = list.getParent();