1
0
mirror of https://github.com/arduino/Arduino.git synced 2025-01-11 00:52:21 +01:00

1016 Commits

Author SHA1 Message Date
Claudio Indellicati
b61f2a419f Made Compiler and PdePreprocessor independent from Preferences.
Created a class PreferencesData to manage all parameters except the ones for the GUI.
Removed GUI parameters management from ParametersMap.
Created ParametersHelper class to help with GUI parameters management.
Used ParametersHelper in Themes.
2014-11-13 16:22:54 +01:00
Cristian Maglie
54f3f538f2 Applied (a sort of) decorator pattern to SketchCodeDoc.
SketchCodeDoc renamed to SketchCodeDocument.
Compiler is now independent from SketchCodeDocument.
2014-11-13 16:18:41 +01:00
Cristian Maglie
bbd3782a9c Reintroduced 'Next Tab' and 'Prev Tab' click actions 2014-11-13 16:18:41 +01:00
Claudio Indellicati
79ab98fef9 Make Compiler independent from Sketch.
Create a class SketchData to store all relevant data for a sketch
(trying to keep GUI stuff out of the way).

Moved preprocessing code from Sketch to Compiler.
2014-11-13 16:18:41 +01:00
Claudio Indellicati
e6563cfebf Removed GUI dependencies from SketchCode class.
Moved GUI fields into a SketchCodeDocument container class.
2014-11-13 16:18:41 +01:00
Cristian Maglie
af19257fbd Rationalized Preferences and Theme classes.
Removed a lot of duplicate/unused code. Preferences un-marshalling
is now handled in PreferencesMap class.
2014-11-13 16:18:40 +01:00
Cristian Maglie
872897d6ad Splitted GUI and Streams in EditorConsole 2014-11-13 16:18:40 +01:00
Cristian Maglie
93562a7800 Refactored and simplified EditorConsole class. 2014-11-13 16:18:40 +01:00
Cristian Maglie
479b974fe1 Refactoring of Theme class 2014-11-13 16:18:40 +01:00
Cristian Maglie
026dd50d87 Removed some warning from Editor class 2014-11-13 16:18:40 +01:00
Cristian Maglie
dd911bc79d Removed some trivial warnings 2014-11-13 16:18:40 +01:00
Cristian Maglie
9bc1824b96 Removed unused Base.getBoardsViaNetwork() and related member. 2014-11-13 16:18:40 +01:00
Matthijs Kooijman
e994c52729 Don't store the extension in SketchCode
Nobody was using it anymore, except for checking against specific
extensions, which is easily done against the filename itself. This
prepares for some simplification of Sketch.load next.
2014-11-13 16:18:40 +01:00
Matthijs Kooijman
43dac3a902 Use SketchCode.isExtension in more places 2014-11-13 16:18:40 +01:00
Matthijs Kooijman
af0d8c7f5c Let Sketch.getExtensions() return a List
This simplifies upcoming changes.
2014-11-13 16:18:39 +01:00
Matthijs Kooijman
a6013720e5 Explicitely store a layout type for a library
Previously, the useRecursion and srcFolders were filled on library
creation, based on the existence of the src folder. Now, a layout
variable is set, and the useRecursion() and getSrcFolder() methods
change their return value based on the layout in use.
2014-11-13 16:18:39 +01:00
Cristian Maglie
9a9fef808c Renamed preferences 'save.verifyUpload' to 'editor.save_on_verify' 2014-11-09 20:44:12 +01:00
Cristian Maglie
9a441d6dae Do not auto-save on verify/upload if sketch is readonly 2014-11-09 20:38:16 +01:00
Fulvio Ieva
5a6af2cf02 add save when verifyng and uploading #1934 2014-11-09 20:34:56 +01:00
Cristian Maglie
52b685a7a5 Merge remote-tracking branch 'ide-1.5.x-avrdude' into ide-1.5.x 2014-11-05 19:49:53 +01:00
Cristian Maglie
b4f2af4f9d Merge remote-tracking branch 'ide-1.5.x-core.a-rebuild' into ide-1.5.x 2014-11-02 11:52:57 +01:00
Matthijs Kooijman
b78339238d Don't recompile core.a if none of the .o files changed
Before, core.a would be rebuilt on every build, even when none of the
core .o files changed. Now, the timestamps are checked against the
timestamp on core.a first, skipping the build if nothing changed.

