This class allows to attach a Location property to a folder
path, this way we directly know if a library is in the sketchbook,
core, referenced-core or bundled in the IDE.
This simplify a lot of logic in the IDE.
ContributedLibrary is used to decode library_index.json and it's
intended to keep data coming only from the index.
Now, when the library_index is synced with the filesystem, the
metadata about installed libraries are kept in a separate list
to not mess up with the main index.
Previously the filtering was made on ContributedLibrary, but the
objects that is actually displayed is a ContributeLibraryReleases,
so it comens natural to filter on this class of objects.
Apparently the functionality is not affected by this commit, but
there may be some side-effect that may probably fix some
visualization bug.
Optional<T> helps to not forget to check about nullness where it is
needed.
This commit should be equivalent and shouln't fix any bug, BTW the
Optional<T> semantic turns out to be useful in the next commits.
Possibly all nullable values will be replaced by Optional in the
future.
- we ensure that there is always a filter selected, no more need
to check for non-nullness
- the filters are always the same, no need to pass a
Stream<Predicate<T>> around where Predicate<T> suffices
Since the method is called everywhere with the following parameters
isReadOnly(
BaseNoGui.librariesIndexer.getInstalledLibraries(),
BaseNoGui.getExamplesPath())
)
the static calls to BaseNoGui have been inlined into isReadOnly()
removing all the duplications around.
Solves #7097; the user will be prompted if default sketchbook folder doesn't exist.
If needed, the exception will be thrown by getDefaultSketchbookFolder() as in Linux/OSX implementations.
Solves #5976; the new core's home is https://github.com/arduino/ArduinoCore-avr
Most of the history has been moved and is accessible, however the first 2 years are too much noisy (and SVN based) to be able to extract anything useful.
Please refer to Arduino main repo if you are doing any informatic archaeology :)
The serial.line_ending value was not present in the default
preferences file, so the default was implicitly 0, meaning "No line
ending". Since users often do not realize that they can even choose a
line ending, and "no line ending" is only rarely useful, it seems better
to default to sending a newline. Using both CR & NL would be more
consistent with Stream.println on the Arduino side, but just sending a
newline is probably easier to parse on the Arduino side.
User testing on skilled devs showed that "buttons appear on click" behaviour is far from being understood.
Accessibility features (like moving with Arrow keys) should be untouched.