mirror of
https://github.com/arduino/Arduino.git
synced 2025-03-11 08:29:19 +01:00
Clean up pde to ino renaming
This makes a few related changes: - `FileUtils.replaceExtension()` is introduced to handle replacing the .pde extension with .ino. - Instead of iterating .pde files on disk, this iterates SketchFiles in memory, saving another lookup from filename -> SketchFile later. - `SketchController.renameCodeToInoExtension()` is removed. Now it no longer needs to look up the SketchFile and FileUtils handles the extension replacement, this method did not have any reason to exist anymore. - Instead of hardcoding the .pde extension, a new Sketch.OLD_SKETCH_EXTENSIONS constant is introduced.
This commit is contained in:
parent
98c0e0f841
commit
57a237752d
@ -41,6 +41,7 @@ import java.io.File;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@ -448,13 +449,13 @@ public class SketchController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// rename .pde files to .ino
|
// rename .pde files to .ino
|
||||||
File mainFile = new File(sketch.getMainFilePath());
|
List<SketchFile> oldFiles = new ArrayList<>();
|
||||||
File mainFolder = mainFile.getParentFile();
|
for (SketchFile file : sketch.getFiles()) {
|
||||||
File[] pdeFiles = mainFolder.listFiles((dir, name) -> {
|
if (file.isExtension(Sketch.OLD_SKETCH_EXTENSIONS))
|
||||||
return name.toLowerCase().endsWith(".pde");
|
oldFiles.add(file);
|
||||||
});
|
}
|
||||||
|
|
||||||
if (pdeFiles != null && pdeFiles.length > 0) {
|
if (oldFiles.size() > 0) {
|
||||||
if (PreferencesData.get("editor.update_extension") == null) {
|
if (PreferencesData.get("editor.update_extension") == null) {
|
||||||
Object[] options = {tr("OK"), tr("Cancel")};
|
Object[] options = {tr("OK"), tr("Cancel")};
|
||||||
int result = JOptionPane.showOptionDialog(editor,
|
int result = JOptionPane.showOptionDialog(editor,
|
||||||
@ -479,8 +480,10 @@ public class SketchController {
|
|||||||
|
|
||||||
if (PreferencesData.getBoolean("editor.update_extension")) {
|
if (PreferencesData.getBoolean("editor.update_extension")) {
|
||||||
// Do rename of all .pde files to new .ino extension
|
// Do rename of all .pde files to new .ino extension
|
||||||
for (File pdeFile : pdeFiles)
|
for (SketchFile file : oldFiles) {
|
||||||
renameCodeToInoExtension(pdeFile);
|
File newName = FileUtils.replaceExtension(file.getFile(), Sketch.DEFAULT_SKETCH_EXTENSION);
|
||||||
|
file.renameTo(newName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -488,20 +491,6 @@ public class SketchController {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private boolean renameCodeToInoExtension(File pdeFile) {
|
|
||||||
for (SketchFile file : sketch.getFiles()) {
|
|
||||||
if (!file.getFile().equals(pdeFile))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
String pdeName = pdeFile.getPath();
|
|
||||||
pdeName = pdeName.substring(0, pdeName.length() - 4) + ".ino";
|
|
||||||
return file.renameTo(new File(pdeName));
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles 'Save As' for a sketch.
|
* Handles 'Save As' for a sketch.
|
||||||
* <P>
|
* <P>
|
||||||
|
@ -14,9 +14,9 @@ import static processing.app.I18n.tr;
|
|||||||
* This represents a single sketch, consisting of one or more files.
|
* This represents a single sketch, consisting of one or more files.
|
||||||
*/
|
*/
|
||||||
public class Sketch {
|
public class Sketch {
|
||||||
|
|
||||||
public static final String DEFAULT_SKETCH_EXTENSION = "ino";
|
public static final String DEFAULT_SKETCH_EXTENSION = "ino";
|
||||||
public static final List<String> SKETCH_EXTENSIONS = Arrays.asList(DEFAULT_SKETCH_EXTENSION, "pde");
|
public static final List<String> OLD_SKETCH_EXTENSIONS = Arrays.asList("pde");
|
||||||
|
public static final List<String> SKETCH_EXTENSIONS = Stream.concat(Stream.of(DEFAULT_SKETCH_EXTENSION), OLD_SKETCH_EXTENSIONS.stream()).collect(Collectors.toList());
|
||||||
public static final List<String> OTHER_ALLOWED_EXTENSIONS = Arrays.asList("c", "cpp", "h", "hh", "hpp", "s");
|
public static final List<String> OTHER_ALLOWED_EXTENSIONS = Arrays.asList("c", "cpp", "h", "hh", "hpp", "s");
|
||||||
public static final List<String> EXTENSIONS = Stream.concat(SKETCH_EXTENSIONS.stream(), OTHER_ALLOWED_EXTENSIONS.stream()).collect(Collectors.toList());
|
public static final List<String> EXTENSIONS = Stream.concat(SKETCH_EXTENSIONS.stream(), OTHER_ALLOWED_EXTENSIONS.stream()).collect(Collectors.toList());
|
||||||
|
|
||||||
|
@ -245,6 +245,26 @@ public class FileUtils {
|
|||||||
return extensions.contains(extension.toLowerCase());
|
return extensions.contains(extension.toLowerCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the given filename with the extension replaced by the one
|
||||||
|
* given. If the filename does not have an extension yet, one is
|
||||||
|
* added.
|
||||||
|
*/
|
||||||
|
public static String replaceExtension(String filename, String extension) {
|
||||||
|
SplitFile split = splitFilename(filename);
|
||||||
|
split.extension = extension;
|
||||||
|
return split.join();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the given filename with the extension replaced by the one
|
||||||
|
* given. If the filename does not have an extension yet, one is
|
||||||
|
* added.
|
||||||
|
*/
|
||||||
|
public static File replaceExtension(File file, String extension) {
|
||||||
|
return new File(file.getParentFile(), replaceExtension(file.getName(), extension));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The result of a splitFilename call.
|
* The result of a splitFilename call.
|
||||||
*/
|
*/
|
||||||
@ -256,6 +276,13 @@ public class FileUtils {
|
|||||||
|
|
||||||
public String basename;
|
public String basename;
|
||||||
public String extension;
|
public String extension;
|
||||||
|
|
||||||
|
public String join() {
|
||||||
|
if (extension.equals(""))
|
||||||
|
return basename;
|
||||||
|
else
|
||||||
|
return basename + "." + extension;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user