mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
put sdks to create new project interpreter combobox properly
This commit is contained in:
+7
-2
@@ -28,6 +28,7 @@ import com.jetbrains.python.sdk.PythonSdkAdditionalData;
|
||||
import com.jetbrains.python.sdk.PythonSdkType;
|
||||
import com.jetbrains.python.sdk.flavors.PythonSdkFlavor;
|
||||
import com.jetbrains.python.sdk.flavors.VirtualEnvSdkFlavor;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.*;
|
||||
@@ -69,7 +70,7 @@ public class PyConfigurableInterpreterList {
|
||||
}
|
||||
}
|
||||
|
||||
public List<Sdk> getAllPythonSdks(final Project project) {
|
||||
public List<Sdk> getAllPythonSdks(@Nullable final Project project) {
|
||||
List<Sdk> result = new ArrayList<Sdk>();
|
||||
for (Sdk sdk : getModel().getSdks()) {
|
||||
if (sdk.getSdkType() instanceof PythonSdkType) {
|
||||
@@ -94,7 +95,7 @@ public class PyConfigurableInterpreterList {
|
||||
final LanguageLevel level2 = flavor2 != null ? flavor2.getLanguageLevel(o2) : LanguageLevel.getDefault();
|
||||
|
||||
if (isVEnv1) {
|
||||
if (associatedWithCurrent(o1, project)) return -1;
|
||||
if (project != null && associatedWithCurrent(o1, project)) return -1;
|
||||
if (isVEnv2) {
|
||||
final int compare = Comparing.compare(level1, level2);
|
||||
if (compare != 0) return -compare;
|
||||
@@ -138,4 +139,8 @@ public class PyConfigurableInterpreterList {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Sdk> getAllPythonSdks() {
|
||||
return getAllPythonSdks(null);
|
||||
}
|
||||
}
|
||||
|
||||
+2
-13
@@ -31,6 +31,7 @@ import com.intellij.ui.ComboboxWithBrowseButton;
|
||||
import com.intellij.ui.components.JBCheckBox;
|
||||
import com.intellij.ui.components.JBLabel;
|
||||
import com.jetbrains.python.PythonSdkChooserCombo;
|
||||
import com.jetbrains.python.configuration.PyConfigurableInterpreterList;
|
||||
import com.jetbrains.python.configuration.VirtualEnvProjectFilter;
|
||||
import com.jetbrains.python.packaging.PyExternalProcessException;
|
||||
import com.jetbrains.python.packaging.PyPackage;
|
||||
@@ -38,8 +39,6 @@ import com.jetbrains.python.packaging.PyPackageManager;
|
||||
import com.jetbrains.python.packaging.PyPackageManagerImpl;
|
||||
import com.jetbrains.python.remote.PythonRemoteInterpreterManager;
|
||||
import com.jetbrains.python.remote.RemoteProjectSettings;
|
||||
import com.jetbrains.python.sdk.PreferredSdkComparator;
|
||||
import com.jetbrains.python.sdk.PyDetectedSdk;
|
||||
import com.jetbrains.python.sdk.PythonSdkType;
|
||||
import com.jetbrains.python.sdk.flavors.JythonSdkFlavor;
|
||||
import com.jetbrains.python.sdk.flavors.PyPySdkFlavor;
|
||||
@@ -54,8 +53,6 @@ import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.beans.PropertyChangeEvent;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -71,16 +68,8 @@ public class PythonNewDirectoryProjectDialog extends NewDirectoryProjectDialog {
|
||||
super(project);
|
||||
myProject = project;
|
||||
|
||||
final List<Sdk> sdks = PythonSdkType.getAllSdks();
|
||||
final List<PythonSdkFlavor> flavors = PythonSdkFlavor.getApplicableFlavors();
|
||||
for (PythonSdkFlavor flavor : flavors) {
|
||||
final Collection<String> strings = flavor.suggestHomePaths();
|
||||
for (String string : strings) {
|
||||
sdks.add(new PyDetectedSdk(string));
|
||||
}
|
||||
}
|
||||
final List<Sdk> sdks = PyConfigurableInterpreterList.getInstance(myProject).getAllPythonSdks();
|
||||
VirtualEnvProjectFilter.removeAllAssociated(sdks);
|
||||
Collections.sort(sdks, PreferredSdkComparator.INSTANCE);
|
||||
final Sdk preferred = sdks.isEmpty() ? null : sdks.iterator().next();
|
||||
mySdkCombo = new PythonSdkChooserCombo(project, sdks, new Condition<Sdk>() {
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user