Find Usages: Unify usage highlighting and full usage search

This commit is contained in:
Alexey Sedunov
2015-06-11 16:33:09 +03:00
parent e8f5a2db7c
commit 8104b899aa
@@ -28,8 +28,10 @@ import com.intellij.util.Processor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.idea.findUsages.KotlinFindUsagesHandlerFactory;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
public abstract class KotlinFindUsagesHandler<T extends PsiElement> extends FindUsagesHandler {
private final KotlinFindUsagesHandlerFactory factory;
@@ -115,4 +117,26 @@ public abstract class KotlinFindUsagesHandler<T extends PsiElement> extends Find
protected abstract boolean searchReferences(
@NotNull PsiElement element, @NotNull Processor<UsageInfo> processor, @NotNull FindUsagesOptions options
);
@NotNull
@Override
public Collection<PsiReference> findReferencesToHighlight(@NotNull PsiElement target, @NotNull SearchScope searchScope
) {
final List<PsiReference> results = new ArrayList<PsiReference>();
FindUsagesOptions options = getFindUsagesOptions();
options.searchScope = searchScope;
searchReferences(target,
new Processor<UsageInfo>() {
@Override
public boolean process(UsageInfo info) {
PsiReference reference = info.getReference();
if (reference != null) {
results.add(reference);
}
return true;
}
},
options);
return results;
}
}