diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java b/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java index f26289533..b457fe062 100644 --- a/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java +++ b/arduino-core/src/cc/arduino/contributions/packages/ContributionsIndexer.java @@ -327,6 +327,15 @@ public class ContributionsIndexer { packages.add(targetPackage); } } + + Collections.sort(packages, new Comparator() { + @Override + public int compare(TargetPackage p1, TargetPackage p2) { + assert p1.getId() != null && p2.getId() != null; + return p1.getId().toLowerCase().compareTo(p2.getId().toLowerCase()); + } + }); + return packages; } diff --git a/arduino-core/src/processing/app/BaseNoGui.java b/arduino-core/src/processing/app/BaseNoGui.java index d365b80ea..4035fbbc9 100644 --- a/arduino-core/src/processing/app/BaseNoGui.java +++ b/arduino-core/src/processing/app/BaseNoGui.java @@ -621,10 +621,10 @@ public class BaseNoGui { } indexer.syncWithFilesystem(getHardwareFolder()); - packages = new HashMap(); + packages = new LinkedHashMap(); loadHardware(getHardwareFolder()); - loadHardware(getSketchbookHardwareFolder()); loadContributedHardware(indexer); + loadHardware(getSketchbookHardwareFolder()); createToolPreferences(indexer); librariesIndexer = new LibrariesIndexer(BaseNoGui.getSettingsFolder(), indexer);