Refactored to actually compare sdk instead of weight providing

This commit is contained in:
Kiryl Chetyrbak
2017-04-12 17:36:40 -04:00
parent 0086ec4a70
commit 2bf4d8e5ce
3 changed files with 8 additions and 9 deletions
+1 -1
View File
@@ -658,7 +658,7 @@
<extensionPoint qualifiedName="Pythonid.pythonFlavorProvider" interface="com.jetbrains.python.sdk.flavors.PythonFlavorProvider"/>
<extensionPoint qualifiedName="Pythonid.debugSessionFactory" interface="com.jetbrains.python.debugger.PyDebugSessionFactory"/>
<extensionPoint qualifiedName="Pythonid.customPackageIdentifier" interface="com.jetbrains.python.psi.PyCustomPackageIdentifier"/>
<extensionPoint qualifiedName="Pythonid.pythonSdkWeightProvider" interface="com.jetbrains.python.sdk.PySdkWeightProvider" />
<extensionPoint qualifiedName="Pythonid.pythonSdkComparator" interface="com.jetbrains.python.sdk.PySdkComparator" />
</extensionPoints>
<extensions defaultExtensionNs="Pythonid">
@@ -32,11 +32,10 @@ public class PreferredSdkComparator implements Comparator<Sdk> {
@Override
public int compare(Sdk o1, Sdk o2) {
for (PySdkWeightProvider provider : Extensions.getExtensions(PySdkWeightProvider.EP_NAME)) {
int weight1 = provider.getWeight(o1);
int weight2 = provider.getWeight(o2);
if(weight1 != weight2) {
return weight2 - weight1;
for (PySdkComparator comparator : Extensions.getExtensions(PySdkComparator.EP_NAME)) {
int result = comparator.compare(o1, o2);
if(result != 0) {
return result;
}
}
@@ -21,8 +21,8 @@ import com.intellij.openapi.projectRoots.Sdk;
/**
* Created by kirylch on 3/29/2017.
*/
public interface PySdkWeightProvider {
ExtensionPointName<PySdkWeightProvider> EP_NAME = ExtensionPointName.create("Pythonid.pythonSdkWeightProvider");
public interface PySdkComparator {
ExtensionPointName<PySdkComparator> EP_NAME = ExtensionPointName.create("Pythonid.pythonSdkComparator");
int getWeight(Sdk sdk);
int compare(Sdk sdk1, Sdk sdk2);
}