diff --git a/arduino-core/src/processing/app/Sketch.java b/arduino-core/src/processing/app/Sketch.java index 6c417403ec9..41482bb92ac 100644 --- a/arduino-core/src/processing/app/Sketch.java +++ b/arduino-core/src/processing/app/Sketch.java @@ -22,6 +22,8 @@ public class Sketch { public static final List OTHER_ALLOWED_EXTENSIONS = Arrays.asList("c", "cpp", "h", "hh", "hpp", "s"); public static final List EXTENSIONS = Stream.concat(SKETCH_EXTENSIONS.stream(), OTHER_ALLOWED_EXTENSIONS.stream()).collect(Collectors.toList()); + private final File initialFile; + /** * folder that contains this sketch */ @@ -50,6 +52,7 @@ public int compare(SketchFile x, SketchFile y) { * Any file inside the sketch directory. */ Sketch(File file) throws IOException { + initialFile = file; folder = file.getParentFile(); files = listSketchFiles(true); } @@ -143,6 +146,13 @@ public int getCodeCount() { return files.size(); } + /** + * Returns the initial File used to initialize this Sketch + */ + public File getInitialFile() { + return initialFile; + } + public SketchFile[] getFiles() { return files.toArray(new SketchFile[0]); } diff --git a/arduino-core/src/processing/app/SketchFile.java b/arduino-core/src/processing/app/SketchFile.java index f1341653b57..c9af78a60ca 100644 --- a/arduino-core/src/processing/app/SketchFile.java +++ b/arduino-core/src/processing/app/SketchFile.java @@ -95,7 +95,8 @@ public SketchFile(Sketch sketch, File file) { this.sketch = sketch; this.file = file; FileUtils.SplitFile split = FileUtils.splitFilename(file); - this.primary = split.basename.equals(sketch.getFolder().getName()) + this.primary = (file.equals(sketch.getInitialFile()) + || split.basename.equals(sketch.getFolder().getName())) && Sketch.SKETCH_EXTENSIONS.contains(split.extension); }