This allows splitting a filename into a basename and extension.
`FileUtils.hasExtension()` is updated to use it, in favour of the
String.split-based approached it used before.
When a sketch has unsaved changes, a temporary copy of the sketch is
made with those changes applied. This copy is then passed to
arduino-builder.
Previously, this temporary copy was kept around and only deleted when
the IDE was closed. However, all files were written to it again on every
build, so keeping the old files around did not serve any real purpose.
When a file was renamed in the IDE, the original name would still be
present in the temporary copy, and could cause linker errors because
both were compiled.
This commit makes sure the temporary copy is deleted after every build,
instead of at IDE exit, which fixes this problem with renames.
When a file is deleted from the sketch, the file would also be deleted
from the temporary copy, presumably to fix this same problem for
deletes (but renames were forgotten). With this commit, this special
handling for deleting files is no longer needed, so it is removed.
This fixes#4335
The error triggered inside ContributioIndexer.mergeContributions()
while trying to remove a platform:
if (platform != null) {
targetPackage.getPlatforms().remove(platform);
}
remove() method calls ContributedPlatform.equals() to find the
element to remove but since the parentPackage fields are resolved
*after* merging contributions, the equls() method will fail with
a NullPointerException.
Fonts on Windows became ugly, reverting whole the commit since it brings no visible changes to Linux and OSX
This reverts commit 6c5e58445402597f0472fbf4da9e518ff38b399b.
back to the IDE. Instead of having just stdour and stderr, stdout only is
used, but each message has a log level: info, warn, debug, error
Plain stdout/stderr are still used by child processes
Adds ability to update the firmware of non-SSH boards using TXT
parameters from mDNS
Three new TXT keys are added (defaults are capital):
ssh_upload=YES/no
tcp_check=YES/no
auth_upload=yes/NO
"ssh_upload" controls which Uploader should be used. Defaults to
SSHUploader
"tcp_check" controls wether TCP reachability test should be performed.
Defaults to "yes". Boards that have few TCP ports available, can use
"no" to skip the check and update over UDP (ESP8266 for example).
"auth_upload" controls wether authentication is required (only for
"ssh_upload=no").
One new pattern and two new variables are available.
Var "network.port" resolves to the advertised by mDNS device port.
Var "network.password" resolves to the entered device password if
upload authentication is used, else it's empty string.
Pattern "upload.network_pattern" is usable if the platform is using
different tool/command to do network updates. If not defined,
"upload.pattern" will be used instead.