CPP-2814 Rearrange descriptors and avoid overriding of host-IDE components - part 2

* custom enum replaced with ThreeState
This commit is contained in:
Anton Makeev
2015-04-27 15:43:20 +02:00
parent 057e07f720
commit ba50d34c3f
3 changed files with 10 additions and 9 deletions
@@ -29,6 +29,7 @@ import com.intellij.psi.xml.XmlAttributeValue;
import com.intellij.psi.xml.XmlTag;
import com.intellij.psi.xml.XmlText;
import com.intellij.util.Processor;
import com.intellij.util.ThreeState;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -77,8 +78,8 @@ public class TargetElementUtil extends TargetElementEvaluatorEx2 implements Targ
@Override
@NotNull
public Answer isAcceptableReferencedElement(@NotNull final PsiElement element, final PsiElement referenceOrReferencedElement) {
if (isEnumConstantReference(element, referenceOrReferencedElement)) return Answer.NO;
public ThreeState isAcceptableReferencedElement(@NotNull final PsiElement element, final PsiElement referenceOrReferencedElement) {
if (isEnumConstantReference(element, referenceOrReferencedElement)) return ThreeState.NO;
return super.isAcceptableReferencedElement(element, referenceOrReferencedElement);
}
@@ -20,6 +20,7 @@ import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiReference;
import com.intellij.psi.search.SearchScope;
import com.intellij.util.ThreeState;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -70,8 +71,8 @@ public abstract class TargetElementEvaluatorEx2 implements TargetElementEvaluato
}
@NotNull
public Answer isAcceptableReferencedElement(@NotNull PsiElement element, @Nullable PsiElement referenceOrReferencedElement) {
return Answer.DEFAULT;
public ThreeState isAcceptableReferencedElement(@NotNull PsiElement element, @Nullable PsiElement referenceOrReferencedElement) {
return ThreeState.UNSURE;
}
public boolean includeSelfInGotoImplementation(@NotNull final PsiElement element) {
@@ -86,6 +87,4 @@ public abstract class TargetElementEvaluatorEx2 implements TargetElementEvaluato
public SearchScope getSearchScope(Editor editor, @NotNull PsiElement element) {
return null;
}
public enum Answer { YES, NO, DEFAULT;}
}
@@ -48,6 +48,7 @@ import com.intellij.psi.search.PsiSearchHelper;
import com.intellij.psi.search.SearchScope;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.util.Consumer;
import com.intellij.util.ThreeState;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -251,9 +252,9 @@ public class TargetElementUtilBase {
TargetElementEvaluatorEx2 evaluator = element != null ? getElementEvaluatorsEx2(element.getLanguage()) : null;
if (evaluator != null) {
TargetElementEvaluatorEx2.Answer answer = evaluator.isAcceptableReferencedElement(element, referenceOrReferencedElement);
if (answer == TargetElementEvaluatorEx2.Answer.YES) return true;
if (answer == TargetElementEvaluatorEx2.Answer.NO) return false;
ThreeState answer = evaluator.isAcceptableReferencedElement(element, referenceOrReferencedElement);
if (answer == ThreeState.YES) return true;
if (answer == ThreeState.NO) return false;
}
return true;