Because this uses the current list of .o files, there is a corner case
when a source file is deleted, but no other source file is modified. In
that case, core.a is not rebuilt, even though it should be. However,
this is such a narrow and unrealistic case, that it should pose a real
problem.

This fixes part of #1991
2014-10-31 17:48:29 +01:00
Matthijs Kooijman
87c87c2897 Delete core.a when building it fails
This prevents a half-finished core.a file from lingering around.
Currently, this should not make a difference since core.a is rebuilt
every time, but this prepares for skipping this build step if possible.
2014-10-31 15:43:42 +01:00
Matthijs Kooijman
57bdacc93c Remove core.a before rebuilding it
Before, the ar command was just ran for all .o files that should end up
in core.a, which should replace any old code in core.a. However, it
seems that in the unlikely event that functions or entire source files
are deleted, they might linger in the core.a file.
2014-10-31 15:43:07 +01:00
Cristian Maglie
e76de57f6b Fixed parsing of dependency files (.d) to improve sketch build speed
Close #2255
2014-10-31 11:39:36 +01:00
Matthijs Kooijman
d4ca6ce127 Allow setting a line timeout in MessageSiphon
Previously, the MessageSiphon class would read characters from an
InputStream and then push them to the passed MessageConsumer one line at
a time.

Now, you can specify a line timeout. Normally, messages are still
processed line by line, but if no line ending is received within the
specified timeout (counting from the first character in the line), then
the incomplete line is passed on as a message, without waiting for the
line ending.

This feature is used for the uploader command output. In particular,
this allows the avrdude progress bar to be shown in the IDE as expected,
character by character (previously, the entire progress bar would be
buffered, making it show up completely at the end of the upload).
2014-10-30 12:36:06 +01:00
Cristian Maglie
ed5ad426dd Upped version to 1.0.7. Update revision log. 2014-10-10 00:08:41 +02:00
Cristian Maglie
35d616f050 Updated 'master' translations 2014-10-09 10:13:00 +02:00
Federico Fissore
b6a4c8172f Processing references removed in favour of Arduino 2014-10-08 18:36:25 +02:00
Federico Fissore
82b6e6e325 macosx: removing java.additional.jvmargs property used for proper tests execution 2014-10-07 13:46:51 +02:00
Federico Fissore
1b783fa48c Formatter: cursor position is saved when invoking autoformat. Fixes #2293 2014-09-30 17:17:13 +02:00
Cristian Maglie
90bd172f30 Updated revision log. Version upped to 1.0.6. 2014-09-16 12:16:06 +02:00
Cristian Maglie
6f9674288b Merge pull request #2279 from cmaglie/fix-leo-upload-osx10.9.4
Fix for upload problems on Arduino Leonardo (and derivatives) on OSX 10.9
2014-09-10 12:58:10 +02:00
Cristian Maglie
b7b9da7710 Updated version to 1.5.8 2014-09-05 10:11:47 +02:00
Cristian Maglie
aa776b30ba Fix for upload problems on Arduino Leonardo (and derivatives) with OSX 10.9.4 2014-09-01 12:16:41 +02:00
Cristian Maglie
ec1310e1bd Removed --no-op from CLI. Preferences now not-saved by default.
See https://github.com/arduino/Arduino/pull/2000 for details.

Close #2000
2014-08-22 15:39:33 +02:00
Cristian Maglie
e3dc5e75e3 Removed unused variables. Small cosmetic changes. 2014-08-22 14:24:21 +02:00
Matthijs Kooijman
83ede8fdb4 Fix preference directory opening in the GUI with --preferences-file
In the preferences dialog, the name of the preferences file is shown for
advanced editing. If the filename is clicked, the folder containing the
file is opened. However, this always used Base.getSettingsFolder, which
is the folder where the settings file _normally_ resides. But when the
--preferences-file option is used, the actual preferences file might be
somewhere else.

