1
0
mirror of https://github.com/arduino/Arduino.git synced 2024-12-02 13:24:12 +01:00
Commit Graph

711 Commits

Author SHA1 Message Date
Matthijs Kooijman
f3d8ba219f Remove support for a "code" folder in sketches
When adding a file to a sketch (using drag and drop, or the Sketch ->
Add file... menu item), .o, .a and .so files would be saved into a
"code" subdirectory of the sketch. This seems to be a remnant of
processing, where also .dll and .jar files could be added to a sketch to
be used. In the Arduino IDE, these code files serve no special purpose,
and are not treated specially, so it makes no sense to keep this code
around.

One implication of this is that when "save as" is used, a "code"
subdirectory is no longer copied, which might affect people using this
"code" subdirectory for other purposes.

Similarly, there is support for a "data" subdirectory, in which all
other files (that are not sketch source files) are stored, and which is
also copied on "save as". Support for this folder is kept intact, since
this appears occasionally used (the ESP8266 project uses it to store and
upload additional data files, for example).

This change was discussed on the mailing list in the "Anyone using
"data" and "code" subdirectories in sketches?" thread:
https://groups.google.com/a/arduino.cc/forum/#!msg/developers/zPlraPq55ho/ejrLqITnAgAJ
2016-08-26 16:42:44 +02:00
Matthijs Kooijman
31284feb9b Merge SketchData.sortCodes() into addCode()
By now, all calls to `addCode()` were followed by a call to
`sortCodes()`, and it seems like a task for SketchData to keep its list
sorted. Previously, this separation made some sense, since `addCode()`
was also used while loading a sketch, and you would only want to sort
once. Now, sketch loading uses a SortedSet, so this is no longer a
requirement.
2016-08-26 16:42:44 +02:00
Matthijs Kooijman
f7fdd08695 Do not show invalid sketch filename warnings on reload
With this commit, any warnings about invalid sketch filenames are not
shown when the sketch is reloaded. This reloading happens whenever the
IDE window is focused, so re-logging warnings all the time isn't really
helpful, so this hides them.
2016-08-26 16:42:44 +02:00
Matthijs Kooijman
8725bb1ec4 Clean up sketch loading
Previously, the Sketch constructor called its `load()` function, which
called the `SketchData.load()` function to load files and then
`Editor.sketchLoaded()` to initialize the GUI with the loaded files.
When external editing was enabled, `Sketch.load()` was called again
when activating the Arduino app, to reload the entire sketch.

With this commit, the `Sketch.load()` function is removed, and
`SketchData.load()` is called from the SketchData constructor. Instead
of Sketch calling `Editor.sketchLoaded()`, that method is renamed
to `createTabs()` and called by `Editor.HandleOpenInternal()` directly
after creating the Sketch object.

Handling of external editor mode has also changed. When the Arduino
application is activated, instead of fully reloading the sketch (through
the now-absent `Sketch.load()` method), the new `SketchData.reload()`
method is called to reload the list of files in the sketch. If it
changed, all tabs are re-created. If not, only the current tab is
reloaded. When the user switches from one tab to another, that tab is
also reloaded. This ensures that the visible  tab is always up-to-date,
without needlessly reloading all tabs all the time. When external
editing mode is enabled or disabled, all tabs are reloaded too, to make
sure they are up-to-date.

When re-creating all tabs, no attempt is made to preserve the currently
selected tab. Since adding or removing files happens rarely, this should
not be a problem. When files are changed, the currently selected tab is
implicitly preserved (because the tab is reloaded, not recreated). The
caret (and thus scroll) position is preserved by temporarily changing
the caret update policy, so the caret does not move while the text is
swapped out. This happens in `EditorTab.setText()` now, so other callers
can also profit from it.

To support checking for a changed list of files in
`SketchData.reload()`, a `SketchCode.equals()` method is added, that
just checks if the filenames are equal. Additionally, the loading of the
file list for a sketch has now moved from `SketchData.load()` to
`SketchData.listSketchFiles()`, so `reload()` can also use it. At the
same time, this loading is greatly simplified by using a sorted Set and
`FileUtils.listFiles()`.

In external editor mode, to ensure that during compilation the version
from disk is always used instead of the in-memory version, EditorTab
detaches itself from its SketchCode, so SketchCode has no access to the
(possibly outdated) in-memory contents of the file.
2016-08-26 16:42:44 +02:00
Matthijs Kooijman
055cfc8df0 Simplify sorting in SketchData
Instead of manually sorting the primary file at the start, and fiddling
to keep it there during resorting, this just modifies the sorting
comparator used to sort any primary files at the start. This is slightly
more generic than needed, also supporting multiple primary files, to at
least not break the Comparator preconditions when for some reason there
are multiple primary files.
2016-08-26 16:42:44 +02:00
Matthijs Kooijman
052764fd58 Simplify SketchData.removeCode() and indexOfCode()
These used to iterate over the list of SketchCodes to find the right
one, and if so, let the List do the same again to remove it or find the
index. This can be simplified to just let list take care of things
instead.

Technically, there is a small difference, since `List.remove()`  and
`List.indexOf()` will check using `equals()`, while the original code
used `==`, but these should be effectively the same here. Also, the
original code first used `==` to see if the object was present and then
let List find it again using `equals()`, so that was a bit inconsistent
anyway.
2016-08-26 16:42:44 +02:00
Matthijs Kooijman
6715f41c0e Let SketchCode track if it is the primary file
This makes checking for the primary file easier, without having to know
the index of a file in the list of tabs, or relying on the fact that the
primary file is always first (it still is, though).

