mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -16,6 +16,9 @@
|
||||
package com.jetbrains.python.psi.resolve;
|
||||
|
||||
import com.intellij.openapi.extensions.Extensions;
|
||||
import com.intellij.openapi.fileTypes.ExtensionFileNameMatcher;
|
||||
import com.intellij.openapi.fileTypes.FileNameMatcher;
|
||||
import com.intellij.openapi.fileTypes.FileTypeManager;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleUtilCore;
|
||||
import com.intellij.openapi.projectRoots.Sdk;
|
||||
@@ -30,6 +33,7 @@ import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.QualifiedName;
|
||||
import com.intellij.util.containers.HashSet;
|
||||
import com.jetbrains.python.PyNames;
|
||||
import com.jetbrains.python.PythonFileType;
|
||||
import com.jetbrains.python.psi.*;
|
||||
import com.jetbrains.python.psi.impl.*;
|
||||
import com.jetbrains.python.psi.types.PyModuleType;
|
||||
@@ -346,8 +350,16 @@ public class ResolveImportUtil {
|
||||
|
||||
@Nullable
|
||||
private static PsiFile findPyFileInDir(PsiDirectory dir, String referencedName) {
|
||||
final PsiFile file = dir.findFile(referencedName + PyNames.DOT_PY);
|
||||
// findFile() does case-insensitive search, and we need exactly matching case (see PY-381)
|
||||
PsiFile file = dir.findFile(referencedName + PyNames.DOT_PY);
|
||||
if (file == null) {
|
||||
final List<FileNameMatcher> associations = FileTypeManager.getInstance().getAssociations(PythonFileType.INSTANCE);
|
||||
for (FileNameMatcher association : associations) {
|
||||
if (association instanceof ExtensionFileNameMatcher) {
|
||||
file = dir.findFile(referencedName + "." + ((ExtensionFileNameMatcher)association).getExtension());
|
||||
if (file != null) break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (file != null && FileUtil.getNameWithoutExtension(file.getName()).equals(referencedName)) {
|
||||
return file;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user