mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
PY-23320: Cache qualified names
This commit is contained in:
@@ -24,6 +24,9 @@ import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VfsUtilCore;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.CachedValueProvider.Result;
|
||||
import com.intellij.psi.util.CachedValuesManager;
|
||||
import com.intellij.psi.util.PsiModificationTracker;
|
||||
import com.intellij.psi.util.QualifiedName;
|
||||
import com.jetbrains.python.PyNames;
|
||||
import com.jetbrains.python.codeInsight.controlflow.ScopeOwner;
|
||||
@@ -174,6 +177,12 @@ public class QualifiedNameFinder {
|
||||
|
||||
@Nullable
|
||||
public static String getQualifiedName(@NotNull PyElement element) {
|
||||
return CachedValuesManager.getCachedValue(element, () ->
|
||||
new Result<>(getQualifiedNameInner(element), PsiModificationTracker.MODIFICATION_COUNT));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static String getQualifiedNameInner(@NotNull final PyElement element) {
|
||||
final String name = element.getName();
|
||||
if (name != null) {
|
||||
final ScopeOwner owner = ScopeUtil.getScopeOwner(element);
|
||||
|
||||
Reference in New Issue
Block a user