This changes some places in Sketch to use the new
`SketchCode.isPrimary()` method, but there probably are a lot more
places in the code that could be start to use it as well.
2016-08-26 16:42:44 +02:00
Matthijs Kooijman
ab14c63f58 Remove SketchData.setName()
It was not used, and since it only updated the `name` attribute, but not
the corresponding `file` attribute, nor actually handled renaming actual
files, having this method around would actually be harmful, so just drop
it.
2016-08-26 16:42:44 +02:00
Matthijs Kooijman
6c2a94ecc5 Remove SketchCodeDocument
This class served no purpose anymore, so it can be removed. The
`SketchCode.getMetadata()` and `setMetaData()` methods only served to
keep track of a SketchCodeDocument instance (and were no longer used),
so these are removed too, just like some SketchCode constructors dealing
with this metadata object.
2016-08-26 16:42:44 +02:00
Matthijs Kooijman
ca573351bb Do not store file contents in SketchCode
Now that each file in the sketch has its own text area in the GUI, it is
no longer needed to store the (possibly modified) contents of each file
inside SketchCode. Keeping the contents in the text area is sufficient.
Doing so allows removing the code that dealt with copying contents from
the text area into the SketchCode instance at the right time, which was
fragile and messy.

However, when compiling a sketch, the current (modified) file contents
still should be used. To allow this, the TextStorage interface is
introduced. This is a simple interface implemented by EditorTab, that
allows the SketchCode class to query the GUI for the current contents.
By using an interface, there is no direct dependency on the GUI code. If
no TextStorage instance is attached to a SketchCode, it will just assume
that the contents are always unmodified and the contents from the file
will be used during compilation.

When not using the GUI (e.g. just compiling something from the
commandline), there is no need to load the file contents from disk at
all, the filenames just have to be passed to arduino-builder and the
compiler. So, the SketchCode constructor no longer calls its `load()`
function, leaving this to the GUI code to call when appropriate. This
also modifies the `SketchCode.load()` function to return the loaded
text, instead of storing it internally.

To still support adding new files to a sketch (whose file does not
exist on disk yet), the EditorTab constructor now allows an initial
contents to be passed in, to be used instead of loading from disk. Only
the empty string is passed for new files now, but this could also be
used for the bare minimum contents of a new sketch later (which is now
down by creating a .ino file in a temporary directory).

Another side effect of this change is that all changes to the contents
now happen through the text area, which keeps track of modifications
already. This allows removing all manual calls to `Sketch.setModified()`
(even more, the entire function is removed, making `Sketch.isModified()`
always check the modification status of the contained files).
2016-08-26 16:42:44 +02:00
Matthijs Kooijman
8f1ae9ba0b Remove SketchCode::getLineCount()
It was not used anymore, and removing it makes subsequent refactoring
easier.
2016-08-26 16:42:44 +02:00
Cristian Maglie
e0ea137737 Imported new translations 2016-08-17 12:37:19 +02:00
Cristian Maglie
4c6d2f4a82 Added new languages ach, kk and te 2016-08-16 13:16:38 +02:00
Cristian Maglie
aea77c889d Fixed some simple warnings 2016-08-16 12:52:24 +02:00
Cristian Maglie
6ac028244e Updated translations 2016-08-16 12:51:44 +02:00
Cristian Maglie
49b98959c5 Correctly handle "-snapshot" and "+build" in semantic versioning
This fix a regression introduced in:

048a8a61 (VersionHelper now correctly strip snapshot info)

actually neither 048a8a61 nor the version before are correct becuase:

048a8a61 - strips all the extra `-snapshot` and `+build`
previous - doesn't handle the case `x.y-snapshot`

Now both are handled correctly and a test has been added to verify this.

To be completely semver compliant we should deny versions in the
format `x.y`, but this will break all legacy version that have been
published until now, so this changed should be postponed for the next
major release of the IDE.

Fix #5251
2016-08-16 11:00:35 +02:00
Cristian Maglie
d5dc479e6b library_index.json is no more bundled.
There is no reason to bundle this file.

If the index file is not available an empty index is
returned by the parser.

Fix #5143
(together with e80c08: Use a specific hardware/package_index_bundled.json)
2016-08-12 17:20:03 +02:00
Cristian Maglie
b695e7ff1e Do not fail if a package_index.json is not present
Since we are not bundling a package_index.json anymore, there is no
need for the timestamp check with the existing package_index.json.
2016-08-12 10:27:35 +02:00
Cristian Maglie
e731fe026f Boards Manager now install tools even if they are available in the IDE bundle
Previously if a 3rd party core would require a tool already bundled
in the IDE then boards manager skipped the installation of that tool.
This is could lead to missing tools if the IDE is upgraded and the
bundled tools may change.

This patch fixes the bug by always installing tools when needed, even
if they are already bundled.
2016-08-11 17:29:13 +02:00
Cristian Maglie
d8470e59f4 Mark built-in tools as readonly and do not remove them when uninstalling
This covers a very convoluted use-case that may be reproduce this way:

1. Using an previous version of the IDE, a new AVR core is installed
   using the board manager.
2. The IDE is then updated so the core installed in 1. is now also the
   bundled one
3. The AVR core installed 1. is now removed using the board manager
4. The board manager will uninstall the (presumably) no longer used tools,
   from the built-in folder leaving, in fact, the IDE without the
   bundled tools that are supposed to be read-only.

This commit fix this bug by actually making the built-in tool read-only
2016-08-11 14:21:54 +02:00
Cristian Maglie
b1f9164c4c Slightly refactored ContributionsIndexer.syncBuiltInHardware()
This is just a small rewrite of the function in a more clear way,
no change in behavior.
2016-08-11 13:33:08 +02:00
Cristian Maglie
e80c085996 Use a specific hardware/package_index_bundled.json. AVR core version to 1.6.13
Previously, during the build, the full package_index.json was downloaded
and distributed with the Arduino IDE.
This lead to a situation where it was difficult to test new AVR cores
before publishing them to the public package_index.json.

Now the bundled AVR core is specificed in the file:
`hardware/package_index_bundled.json`
this index is loaded from the IDE at startup and the package_index.json
is overlayed on it.

