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:
+1
-2
@@ -1,7 +1,6 @@
|
||||
package com.jetbrains.python.inspections.quickfix;
|
||||
|
||||
import com.intellij.codeInsight.CodeInsightUtilBase;
|
||||
import com.intellij.codeInsight.intention.HighPriorityAction;
|
||||
import com.intellij.codeInsight.template.TemplateBuilder;
|
||||
import com.intellij.codeInsight.template.TemplateBuilderFactory;
|
||||
import com.intellij.codeInspection.LocalQuickFix;
|
||||
@@ -22,7 +21,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
*
|
||||
* QuickFix to add parameter to unresolved reference
|
||||
*/
|
||||
public class UnresolvedReferenceAddParameterQuickFix implements LocalQuickFix, HighPriorityAction {
|
||||
public class UnresolvedReferenceAddParameterQuickFix implements LocalQuickFix {
|
||||
private String myName;
|
||||
public UnresolvedReferenceAddParameterQuickFix(String name) {
|
||||
myName = name;
|
||||
|
||||
@@ -8,12 +8,14 @@ import com.intellij.openapi.projectRoots.Sdk;
|
||||
import com.intellij.openapi.roots.FileIndexFacade;
|
||||
import com.intellij.openapi.roots.OrderRootType;
|
||||
import com.intellij.openapi.roots.ProjectRootManager;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.search.*;
|
||||
import com.jetbrains.python.sdk.PythonSdkType;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -135,6 +137,27 @@ public class PyProjectScopeBuilder extends ProjectScopeBuilderImpl {
|
||||
return findLibDir(sdk.getRootProvider().getFiles(OrderRootType.CLASSES));
|
||||
}
|
||||
|
||||
public static VirtualFile findVirtualEnvLibDir(Sdk sdk) {
|
||||
VirtualFile[] classVFiles = sdk.getRootProvider().getFiles(OrderRootType.CLASSES);
|
||||
String homePath = sdk.getHomePath();
|
||||
if (homePath != null) {
|
||||
File root = PythonSdkType.getVirtualEnvRoot(homePath);
|
||||
if (root != null) {
|
||||
File libRoot = new File(root, "lib");
|
||||
File[] versionRoots = libRoot.listFiles();
|
||||
if (versionRoots != null && versionRoots.length == 1) {
|
||||
libRoot = versionRoots[0];
|
||||
}
|
||||
for (VirtualFile file : classVFiles) {
|
||||
if (FileUtil.pathsEqual(file.getPath(), libRoot.getPath())) {
|
||||
return file;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static VirtualFile findLibDir(VirtualFile[] files) {
|
||||
for (VirtualFile file : files) {
|
||||
|
||||
@@ -771,11 +771,11 @@ public class PythonSdkType extends SdkType {
|
||||
if (pythonSdk != null) {
|
||||
final VirtualFile libDir = PyProjectScopeBuilder.findLibDir(pythonSdk);
|
||||
if (libDir != null && VfsUtilCore.isAncestor(libDir, vFile, false)) {
|
||||
final VirtualFile sitePackages = libDir.findChild(PyNames.SITE_PACKAGES);
|
||||
if (sitePackages != null && VfsUtilCore.isAncestor(sitePackages, vFile, false)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
return isNotSitePackages(vFile, libDir);
|
||||
}
|
||||
final VirtualFile venvLibDir = PyProjectScopeBuilder.findVirtualEnvLibDir(pythonSdk);
|
||||
if (venvLibDir != null && VfsUtilCore.isAncestor(venvLibDir, vFile, false)) {
|
||||
return isNotSitePackages(vFile, venvLibDir);
|
||||
}
|
||||
final VirtualFile skeletonsDir = findSkeletonsDir(pythonSdk);
|
||||
if (skeletonsDir != null &&
|
||||
@@ -786,6 +786,14 @@ public class PythonSdkType extends SdkType {
|
||||
return false;
|
||||
}
|
||||
|
||||
private static boolean isNotSitePackages(VirtualFile vFile, VirtualFile libDir) {
|
||||
final VirtualFile sitePackages = libDir.findChild(PyNames.SITE_PACKAGES);
|
||||
if (sitePackages != null && VfsUtilCore.isAncestor(sitePackages, vFile, false)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static Sdk findPython2Sdk(@Nullable Module module) {
|
||||
Sdk moduleSDK = findPythonSdk(module);
|
||||
|
||||
@@ -17,6 +17,7 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.projectRoots.Sdk;
|
||||
import com.intellij.openapi.util.Computable;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.profile.codeInspection.InspectionProjectProfileManager;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
@@ -24,6 +25,7 @@ import com.intellij.psi.PsiWhiteSpace;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.jetbrains.python.PythonFileType;
|
||||
import com.jetbrains.python.PythonHelpersLocator;
|
||||
import com.jetbrains.python.inspections.PyPep8Inspection;
|
||||
import com.jetbrains.python.inspections.quickfix.ReformatFix;
|
||||
@@ -79,6 +81,10 @@ public class Pep8ExternalAnnotator extends ExternalAnnotator<Pep8ExternalAnnotat
|
||||
@Nullable
|
||||
@Override
|
||||
public State collectionInformation(@NotNull PsiFile file) {
|
||||
VirtualFile vFile = file.getVirtualFile();
|
||||
if (vFile == null || vFile.getFileType() != PythonFileType.INSTANCE) {
|
||||
return null;
|
||||
}
|
||||
Sdk sdk = PythonSdkType.findPythonSdk(ModuleUtilCore.findModuleForPsiElement(file));
|
||||
|
||||
if (PythonSdkType.isRemote(sdk)) {
|
||||
|
||||
Reference in New Issue
Block a user