Skip to content

Commit 27a2497

Browse files
author
jantje
committed
performance boost for create new sketch
1 parent dd9ed9c commit 27a2497

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

io.sloeber.core/src/io/sloeber/core/api/LibraryManager.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -455,9 +455,9 @@ private static TreeMap<String, IPath> getLibExampleFolders(File LibRoot) {
455455
File Lib_examples = LibRoot.toPath().resolve(curLib).resolve("examples").toFile();//$NON-NLS-1$
456456
File Lib_Examples = LibRoot.toPath().resolve(curLib).resolve("Examples").toFile();//$NON-NLS-1$
457457
if (Lib_examples.isDirectory()) {
458-
examples.putAll(getExamplesFromFolder(libID, Lib_examples));
458+
examples.putAll(getExamplesFromFolder(libID, Lib_examples, 2));
459459
} else if (Lib_Examples.isDirectory()) {
460-
examples.putAll(getExamplesFromFolder(libID, Lib_Examples));
460+
examples.putAll(getExamplesFromFolder(libID, Lib_Examples, 2));
461461
} else // nothing found directly so maybe this is a version
462462
// based lib
463463
{
@@ -470,9 +470,9 @@ private static TreeMap<String, IPath> getLibExampleFolders(File LibRoot) {
470470
Lib_Examples = LibRoot.toPath().resolve(curLib).resolve(versions[0]).resolve("Examples") //$NON-NLS-1$
471471
.toFile();
472472
if (Lib_examples.isDirectory()) {
473-
examples.putAll(getExamplesFromFolder(libID, Lib_examples));
473+
examples.putAll(getExamplesFromFolder(libID, Lib_examples, 2));
474474
} else if (Lib_Examples.isDirectory()) {
475-
examples.putAll(getExamplesFromFolder(libID, Lib_Examples));
475+
examples.putAll(getExamplesFromFolder(libID, Lib_Examples, 2));
476476
}
477477
}
478478
}
@@ -488,19 +488,20 @@ private static TreeMap<String, IPath> getLibExampleFolders(File LibRoot) {
488488
*
489489
* @param File
490490
*/
491-
private static TreeMap<String, IPath> getExamplesFromFolder(String prefix, File location) {
491+
private static TreeMap<String, IPath> getExamplesFromFolder(String prefix, File location, int maxDepth) {
492492
TreeMap<String, IPath> examples = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
493493
File[] children = location.listFiles();
494-
if (children == null) {
494+
if ((children == null) || (maxDepth <= 0)) {
495495
// Either dir does not exist or is not a directory
496496
return examples;
497497
}
498+
int newmaxDepth = maxDepth - 1;
498499
for (File exampleFolder : children) {
499-
String extension = FilenameUtils.getExtension(exampleFolder.toString());
500+
String extension = FilenameUtils.getExtension(exampleFolder.toString()).toLowerCase();
500501
if (exampleFolder.isDirectory()) {
501-
examples.putAll(getExamplesFromFolder(prefix + '/' + exampleFolder.getName(), exampleFolder));
502-
} else if (INO.equalsIgnoreCase(extension) || PDE.equalsIgnoreCase(extension)
503-
|| CPP.equalsIgnoreCase(extension) || C.equalsIgnoreCase(extension)) {
502+
examples.putAll(
503+
getExamplesFromFolder(prefix + '/' + exampleFolder.getName(), exampleFolder, newmaxDepth));
504+
} else if (INO.equals(extension) || PDE.equals(extension) || CPP.equals(extension) || C.equals(extension)) {
504505
examples.put(prefix, new Path(location.toString()));
505506
}
506507
}
@@ -532,7 +533,7 @@ public static TreeMap<String, IPath> getAllArduinoIDEExamples() {
532533
File exampleLocation = ConfigurationPreferences.getInstallationPathExamples().toFile();
533534

534535
if (exampleLocation.exists()) {
535-
examples.putAll(getExamplesFromFolder(EXAMPLE_DESCRIPTOR_PREFIX , exampleLocation));
536+
examples.putAll(getExamplesFromFolder(EXAMPLE_DESCRIPTOR_PREFIX, exampleLocation, 100));
536537
}
537538
return examples;
538539
}

0 commit comments

Comments
 (0)