This commit makes sure to always open up the parent directory of the
actual preferences file in use, instead of always the default one.
2014-08-19 09:16:49 +02:00
Matthijs Kooijman
f47ec35ebe If build.path is specified, create it if needed
When no build.path preference is present, a temporary directory is
automatically created (and deleted). When a build.path was specified,
but the directory does not exist, the IDE would show an error and fail
to build, which is unexpected and not so friendly.

This commit makes sure that the build directory is automatically
created.
2014-08-19 09:16:49 +02:00
Matthijs Kooijman
c959388b37 Let Editor::statusError print to stderr
Before, these were only shown in the GUI, which makes a failing
commandline build a bit puzzling. As a side effect, the error is now
shown in the log area in addition to the status line above the log
area, but that should be ok.
2014-08-19 09:16:49 +02:00
Matthijs Kooijman
cc773fb1e0 Take into account --curdir for all relative paths
In a lot of places, (potentially) relative paths were passed to File
without any processing, making them be resolved without taking into
account --curdir. By passing them through Base.absoluteFile instead,
these paths are resolved relative to the working directory before
starting arduino (at least on Linux, which is currently the only
platform supporting --curdir).

This applies --curdir to the --preferences-file option and the
build.path, settings.path, sketchbook.path preferences.

For example, this now works as expected:

  arduino --pref build.path=build_dir --verify Blink.ino
2014-08-19 09:16:49 +02:00
Matthijs Kooijman
4f33d0851c Fix opening a non-primary .ino file
When a sketch looks like this:

    Blink/
        Blink.ino
        Foo.ino

The idea is that opening Foo.ino should open up the sketch. However,
before this would show an error stating "The file Foo.ino needs to be
inside a sketch folder named Foo" instead.

This turned out to be due to a typo, which seems to have been present
for a long time. Note that when the main sketch file was a .pde file,
everything already worked as expected.
2014-08-19 09:16:48 +02:00
Matthijs Kooijman
f96d71f32d Fix --curdir on Windows
On Windows, files are canonicalized to prevent issues with legacy 8.3
filenames. However, this canonicalization includes making the path
absolute and this happened before applying --curdir to the path, making
the latter a noop.

By reversing the operations, this should allow both of them to do their
work.
2014-08-19 09:16:48 +02:00
Matthijs Kooijman
31fe4ac0c2 Add Base.absoluteFile method
This method takes filenames as specified on the commandline and turns
them into the right File object, taking into account the current
directory passed through --curdir by the wrapper script.
2014-08-19 09:16:48 +02:00
Matthijs Kooijman
0798e1cf6f Pass around sketch File objects instead of filenames
This saves a few conversions from File object to String and is generally
cleaner.
2014-08-19 09:16:48 +02:00
Matthijs Kooijman
87bdaa88cd Parse --curdir in Base.main()
This shouldn't change any behaviour, but prepares for upcoming changes.
2014-08-19 09:16:48 +02:00
Matthijs Kooijman
cf4fb7d0e3 Don't re-parse arguments to --preferences-file
Previously, the argument to --preferences-file would be interpreted as a
filename, but then also checked as an option as well (in the next loop
iteration). This didn't really matter in practice (unless you would be
using a file called "--preferences-file"), but better skip the argument
anyway.
2014-08-19 09:16:48 +02:00
Matthijs Kooijman
9e17e52f63 Parse --preferences-file in main instead of Preferences.init
Parsing commandline arguments inside Preferences isn't very elegant,
this is better suited for the main function. Also, this change prepares
for taking --curdir into account for --preferences-file as well.
2014-08-19 09:16:48 +02:00
Matthijs Kooijman
e494f39255 Add --get-pref option
This allows reading specific preferences from the commandline.
2014-08-19 09:16:47 +02:00
Matthijs Kooijman
f745fff50b Add --noop option
This option causes the IDE to process its commandline arguments and then
quit. This allows setting preferences uses --pref, without having to
also load the GUI or compile a sketch.
2014-08-19 09:16:47 +02:00