mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Update resolving __doc__
This commit is contained in:
@@ -247,9 +247,24 @@ public class PyReferenceImpl implements PsiReferenceEx, PsiPolyVariantReference
|
||||
// Use real context here to enable correct completion and resolve in case of PyExpressionCodeFragment
|
||||
final PsiElement realContext = PyPsiUtils.getRealContext(myElement);
|
||||
|
||||
PsiElement roof = findResolveRoof(referencedName, realContext);
|
||||
final PsiElement roof = findResolveRoof(referencedName, realContext);
|
||||
PyResolveUtil.scopeCrawlUp(processor, myElement, referencedName, roof);
|
||||
return getResultsFromProcessor(referencedName, processor, realContext, roof);
|
||||
|
||||
final List<RatedResolveResult> resultsFromProcessor = getResultsFromProcessor(referencedName, processor, realContext, roof);
|
||||
|
||||
// resolve to module __doc__
|
||||
if (resultsFromProcessor.isEmpty() && referencedName.equals(PyNames.DOC)) {
|
||||
ret.addAll(
|
||||
Optional
|
||||
.ofNullable(PyBuiltinCache.getInstance(myElement).getObjectType())
|
||||
.map(type -> type.resolveMember(referencedName, myElement, AccessDirection.of(myElement), myContext))
|
||||
.orElse(Collections.emptyList())
|
||||
);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
return resultsFromProcessor;
|
||||
}
|
||||
|
||||
protected List<RatedResolveResult> getResultsFromProcessor(@NotNull String referencedName,
|
||||
|
||||
@@ -199,6 +199,13 @@ public class PyClassTypeImpl extends UserDataHolderBase implements PyClassType {
|
||||
return ResolveResultList.to(classMember);
|
||||
}
|
||||
|
||||
if (PyNames.DOC.equals(name)) {
|
||||
return Optional
|
||||
.ofNullable(PyBuiltinCache.getInstance(myClass).getObjectType())
|
||||
.map(type -> type.resolveMember(name, location, direction, resolveContext))
|
||||
.orElse(Collections.emptyList());
|
||||
}
|
||||
|
||||
classMember = resolveByOverridingAncestorsMembersProviders(this, name, location);
|
||||
if (classMember != null) {
|
||||
final ResolveResultList list = new ResolveResultList();
|
||||
|
||||
Reference in New Issue
Block a user