mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
PY-15603 Initial implementation by Artem Malykh (squashed)
GitOrigin-RevId: b8b6addb65ad2b6b52c3a0c84ef43c3986778077
This commit is contained in:
committed by
intellij-monorepo-bot
parent
650e8b2238
commit
83dc1fbc2d
@@ -30,6 +30,9 @@ import java.util.Collection;
|
||||
|
||||
|
||||
public class PyQualifiedNameProvider implements QualifiedNameProvider {
|
||||
|
||||
public static final char SEPARATOR = '.';
|
||||
|
||||
@Override
|
||||
public PsiElement adjustElementToCopy(PsiElement element) {
|
||||
return element instanceof PyClass || element instanceof PyFunction ? element : null;
|
||||
@@ -44,11 +47,11 @@ public class PyQualifiedNameProvider implements QualifiedNameProvider {
|
||||
if (element instanceof PyFunction) {
|
||||
final PyClass containingClass = ((PyFunction)element).getContainingClass();
|
||||
if (containingClass != null) {
|
||||
return containingClass.getQualifiedName() + "#" + ((PyFunction)element).getName();
|
||||
return containingClass.getQualifiedName() + SEPARATOR + ((PyFunction)element).getName();
|
||||
}
|
||||
else {
|
||||
return ((PyFunction)element).getQualifiedName();
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -64,12 +67,13 @@ public class PyQualifiedNameProvider implements QualifiedNameProvider {
|
||||
if (!functions.isEmpty()) {
|
||||
return ContainerUtil.getFirstItem(functions);
|
||||
}
|
||||
final int sharpIdx = fqn.indexOf("#");
|
||||
final int sharpIdx = fqn.lastIndexOf(SEPARATOR);
|
||||
|
||||
if (sharpIdx > -1) {
|
||||
final String className = StringUtil.getPackageName(fqn, '#');
|
||||
final String className = StringUtil.getPackageName(fqn, SEPARATOR);
|
||||
aClass = PyClassNameIndex.findClass(className, project);
|
||||
if (aClass != null) {
|
||||
final String memberName = StringUtil.getShortName(fqn, '#');
|
||||
final String memberName = StringUtil.getShortName(fqn, SEPARATOR);
|
||||
final PyClass nestedClass = aClass.findNestedClass(memberName, false);
|
||||
if (nestedClass != null) return nestedClass;
|
||||
final PyFunction methodByName = aClass.findMethodByName(memberName, false, null);
|
||||
|
||||
Reference in New Issue
Block a user