This should also solve part of #5143 (Repeatable builds and snapshots of
package/library indexes)
2016-08-11 11:02:03 +02:00
Cristian Maglie
7008f6c57c ContributionsIndexer now has bundled hardware path as a field 2016-08-11 10:57:05 +02:00
Cristian Maglie
048a8a61d6 VersionHelper now correctly strip snapshot info 2016-08-05 18:09:42 +02:00
Cristian Maglie
e0b2cd0ffe Handle invalid versions without NullPointerExceptions 2016-08-05 18:09:42 +02:00
Cristian Maglie
701f4a23df Update revision log and bumped IDE version to 1.6.11 2016-08-05 10:58:08 +02:00
Cristian Maglie
f19bf5cf4c Use plain exec methods on arduino-builder invocation
ApacheCommons do some command-line tweaking that doesnt fit well
with argument passing to arduino-builder, in particular for -prefs
arguments containing spaces.
2016-08-05 10:19:07 +02:00
Cristian Maglie
b4ada94e44 Do not bail out if a required tool is not found
Previously a NullPointer exception was thrown.
Now the build go on and fails when the recipe cannot be replaced
the correct tool path, that is a much more informative error.
2016-08-03 18:51:08 +02:00
Cristian Maglie
723393227c Require tools from referenced core platform if used 2016-08-02 15:16:00 +02:00
Cristian Maglie
4f1b584e71 Slightly refactored tool resolution
This helps the understanding of next commits
2016-08-02 15:15:59 +02:00
Cristian Maglie
3b57462281 Use latest tools version for generic tool.paths properties 2016-08-02 15:15:59 +02:00
Martino Facchin
6f24fa6cec Pass runtime tools to arduino-builder 2016-08-02 15:15:59 +02:00
Cristian Maglie
fa0678f5b7 added 'runtime.tools.packager-name-version.path' property in the global properties map 2016-08-02 12:13:31 +02:00
Cristian Maglie
2c6f6e76c4 Boards tools are resolved using informations from package_index.json 2016-08-02 12:12:00 +02:00
Cristian Maglie
8efed7f2d2 Add reference to packager in tools 2016-08-02 10:45:48 +02:00
Cristian Maglie
44b748af7b Updated translations strings 2016-07-25 16:32:02 +02:00
Cristian Maglie
0ebd416912 Fixed wrong translation 2016-07-25 15:36:05 +02:00
Cristian Maglie
8320479bb0 Updated translations 2016-07-25 13:38:30 +02:00
Sandeep Mistry
1a6be715ab Merge pull request #4794 from facchinm/upload_fail_handling
Handling gracefully upload failure
2016-07-20 10:18:57 -04:00
Sandeep Mistry
afe204f97f Merge pull request #4828 from facchinm/issue_4762
Filter examples based on contributed libraries by architecture
2016-07-19 10:00:18 -04:00
Martino Facchin
830fe765b8 Refresh serial port list after loading contributed packages
Soves nameless boards if contributed cores loading is slow
2016-07-13 18:42:31 +02:00
Cristian Maglie
c63ae04420 Made Serial.write(byte[]) method public
This method turns out to be useful.
2016-07-06 16:53:01 +02:00
Cristian Maglie
8f20f4d98b "Include library" now checks for includes property
A new property "includes" has been added to library.properties.
This property contains a comma-separated list of the files to be included when
the user selects the "Include library" command on the Arduino IDE.

If the property is missing the old behaviour is used.
2016-06-23 13:04:56 +02:00
Martino Facchin
7e4144b3fa starting version 1.6.10 2016-05-11 16:42:34 +02:00
Cristian Maglie
a0aa3e6a04 Updated translations 2016-05-10 10:35:55 +02:00
Cristian Maglie
bca77163fb Merge branch 'upload-without-verify' of https://github.com/gh-megabit/Arduino 2016-04-28 15:09:27 +02:00
gh-megabit
4b64ef74ba Implement Do-Not-Verify-After-Upload preference for Serial Uploads 2016-04-15 21:15:34 +01:00
Martino Facchin
2ddbf01334 Do not drop serial ports with underscore in the name
solves #4857
2016-04-15 10:01:47 +02:00
Sandeep Mistry
c99ab12446 Add "runtime." prefix to "build_properties_custom.*" preferences 2016-04-13 09:03:03 -04:00
Sandeep Mistry
9c741885e0 Revert "Do not save build_properties_custom.* preferences to disk"
This reverts commit f47165db64.
2016-04-13 08:58:35 -04:00
Sandeep Mistry
f47165db64 Do not save build_properties_custom.* preferences to disk 2016-04-12 10:15:01 -04:00
Cristian Maglie
2b18d1fba0 Merge remote-tracking branch 'arduino/master' 2016-04-08 20:17:26 +02:00
Cristian Maglie
95f5b52420 Added flag to allow ignoring signature check on package_index.json 2016-04-08 18:55:00 +02:00
Martino Facchin
643f8479e3 Restore serial.port.iserial field
uses 2893c2d643
2016-04-08 17:58:01 +02:00
Martino Facchin
f6880fe617 Merge pull request #4792 from facchinm/solve_serial_windows
Rework serial ports handling
2016-04-06 18:03:45 +02:00
Martino Facchin
bf11c7f395 avoid queuing a lot of threads while waiting for platform 2016-04-06 17:52:24 +02:00
Martino Facchin
72c337d88d avoid losing the sketch serial port on 1200bps touch 2016-04-06 17:51:48 +02:00
Martino Facchin
c28c854936 Filter examples based on contributed libraries by architecture
Solves #4762
2016-04-06 14:41:12 +02:00
Cristian Maglie
0c453355f4 Merge branch 'fix-annoying-popup' 2016-04-04 13:34:14 +02:00
Cristian Maglie
8d7ee63c70 Autoclose notification popup after 10 seconds. 2016-04-04 13:30:42 +02:00
Martino Facchin
42ff604f1e Fix NPE when replacing unexisting strings 2016-04-01 12:52:19 +02:00
Martino Facchin
34b0813530 try to avoid NPE if two threads modify library list 2016-04-01 12:39:01 +02:00
Martino Facchin
0584b2c2bd initialize the error string as empty (not null) 2016-04-01 12:07:15 +02:00
Martino Facchin
63de1cccfb Avoid generating an exception if upload fails
The current method of reporting upload errors is based on an exoteric combination of exceptions which makes return error code useless
The Uploader.java message() implementation is too avrdude-dependant to allow easy portability since the upload tools are becoming a lot and very different

