1
0
mirror of https://github.com/arduino/Arduino.git synced 2025-02-13 07:54:20 +01:00

138 Commits

Author SHA1 Message Date
Martino Facchin
5b6adec95f add preference checkbox for core cache 2017-03-20 17:31:38 +01:00
Cristian Maglie
0b297d2906 Fixed fields hidden by local variable warnings 2017-02-20 15:22:27 +01:00
Martino Facchin
6fc0379298 Starting IDE 1.8.2 2017-01-17 12:11:04 +01:00
Cristian Maglie
da97506adf Started IDE 1.8.1 2016-12-24 00:14:33 +01:00
Martino Facchin
d115f44a31 Update IDE version to 1.8.0 2016-12-21 16:12:44 +01:00
Martino Facchin
a93b45d9c8 Merge pull request #5573 from facchinm/fix_symlink_5478
Fix symlinks being replaced with files on save
2016-12-07 13:17:28 +01:00
Cristian Maglie
39c3e8bb8b Merge branch 'x11-fix' 2016-11-25 15:12:05 +01:00
Cristian Maglie
8eae64181e Removed old prototype code from #2328 that is now in Base 2016-11-25 15:10:38 +01:00
Martino Facchin
2d1f49a077 Fix symlinks being replaced with files on save
Fixes #5478

Backported from Processing 0abee5af6a/app/src/processing/app/Util.java (L174)
2016-11-24 09:58:27 +01:00
Martino Facchin
c209e33e97 Starting version 1.6.14 2016-11-23 10:48:13 +01:00
Cristian Maglie
41092be596 Merge branch 'editor-refactor-fixup' 2016-11-09 14:25:45 +01:00
Cristian Maglie
650840381f Small cleanup, no code change 2016-11-07 14:51:25 +01:00
Cristian Maglie
5b4af28f47 Removed dead code 2016-11-07 14:47:33 +01:00
Cristian Maglie
8c5b064956 Added error message if a referenced core is not found 2016-11-07 10:48:04 +01:00
Cristian Maglie
21ff728c59 Merge remote-tracking branch 'cmaglie/fix-win-paths' 2016-11-03 12:10:24 +01:00
Martino Facchin
12eb09f0b9 Fix NPE if referred core is nonexistent
Fixes #5502
2016-10-27 12:46:44 +02:00
Cristian Maglie
3af99c0847 Use Documents/ArduinoData when running as a Windows UWP
LocalAppData is restricted for Windows Apps, so we are forced to use
a document folder.
2016-10-19 16:28:21 +02:00
Martino Facchin
0a8e7a14f1 Make sure DiscoveryManager is not null when calling it
Solves #5413
2016-10-03 11:07:10 +02:00
Cristian Maglie
bd7e76533a Removed redundant type specifiers for generics 2016-09-29 20:15:56 +02:00
Cristian Maglie
4d579f7652 Removed extra semicolon 2016-09-29 20:15:56 +02:00
Martino Facchin
69fd6debbd Starting version 1.6.13 2016-09-22 12:42:35 +02:00
Cristian Maglie
7d27c43ff2 Launch DiscoveryManager after populating indexes 2016-08-31 19:11:24 +02:00
Martino Facchin
84ede60df8 Start board discovery after loading all platforms 2016-08-30 16:22:40 +02:00
Martino Facchin
e3177a5ed8 Starting version 1.6.12 2016-08-26 18:27:00 +02:00
Martino Facchin
efc07a1c0e Add Cloud API integration
This method discovers if a connected board needs an additional core and helps the user downloading it via BoardManager
2016-08-26 16:42:44 +02:00
Matthijs Kooijman
4f0af2af57 Store the build path used in Sketch
Previously, everywhere where it was needed, the path was requested from
BaseNoGui. Because the path is based on a hash of the sketch filename,
every caller would get the same path for the same sketch.

However, it makes more sense to store the path used for a given sketch
inside the Sketch object. This prevents having to pass around or
regenerate the build path everywhere, and no longer requires the build
path to be deterministic (though it still is in this commit).

This allows removing some methods and constructors of which two versions
were available - one with a build path argument and one without.
2016-08-26 16:42:44 +02:00
Matthijs Kooijman
c0f41cae5d Remove Base.removeDir() and Base.removeDescendants()
These methods shouldn't really be in Base (or BaseNoGui, which did the
actual work), especially since there is already a
`FileUtils.recursiveDelete()` which just does the same thing. This
commit removes the code from Base and BaseNoGui and instead uses the
method from FileUtils.

There is one difference between these methods: the Base methods did not
delete files if the "compiler.save_build_files" preference was set.
However, the Base methods were only used when deleting a sketch, or
deleting an existing folder before overwriting it on save as, so this
preference didn't actually do what it was supposed to anyway, so
dropping it shouldn't be a problem.
2016-08-26 16:42:44 +02:00
Matthijs Kooijman
629953e20d Rename Sketch and SketchData classes
Sketch is now called SketchController, since it didn't really represent
a sketch, but just handled the GUI-related stuff for a given sketch
(note that it is not strictly a controller in the MVC-sense, but it does
have a similar function). SketchData more accurately represented the
actual sketch, so it is now called Sketch. Below, the new names are
used.

Editor now keeps both a current Sketch and SketchController object, and
the Sketch object is created by Editor and passed to SketchController,
instead passing a File and letting SketchController create the Sketch.
Wherever possible, code now uses the Sketch directly (or indirectly,
through the new `SketchController.getSketch()`) and the accessors in
SketchController that merely forwarded to Sketch have been removed.
There are few things that now live in SketchController but should be
moved to Sketch (`isModified()`, `isUntitled()`), so some of the code
still has a dependency on SketchController that should be removed later.

This commit mostly renames classes, methods and variables, it should not
change the behaviour in any way.
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
Cristian Maglie
aea77c889d Fixed some simple warnings 2016-08-16 12:52:24 +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
7008f6c57c ContributionsIndexer now has bundled hardware path as a field 2016-08-11 10:57:05 +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
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
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
Martino Facchin
7e4144b3fa starting version 1.6.10 2016-05-11 16:42:34 +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
9a8dd2a4a2 starting version 1.6.9 2016-03-09 17:14:24 +01:00
Martino Facchin
376cb56fc0 Starting version 1.6.8 2015-12-21 12:05:04 +00: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
aaebb0a4d6 Stored some regexps in static finals, given names to threads, and slightly
optimized ConsoleOutputStream
2015-11-27 15:07:44 +01:00