mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Refactored to actually compare sdk instead of weight providing
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user