mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
prioritization of implicit resolve results (initial)
This commit is contained in:
@@ -4,11 +4,11 @@ import com.intellij.codeInsight.lookup.AutoCompletionPolicy;
|
||||
import com.intellij.codeInsight.lookup.LookupElement;
|
||||
import com.intellij.codeInsight.lookup.LookupElementBuilder;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiDirectory;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiReference;
|
||||
import com.intellij.psi.search.ProjectScope;
|
||||
import com.intellij.psi.stubs.StubUpdatingIndex;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
@@ -80,7 +80,7 @@ public class PyQualifiedReferenceImpl extends PyReferenceImpl {
|
||||
}
|
||||
PyFunction pyFunction = (PyFunction) function;
|
||||
if (pyFunction.getContainingClass() != null) {
|
||||
ret.add(new ImplicitResolveResult(pyFunction));
|
||||
ret.add(new ImplicitResolveResult(pyFunction, getFunctionRate(pyFunction)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -91,6 +91,20 @@ public class PyQualifiedReferenceImpl extends PyReferenceImpl {
|
||||
return ret;
|
||||
}
|
||||
|
||||
private int getFunctionRate(PyFunction pyFunction) {
|
||||
int rate = RatedResolveResult.RATE_LOW;
|
||||
if (pyFunction.getContainingFile() == myElement.getContainingFile()) {
|
||||
rate += 200;
|
||||
}
|
||||
else {
|
||||
final VirtualFile vFile = pyFunction.getContainingFile().getVirtualFile();
|
||||
if (vFile != null && ProjectScope.getProjectScope(myElement.getProject()).contains(vFile)) {
|
||||
rate += 80;
|
||||
}
|
||||
}
|
||||
return rate;
|
||||
}
|
||||
|
||||
private static boolean canQualifyAnImplicitName(@NotNull PyExpression qualifier, @Nullable PyType qualType) {
|
||||
if (qualType == null) {
|
||||
if (qualifier instanceof PyCallExpression) {
|
||||
|
||||
@@ -7,7 +7,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
* @author yole
|
||||
*/
|
||||
public class ImplicitResolveResult extends RatedResolveResult {
|
||||
public ImplicitResolveResult(@Nullable final PsiElement element) {
|
||||
super(RATE_LOW, element);
|
||||
public ImplicitResolveResult(@Nullable final PsiElement element, final int rate) {
|
||||
super(rate, element);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user