findReferencesToHighlight() correctly handles dir/__init__.py duality (PY-1514)

This commit is contained in:
Dmitry Jemerov
2012-08-30 19:22:17 +02:00
parent db169f4606
commit 36ebf9ef46
@@ -6,11 +6,20 @@ import com.intellij.find.findUsages.FindUsagesHandler;
import com.intellij.psi.PsiDirectory;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFileSystemItem;
import com.intellij.psi.PsiReference;
import com.intellij.psi.search.SearchScope;
import com.intellij.psi.search.searches.ReferencesSearch;
import com.intellij.ui.SimpleColoredComponent;
import com.intellij.ui.SimpleTextAttributes;
import com.jetbrains.python.PyNames;
import com.jetbrains.python.psi.PyFile;
import com.jetbrains.python.psi.PyUtil;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
/**
* @author yole
*/
@@ -46,4 +55,15 @@ public class PyModuleFindUsagesHandler extends FindUsagesHandler {
}
};
}
@Override
public Collection<PsiReference> findReferencesToHighlight(PsiElement target, SearchScope searchScope) {
if (target instanceof PyFile && PyNames.INIT_DOT_PY.equals(((PyFile)target).getName())) {
List<PsiReference> result = new ArrayList<PsiReference>();
result.addAll(super.findReferencesToHighlight(target, searchScope));
result.addAll(ReferencesSearch.search(PyUtil.turnInitIntoDir(target), searchScope, false).findAll());
return result;
}
return super.findReferencesToHighlight(target, searchScope);
}
}