With this commit we try to avoid exceptions and only use the external uploader's exit code to decide the status bar message.
The message can be:
- the last line containing "error" string (any case) or
- the usual avrdude message parsing (to keep compatibility with translations)

Needs testing with all platform and all supported upload tools
2016-04-01 12:06:21 +02:00
Martino Facchin
8f524e14a5 fix exception if remote upload fails on newer ssh client 2016-04-01 12:05:57 +02:00
Martino Facchin
c5d88f09ae add a flag to pause polling for serial port 2016-04-01 11:38:54 +02:00
Martino Facchin
ea405ea534 avoid NPE for synchronization issues on board list 2016-04-01 11:38:54 +02:00
Martino Facchin
ad74288e5a Fix randomic NPE when pressing menus during operations 2016-04-01 11:38:54 +02:00
Martino Facchin
e23bbf76c1 avoid NPE in CLI mode (boardInfo not yet initialized) 2016-04-01 11:38:53 +02:00
Martino Facchin
243fc68763 Rework Serial ports handling and add Board info menu
This commit introduces the concept of stateful board list (vs. original stateless) and board serial number.

The board is now an "entity" composed by the triplet port/vid/pid. These informations come from libListSerial "light" function. When the board list changes, it triggers a request for the additional infos to libListSerial. These information contains the serial number of the boards.

These brings a lighter and faster scanning process. Some logic has been introduced to handle a board with the S/N only exposed in the bootloader (like 32u4).
In this case the disappearing port acquires the bootloader's S/N

A menu (under Ports menu) shows the currently connected port info and can be used for bugreporting
2016-04-01 11:38:53 +02:00
Martino Facchin
c11ceb7dae Fix NPE when replacing unexisting strings 2016-04-01 11:38:53 +02:00
Martino Facchin
6d5597b070 Avoid multiple concurrent compile/upload operations
Disable Compile/Run buttons as they get press, and reenable only on function exit.
The launched upload process has now a 2minutes timeout before being terminated forcefully.
10 second after pressing "Upload" the button comes pressable again, but this time the previous upload command gets killed explicitely
2016-04-01 11:38:52 +02:00
Martino Facchin
629509f302 Merge pull request #4515 from sandeepmistry/wait-for-upload-port-timeout-bump
Increase wait for upload port timeout to 5s on all platforms
2016-04-01 11:15:57 +02:00
Cristian Maglie
9a6bb8420d Added string to translations resources 2016-03-17 13:09:27 +01:00
Sandeep Mistry
9dba7f0da0 Catch and report errors parsing contributed index files 2016-03-14 17:28:30 -04:00
Sandeep Mistry
7cb1399381 Apply extra 250ms after waitForUploadPort to all platforms 2016-03-10 09:44:24 -05:00
Sandeep Mistry
7a535d9c40 Add OS X specific delay after waiting for upload port, to prevent "Resource busy" errors on open 2016-03-10 09:37:27 -05:00
Sandeep Mistry
de412656ec Increase wait for upload port timeout to 5s on all platforms
OS X 10.11 seems to be slower, increasing timeout to 5s on all
platforms to keep things simple.
2016-03-10 09:37:27 -05:00
Martino Facchin
9a8dd2a4a2 starting version 1.6.9 2016-03-09 17:14:24 +01:00
Cristian Maglie
1f6462d59b Updated translations 2016-03-09 10:08:18 +01:00
Cristian Maglie
1f3c8b9f6c Set correct user-agent when performing HTTP requests 2016-03-08 11:31:59 +01:00
Cristian Maglie
31187cbcc1 Updated base translations 2016-03-07 19:46:30 +01:00
Cristian Maglie
452d05825b Import new translations 2016-03-07 19:34:49 +01:00
Cristian Maglie
8d995d73f3 Show board name on generic "Error compiling" message
Close #4658
2016-03-07 19:26:32 +01:00
Cristian Maglie
6b4c018740 Merge branch 'java-warnings' of https://github.com/matthijskooijman/Arduino 2016-01-25 11:06:47 +01:00
Me No Dev
2893c2d643 Fix adding NULL value to the preferences when iserial is not defined 2016-01-25 09:52:43 +01:00
Matthijs Kooijman
3d47995915 Remove unused imports
This silences some java warnings.
2016-01-21 17:18:55 +01:00
Matthijs Kooijman
82d3985f6f Remove I18n._()
This function was already deprecated and still triggers a java warning.
Removing it silences that.
2016-01-21 17:16:50 +01:00
Matthijs Kooijman
40e9aa17b3 Fix file descriptor leak when downloads are interrupted
This fixes a java warning.
2016-01-21 17:15:42 +01:00
Cristian Maglie
6398cde1c8 Added 'arm' architecture support in Boards Manager
This is a necessary step to fully support ARM builds of the Arduino IDE

See #3549
2016-01-19 18:05:41 +01:00
Cristian Maglie
9e5dc5ce3b Merge branch 'renaming' of https://github.com/matthijskooijman/Arduino 2016-01-19 13:53:50 +01:00
Hasso Tepper
d05b375810 Fix some incorrect I18n.format()/tr() usage 2016-01-18 09:47:05 +02:00
Martino Facchin
4fa57be5c7 partly revert commit 3c16ac02 to pass legacy tests
all this code will be replaced/removed as soon as the native library is fully validated
2016-01-07 15:47:04 +01:00
Martino Facchin
a1c79ce188 Merge pull request #4211 from facchinm/iserial_field
cross-platform jni implementation for serial port details discovery
2016-01-07 12:25:10 +00:00
Martino Facchin
2a677b4bcd avoid NPE if serial port gets discovered too early 2016-01-07 12:41:56 +01:00
Martino Facchin
7e17b5c318 Move vid/pid resolving to cross platform jni lib 2016-01-07 12:41:51 +01:00
Matthijs Kooijman
9e4243bc7e Add FileUtils.splitFilename()
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.
2016-01-05 14:49:22 +01:00
Cristian Maglie
232f434ca8 Updated translations for translators 2016-01-05 12:54:17 +01:00
Cristian Maglie
37726c6150 Translations update 2016-01-05 12:28:17 +01:00
Cristian Maglie
d1455a070d Added Thai language 2016-01-05 12:25:18 +01:00
Hasso Tepper
7aa384db7c Add necessary spaces 2016-01-04 20:09:29 +02:00
Hasso Tepper
7d7a654bd9 Make "Retired" translatable 2016-01-04 20:09:29 +02:00
Hasso Tepper
503cbbd745 Use formatted i18n string to ease a translation 2016-01-04 20:09:18 +02:00
Martino Facchin
9d676a71c8 Specify SSH authentication methods
Solves upload to particularly configured SSH servers which wrongly chooses Kerberos auth method
2016-01-04 10:58:18 +01:00
Martino Facchin
3c16ac025a Add iSerial to reported VID_PID string
serial.port.iserial holds the iSerial value
2016-01-04 10:58:18 +01:00
Cristian Maglie
cce61f6aad Remove unnecessary rename in GZippedJsonDownloader
See #4361
2015-12-30 10:08:29 +01:00
Cristian Maglie
29912a0ac9 Remove temporary files when updating library_index.json
Fix #4272 #4332
2015-12-28 19:17:29 +01:00
Matthijs Kooijman
1029e0b78d Delete temporary sketch copy after build
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
2015-12-28 15:19:55 +01:00
Cristian Maglie
7c089c96d3 Fixed NPE in some rare combinations of JSON files
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.
2015-12-21 18:15:52 +01:00
Martino Facchin
376cb56fc0 Starting version 1.6.8 2015-12-21 12:05:04 +00:00
Martino Facchin
767867bacb Revert "Moved -Dawt.useSystemAAFontSettings=on out of java code, where, apparently,"
Fonts on Windows became ugly, reverting whole the commit since it brings no visible changes to Linux and OSX

This reverts commit 6c5e584454.
2015-12-16 10:02:37 +01:00
Martino Facchin
22a37ea41e Merge pull request #4107 from me-no-dev/esp8266-ota
Enable OTA Update mechanism for any mDNS enabled platform
2015-12-16 09:28:13 +01:00
Federico Fissore
85a79b4a98 Updated translations 2015-12-14 11:19:34 +01:00
Federico Fissore
6c5e584454 Moved -Dawt.useSystemAAFontSettings=on out of java code, where, apparently,
has no effect
2015-12-14 10:03:16 +01:00
Federico Fissore
f702f1a4e7 Updated translations 2015-12-11 17:35:04 +01:00
Federico Fissore
98d5ff79eb Upgrading arduino-builder to 1.3.7, which changes the way messages are sent
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
2015-12-11 14:25:13 +01:00
Federico Fissore
9a39e5e6ac Some configuration may totally miss network interfaces, even localhost. Fixes #4249 2015-12-04 09:55:32 +01:00
Federico Fissore
1e074cce42 Whoops, a debuggin call to "peek" was committed. Removed. 2015-12-01 15:23:51 +01:00
Federico Fissore
5fcf5e3eb7 Updated translations 2015-12-01 12:21:30 +01:00
Federico Fissore
46d1c89073 Windows: even old settings folder may be missing from the registry. Fixes #4124 2015-12-01 11:36:45 +01:00
Federico Fissore
d9f9081f3c Updated translations 2015-11-30 14:02:17 +01:00
Federico Fissore
e224698ecf Files weren't deleted from temp unsaved sketch folder. Fixes #4233 2015-11-30 10:17:29 +01:00
Federico Fissore
aaebb0a4d6 Stored some regexps in static finals, given names to threads, and slightly
optimized ConsoleOutputStream
2015-11-27 15:07:44 +01:00
Federico Fissore
89a36cad0a Updated translations 2015-11-26 11:38:03 +01:00
Federico Fissore
6855e91883 Fixed various Board/Library managers glitches, in particular when removing/upgrading 2015-11-24 16:14:16 +01:00
Federico Fissore
7dd6e8f57d Windows: proper, non blurry, icon displayed. Fixes #3473 2015-11-24 09:53:27 +01:00
Federico Fissore
d5a0476948 Installing tools from packager (eg: arduino) in packager folder, thus avoiding
tools duplication and disk space wasting. Fixes #4193
2015-11-20 17:15:53 +01:00
Federico Fissore
a1e223ad62 License headers fixes 2015-11-20 15:17:32 +01:00
Federico Fissore
d0d9dfcfa8 If package doesn't have that tool, it probably comes from another package, so we consult the resolvedTools instead 2015-11-20 14:58:54 +01:00
Federico Fissore
80fec38a25 Updated translations 2015-11-20 09:25:23 +01:00
Federico Fissore
5e585135ce Updated translations 2015-11-19 13:52:30 +01:00
Federico Fissore
1862827c25 Portable folder can now be set to any arbitrary path, not just subfolders
of "portable". Fixes #4103
2015-11-19 13:43:49 +01:00
Federico Fissore
907af81ff9 Fixed NPE when "tools" key was missing in package_*_index.json file 2015-11-19 12:41:53 +01:00
Federico Fissore
960918796e Added support to file:// protocol. Fixes #4098 2015-11-19 12:08:17 +01:00
Federico Fissore
2747fddd10 Windows: when finding default Documents folder, if registry keys are missing,
fallback to environment variable. See #4124
2015-11-19 10:09:06 +01:00
Federico Fissore
20ddeb0fe3 Updated translations 2015-11-18 17:27:51 +01:00
Federico Fissore
b450a2743e Allowing boards/libs types and categories to be translated. Fixes #3646 2015-11-18 17:27:35 +01:00
Federico Fissore
04cfe0c36d Windows: inverted folder entries, as Shell Folders is more reliable (when
present)
2015-11-18 16:00:11 +01:00
Federico Fissore
9729b1b069 Windows: in case Shell Folders entry is missing, attempts to discover Documents folder using User Shell Folders. See #4124 2015-11-18 15:55:26 +01:00
Federico Fissore
13d8fa4dd0 Fixed typo 2015-11-18 09:49:46 +01:00
Federico Fissore
73e857fda9 Removed some warnings which are emitted from arduino-builder at compile time
Fixes #4177
2015-11-18 09:40:04 +01:00
Federico Fissore
1328f3a9e2 Library and Boards Managers were using old copies of library/boards indeces. thus making the UI show old data. Fixes #4139 #3904 #3795 2015-11-17 12:24:28 +01:00
Federico Fissore
0fb04b3180 Updating arduino-builder to 1.2.1 2015-11-16 15:38:21 +01:00
Me No Dev
2b75aec6a6 Enable OTA Update mechanism for any mDNS enabled platform
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.
2015-11-07 20:05:42 +02:00
Federico Fissore
2e80ee5bbd Testing translation for proper formatting. This test will fail when a
translation uses wrong syntax, thus avoiding any future issue similar to #4095
2015-11-06 17:24:26 +01:00
Federico Fissore
fd8cb4649b Updating translations 2015-11-06 16:11:18 +01:00
Federico Fissore
eb732def4f Updating version in BaseNoGui 2015-11-04 15:24:54 +01:00
Federico Fissore
20dad1eed6 Updating translations 2015-11-02 13:09:55 +01:00
Federico Fissore
5ceca65fe2 '.ino' extension of sketch file was hardcoded. But IDE supports '.pde' files as well. Fixes #4021 2015-11-02 12:56:04 +01:00
Federico Fissore
67e32ff8fa FileUtils.copy now filters out source control folders. Also, dir is checked for existence before creating it. Fixes #4034 2015-11-02 12:29:12 +01:00
Federico Fissore
df2ae88469 Updating arduino-builder to 1.0.3 2015-10-30 09:11:01 +01:00
Federico Fissore
f5c1084f5f Fixed wrong i18n function name 2015-10-29 14:09:51 +01:00
Cristian Maglie
ec7cc8c5cf Added check when setting serial port parameters
This allows to detect for invalid baud rate settings in
particular on Linux where the kernel do not allow non-standard
baud rates on some devices.

See #3389
See #3351
2015-10-29 13:58:29 +01:00
Federico Fissore
a51723fe79 Updated and add libs 2015-10-28 16:43:33 +01:00
Federico Fissore
6a5ec40ca3 Updated translations 2015-10-27 17:18:52 +01:00
Federico Fissore
aaf86b4a50 arduino-builder: sketchbook libraries specified as last param, because they
are more important
2015-10-27 15:55:01 +01:00
Federico Fissore
d8d70ee0bd Windows: ":" is an illegal char for a file name. Fixes #4026 2015-10-26 18:14:05 +01:00
Federico Fissore
0102a58122 "static" makes sense for constants and few other things. Avoid it if you don't have a specific reason for using it. 2015-10-26 15:49:31 +01:00
Jesse Vincent
5b64cebdc5 Simplify and clarify new HID error messages.
The libraries in question are supported on a number of official Arduino boards. The new error message tries to be a bit more helpful.
2015-10-22 15:27:12 -07:00
Cristian Maglie
2ae36940c6 Fixed parsing for SystemProfiler on Macosx El Capitan
Should alleviate #3928
2015-10-20 23:36:56 +02:00
Cristian Maglie
28ad89d694 Make SystemProfilerParser.extractVIDAndPID() static
There is no need to instantiate a SystemProfilerParser object
each time extractVIDAndPID is invoked.

Added also `synchronized` keword to avoid reentrance problems
if the method is being used in multiple threads.
2015-10-20 23:34:27 +02:00
Cristian Maglie
9f5efe210a Removed a bunch of unused variables 2015-10-20 18:38:34 +02:00
Cristian Maglie
38701678b2 Specialized some Iterators with correct inferred type 2015-10-20 18:31:58 +02:00
Cristian Maglie
635de01975 Suppress java 'serial' warning in SignatureVerificationFailedException class 2015-10-20 18:30:27 +02:00
per1234
c1ce649554 Fix typos in ArchiveExtractor.java error messages 2015-10-12 14:34:52 -07:00
Federico Fissore
688c406cb9 Checking every candidate path when exporting, instead of assuming one is good if the other is not. Fixes #3905 2015-10-07 15:40:34 +02:00
Federico Fissore
5c7b8e6587 Don't stop downloading package*index.json files if ONE fails for whatever reason. Fixes #3906 2015-10-07 15:32:34 +02:00
Federico Fissore
417857ee45 Fixed a crashed when user attempted to delete a tab of a not yet compiled sketch. Fixes #3913 2015-10-07 15:17:33 +02:00
Federico Fissore
aa654ba242 Updating arduino-builder to 1.0.0-beta24 2015-10-06 10:52:02 +02:00
Federico Fissore
69f3f9f807 Updated translations 2015-09-30 09:42:01 +02:00
Richard Wackerbarth
d8f30549bc Extend platforms with Boards.local.txt 2015-09-29 07:36:36 -05:00
Federico Fissore
f511c2451f Fallback to stock library_index.json file if the copy in .arduino15 is missing/corrupted or if it the downloaded one if corrupted. Fixes #3778 2015-09-25 12:54:50 +02:00
Federico Fissore
3872f5d315 Whoops, local packages were loaded at all. Fixed 2015-09-25 12:28:57 +02:00
Federico Fissore
b82aebd99a If a package is already defined, don't replace it with the one found (for example) in sketchbook/hardware, but merge their contents. Fixes #3851 2015-09-25 12:05:19 +02:00
Federico Fissore
71c81e30a7 Allow highlighting line with error even if gcc reports full path to file 2015-09-24 16:24:48 +02:00
Federico Fissore
fc8f84f06b Adding .elf extension to compiled sketch list 2015-09-24 15:37:49 +02:00
Federico Fissore
2f586e2a88 Updated translations 2015-09-23 15:38:57 +02:00
Federico Fissore
9421e1ceb5 Updating arduino-builder to 1.0.0-beta12 2015-09-23 14:11:32 +02:00
Federico Fissore
ccb7dd2974 Made an arduino-builder message easier to understand 2015-09-22 15:03:19 +02:00
Federico Fissore
6128dace42 Removed some old code, including PdePreprocessor and OldCompiler 2015-09-21 15:20:31 +02:00
Federico Fissore
4f2621bd31 Updated translations. Some new languages graduated 2015-09-21 11:07:36 +02:00
Federico Fissore
8767cd51b4 Returning a copy of installed libraries list, so clients can deal with it without incurring in concurrent list changes. See #3814 2015-09-18 17:03:59 +02:00
Federico Fissore
5b84aef301 Build path is now a function of sketch path. This allows to recycle previously
compiled files even when working with different sketches at the same time. In
such cases, recompiling is way faster
2015-09-18 10:47:23 +02:00
Federico Fissore
682a5ec331 Faster recompilation of unsaved sketches 2015-09-16 14:51:37 +02:00
Federico Fissore
f906d45de0 Better to separate arguments only when specifying paths, otherwise we can't specify empty args like "-warnings=" 2015-09-16 11:30:48 +02:00
Federico Fissore
6847c52428 arduino-builder arguments must be passed in separate cmd.addArgument calls, otherwise special chars will break it. Fixes #3798 2015-09-16 10:45:52 +02:00
Federico Fissore
e5ddd0be3b New compiler 2015-09-14 15:21:15 +02:00
Federico Fissore
dedbb2cc6e Update translations 2015-09-14 09:13:08 +02:00
Federico Fissore
57bff44d0a Boards Manager: if a tool is not resolvable, print a warning and DON'T add a null ref 2015-09-11 14:02:32 +02:00
Federico Fissore
43d855c28b Proxy selection was using old logic when url resulted in 302 2015-09-09 11:21:22 +02:00
Federico Fissore
a4a7e3ec96 Libraries in unknown categories get set as Uncategorized. Fixes #3732 2015-09-08 15:30:34 +02:00
Sandeep Mistry
7fa355a702 Call on onBoardOrPortChange after selectBoard in no GUI mode
Like GUI mode does when a board is changed.
2015-09-01 18:08:12 -04:00
Federico Fissore
d6ea1c05a6 Cleanup 2015-08-31 08:45:58 +02:00
Federico Fissore
f2427b47f0 LoadVIDPIDSpecificPreferences was giving for granted that the attached board provided VID & PID. This is not always true, especially with counterfeits. Fixes #3738 2015-08-28 09:01:47 +02:00
Federico Fissore
f605d1d99b Added support to VID+PID specific build properties 2015-08-27 10:40:02 +02:00
Federico Fissore
d9bb8965eb Update translations 2015-08-25 16:00:49 +02:00
Federico Fissore
47451c0f82 Update translations 2015-08-24 16:42:13 +02:00
Federico Fissore
6b9048751e Proxy PAC support: SubnetUtils is not IPv6 aware, using CIDRUtils to check if IP is in range 2015-08-21 10:38:42 +02:00
Federico Fissore
5e518b9929 Added missing license headers 2015-08-21 08:41:50 +02:00
Federico Fissore
17032ec543 Added proxy PAC file support functions 2015-08-21 08:41:50 +02:00
Federico Fissore
0c7e0d6bb4 CustomProxySelector: auto proxy (PAC) needs login info too 2015-08-21 08:41:50 +02:00
Federico Fissore
916de939e6 Using new CustomProxySelector in FileDownloader 2015-08-21 08:41:50 +02:00
Federico Fissore
708da3bd86 Introducing CustomProxySelector 2015-08-21 08:41:50 +02:00
Federico Fissore
e45f07d507 Added missing license headers 2015-08-13 11:33:35 +02:00
Federico Fissore
bd93add964 Update translations 2015-08-07 17:30:12 +02:00
Federico Fissore
ae857efa78 Updating translations 2015-08-06 14:27:57 +02:00
Federico Fissore
64bf90fec4 Translations: fixed a nasty bug that prevented new translations to be included 2015-08-06 13:19:08 +02:00
Federico Fissore
2daf330c09 LibraryInstaller and ContributionInstaller are now singletons: members of Base, they get passed to dependents, thus allowing a synchronized method execution, needed to avoid race conditions when accessing files 2015-08-06 10:27:51 +02:00
Federico Fissore
dc93bb93d0 ProgressListener is now a method arg (was an instance arg) 2015-08-06 10:27:51 +02:00
Federico Fissore
b3baa27435 ContributionInstaller.onProgress is now a collaborator: ProgressListener 2015-08-06 10:27:51 +02:00
Federico Fissore
c61c39f5d9 Canceling self check timer when opening boards/libs manager 2015-08-06 10:27:51 +02:00
Federico Fissore
f9612bcdbd Updatable boards support and libraries notification 2015-08-06 10:27:51 +02:00
Federico Fissore
59dfede5ac Libraries with a .development file in their root are flagged as "OnDevelopment".
This allows users to edit and save those libraries examples: they won't be flagged as read-only any more
2015-08-05 16:26:21 +02:00
Federico Fissore
52fd3845ca Working on how sketches are marked readonly.
Initial refactorings: stopped using static members (static is evil)
2015-08-05 16:01:10 +02:00
Federico Fissore
cb292d6114 Got rid of Guava lib: java 8 has its features builtin 2015-08-05 12:09:24 +02:00
Federico Fissore
50cacc1756 Got rid of Java 8 warnings about _ as a method name 2015-08-05 09:12:40 +02:00
Federico Fissore
5dd73a1828 Updating translations 2015-08-05 09:07:59 +02:00
Federico Fissore
ce595ce818 Updating translations 2015-07-10 12:31:43 +02:00
Federico Fissore
5d388e1646 Cleanup and java8 goodness 2015-07-09 15:20:38 +02:00
Federico Fissore
43f33d8220 Tools marked as installed but missing (as when you want to use a system installed avr-gcc) sets to "" the final build preference. Fixes #3074 2015-07-09 15:16:19 +02:00
Federico Fissore
444babdcb8 Merge pull request #3483 from sandeepmistry/issue-2911
Hide stack trace when the SerialUploader cannot find the selected board
2015-07-09 09:25:41 +02:00
Chris--A
7f061ccb0c This adds 'hh' and 'hpp' as valid sketch files.
For completeness a sketch should allow the same extensions as a
library. These missing sketch extensions have already been enabled for
libraries in #3186.
2015-07-09 04:23:33 +10:00
Federico Fissore
0ad73ebed3 Boards manager, nightly core support: missing negation on String.empty() made check report an opposite result 2015-07-08 14:46:48 +02:00
Federico Fissore
03a66b1035 Applying code inspection suggestions 2015-07-08 14:46:44 +02:00
Federico Fissore
dae6e4fff7 Dropping Guava predicates in favour of java.util.function.Predicate 2015-07-08 14:20:25 +02:00
Federico Fissore
bf3fc880ac Compiler: compiled sketch discovery was missing merged sketch 2015-07-07 17:15:39 +02:00
Sandeep Mistry
40c8c067b6 Hide stack trace when the SerialUploader cannot find the selected board (#2911) 2015-07-04 09:47:46 -04:00
Federico Fissore
14586afcf5 Fixed possible NPE 2015-07-03 18:09:56 +02:00
Federico Fissore
987cad2633 Added core "post install" and "pre uninstall" script support.
If a core has a post/pre install/uninstall script, it will be execute at the appropriate time IF:
1) source (package_*_index) is trusted (GPG signed)
2) or users have explicitly added line "contributions.trust.all=true" to their preferences.txt
Some minor refactor and clean up while I was at it
2015-07-03 16:35:08 +02:00
Federico Fissore
d02cdfdb07 If a contribution misses its checksum, consider it a development build: force re-downloading by deleting previously downloaded files and skip checksum verification 2015-07-02 15:04:10 +02:00
Federico Fissore
fef4e56044 Tools path unversioned properties are adjusted right before compiling.
This way, when multiple versions of, e.g., bossac are installed and
a platform uses bossac 1.5, core author will be able to specify just
tools.bossac.path={runtime.tools.bossac.path}
and the IDE will set it to right version of bossac
Fixes #3325
2015-07-01 17:11:25 +02:00
Federico Fissore
32cf196271 "Merge sketch with bootloader" and "save hex" should work flawlessly with cores that save binaries in both buildpath/sketch and plain buildpath 2015-07-01 15:23:17 +02:00
Federico Fissore
259fefecb2 Updating translations 2015-07-01 12:59:36 +02:00
Federico Fissore
f1bed21d1a Pulling from transifex: waiting 3 seconds before retrying 2015-07-01 12:58:28 +02:00
Federico Fissore
8e2c3c777c Compiler: #3435 introduced a bug: you needed to save a file for it to be copied to build path. Hence, restored previous "copy sketch file" logic, couples with a recursive one, used only for files external to the sketch (in subfolders) 2015-06-30 15:32:33 +02:00
Federico Fissore
9a01e30675 Compiler: don't filter out existing sketch files, overwrite them. Fixes #3440 2015-06-30 15:18:19 +02:00
Federico Fissore
4313f2ab42 Updating translations 2015-06-30 14:39:54 +02:00
Federico Fissore
d5253e1690 Transifex pull: made script more kind when networks fails 2015-06-30 14:39:03 +02:00
Federico Fissore
c4de750253 Added library version to "Using library X..." verbose notification 2015-06-30 10:41:32 +02:00
Federico Fissore
ecb4eaf861 Compiler: additional files with allowed extentions are recursively copied to build folder. Fixes #3080 2015-06-30 09:36:43 +02:00
Federico Fissore
a853372872 Compiler: fixed wrong check against non existent folder and a possible NPE 2015-06-29 15:32:32 +02:00
Federico Fissore
e097439eab Compiler: sketch files get compiled into "sketch" 2015-06-29 15:11:45 +02:00
Federico Fissore
5a35be06da Compiler: cores files get compiled under "core", libraries under "libraries". Fixes #2997 2015-06-29 15:11:45 +02:00
Federico Fissore
46058a5bf6 BaseNoGui.currentDirectory needs to be initialized before anything else 2015-06-29 15:10:42 +02:00
Federico Fissore
f169ef95aa Windows: using BaseNoGui.getContentFile instead of directly using "user.dir" property 2015-06-29 14:47:19 +02:00
Federico Fissore
6e8e3a7bad Falling back to "user.dir" in case "APP_DIR" is missing 2015-06-29 14:47:13 +02:00
Federico Fissore
b8b1dc2327 Dropping --curdir CLI argument support 2015-06-29 14:28:16 +02:00
Federico Fissore
85ae80b6f9 Introducing APP_DIR property. Allows the IDE to know its installation folder.
Also upgrading appbundler with a patched version: https://bitbucket.org/ffissore/appbundler It allows to know the current working directory
These two put together, we can now rely on APP_DIR when loading IDE resources while being sure current working directory is properly set, thus being much more friendly when run from CLI
Fixes #1493
2015-06-29 14:28:16 +02:00
Federico Fissore
16e18467dd Updating translations 2015-06-26 13:18:01 +02:00
Federico Fissore
b844011c1d saveHex must work with multiple recipe.output recipes 2015-06-26 12:24:15 +02:00