Commit Graph

922 Commits

Author SHA1 Message Date
Cristian Maglie 7b2ed12ad7 Temporarily disabled I18N test 2014-11-13 16:34:25 +01:00
Claudio Indellicati 98bdc7b587 Moved specialized Platform classes and related resources to the 'arduino-core' project. 2014-11-13 16:34:25 +01:00
Cristian Maglie d1f4e0370d arduino-core project is now correctly compiled through ant build script 2014-11-13 16:34:24 +01:00
Cristian Maglie ba8eadeeb5 Split IDE into 2 projects.
BEWARE: HIGHLY EXPERIMENTAL BRANCH
2014-11-13 16:34:24 +01:00
Claudio Indellicati 2de206cccd Modified preferences initialization in BaseNoGui. 2014-11-13 16:23:46 +01:00
Claudio Indellicati 1974d77abe Added new command line options.
--buildpath
--nouploadport
--useprogrammer
2014-11-13 16:23:46 +01:00
Claudio Indellicati b2a88ecdd2 Removed inheritance relationship between SketchCodeDocument and SketchCode. 2014-11-13 16:23:46 +01:00
Claudio Indellicati c2223107b1 Fixed wrong sketch structure check. 2014-11-13 16:23:46 +01:00
Claudio Indellicati 2702ccef0c Added main() and init() methods to BaseNoGui.
Now the the GUI and the rest of the code should be completely separated.
2014-11-13 16:23:46 +01:00
Claudio Indellicati 4d3599b2c4 Moved getBuildFolder() and related members/methods from Base to BaseNoGui. 2014-11-13 16:23:46 +01:00
Claudio Indellicati 6d28e12a41 Moved commandline parsing code from Base/BaseNoGui to new CommandlineParser class. 2014-11-13 16:23:45 +01:00
Claudio Indellicati 035e57e909 Moved getDefaultSketchbookFolder() from Base to BaseNoGui and other minor fixes. 2014-11-13 16:23:45 +01:00
Claudio Indellicati 26a8b37d18 Refactored Base.getDefaultSketchbookFolder() method. 2014-11-13 16:23:45 +01:00
Claudio Indellicati 20582630a5 Moved portableSketchbookFolder from Base to BaseNoGui. 2014-11-13 16:23:45 +01:00
Claudio Indellicati 10af59f6fa Moved some code from Base to BaseNoGui into new getSketchbookPath() method. 2014-11-13 16:23:45 +01:00
Claudio Indellicati 443f7a7150 Moved some parameter processing methods from Base to BaseNoGui. 2014-11-13 16:23:45 +01:00
Claudio Indellicati abe6ff5f32 Moved onBoardOrPortChange() and related members/methods from Base to BaseNoGui. 2014-11-13 16:23:45 +01:00
Claudio Indellicati 8687a78db5 Removed leftover dependency from SketchCodeDocument in SketchData. 2014-11-13 16:23:45 +01:00
Claudio Indellicati 061d1f14b6 Moved the sketch uploading code from Sketch to Compiler. 2014-11-13 16:23:44 +01:00
Claudio Indellicati 998142d16d Moved last showError() method for Base to BaseNoGui. 2014-11-13 16:23:44 +01:00
Claudio Indellicati 83c61376e0 Split UploaderAndMonitorFactory in two distinct classes. 2014-11-13 16:23:44 +01:00
Claudio Indellicati 0919b0e4fe Moved countLines() and loadFile() from Base to BaseNoGui. 2014-11-13 16:23:44 +01:00
Claudio Indellicati b0d8a504dd Moved isSanitaryName() and sanitizeName() from Sketch to BaseNoGui. 2014-11-13 16:23:44 +01:00
Claudio Indellicati 4b69baadac Removed last dependency from Base in processing.app.Platform. 2014-11-13 16:23:44 +01:00
Claudio Indellicati 36fd0bf344 Moved removeDescendants() and removeDir() from Base to BaseNoGui. 2014-11-13 16:23:44 +01:00
Claudio Indellicati 7c58be397b Fixed wrong sketch structure check in Editor and SketchData. 2014-11-13 16:23:44 +01:00
Claudio Indellicati 612f4c926f Moved discoveryManager from Base to BaseNoGui. 2014-11-13 16:23:43 +01:00
Claudio Indellicati 1c8a4e9f58 Added sketch structure check to the build method of Compile. 2014-11-13 16:23:43 +01:00
Claudio Indellicati 5db851cf9f Moved the sketch structure check code from Editor to SketchData. 2014-11-13 16:23:43 +01:00
Claudio Indellicati afbbe77752 Moved the sketch building code from Sketch to Compiler. 2014-11-13 16:23:43 +01:00
Claudio Indellicati b7d1846eb9 Moved some code from Base to BaseNoGui and removed leftover self class references from BaseNoGui. 2014-11-13 16:23:43 +01:00
Claudio Indellicati f2d92bbd0f Removed dependency from Preferences in a bunch of classes. 2014-11-13 16:23:43 +01:00
Claudio Indellicati 22be22a5a7 Removed self class references from Base. 2014-11-13 16:23:43 +01:00
Claudio Indellicati b278c19a2a Removed dependency from Base in all Platform classes. 2014-11-13 16:23:43 +01:00
Claudio Indellicati eb284804f5 Moved showWarning() implementation from Base to BaseNoGui. 2014-11-13 16:23:42 +01:00
Claudio Indellicati 74f59c215a Changed UserNotifier from interface to abstract class. 2014-11-13 16:23:42 +01:00
Claudio Indellicati bff6f2818b Renamed user notifier classes. 2014-11-13 16:23:42 +01:00
Claudio Indellicati 1c37189599 Removed unused parameter (base). 2014-11-13 16:23:42 +01:00
Claudio Indellicati bc6b488cf6 Removed leftover references to Base in BaseNoGui. 2014-11-13 16:23:42 +01:00
Claudio Indellicati d6bd77ec2b Removed dependency from Base in PreferencesData. 2014-11-13 16:23:42 +01:00
Claudio Indellicati fa0d37dad6 Added notifier interface and classes. 2014-11-13 16:23:42 +01:00
Claudio Indellicati a43d207e4f Removed dependency from Base in the uploaders. 2014-11-13 16:23:42 +01:00
Claudio Indellicati 1bb2da83c1 Moved some initialization code from Base to BaseNoGui. 2014-11-13 16:23:41 +01:00
Claudio Indellicati e83462b508 Changed dependency from Preferences to PreferencesData in processing.app.linux.Platform and processing.app.windows.Platform. 2014-11-13 16:23:41 +01:00
Claudio Indellicati c666274bf9 Moved libraries and importToLibraryTable (and related methods) from Base to BaseNoGui (work in progress). 2014-11-13 16:23:41 +01:00
Claudio Indellicati 64c6fe536c Moved saveFile() from Base to BaseNoGui (work in progress). 2014-11-13 16:23:41 +01:00
Claudio Indellicati 4443911746 Moved getBoardPreferences() and related methods from Base to BaseNoGui (work in progress). 2014-11-13 16:23:41 +01:00
Claudio Indellicati 4c1b187313 Moved platform (and related methods) from Base to BaseNoGui (work in progress). 2014-11-13 16:23:41 +01:00
Claudio Indellicati 7776ffac4f Moved packages, currentDirectory and portableFolder (and related methods) from Base to BaseNoGui (work in progress). 2014-11-13 16:23:41 +01:00
Claudio Indellicati 118826e855 Moved getAvrBasePath() and related methods from Base to BaseNoGui (work in progress). 2014-11-13 16:23:41 +01:00
Claudio Indellicati 057106f1b9 Moved version info to BaseNoGui new class (work in progress). 2014-11-13 16:23:41 +01:00
Cristian Maglie be96ae3a6a Removed no more used 'core' project 2014-11-13 16:23:40 +01:00
Cristian Maglie 50f89d9665 Refactored OS detection subroutine.
Moved from Base into a specific utility class OSUtils.
Removed unused platform constants.
2014-11-13 16:23:40 +01:00
Cristian Maglie e0f680be5b Drop dependency from processing-core project. 2014-11-13 16:23:40 +01:00
Cristian Maglie 18a8d4d627 Created PApplet and PConstants wrapper classes.
Also removed unused ColorSelector and CreateFont to reduce wrappers
size to the minimum.
This commit is preparatory for dropping dependency on processing-core.
2014-11-13 16:22:54 +01:00
Claudio Indellicati 21de7bdea3 Moved some code from Sketch to SketchData. 2014-11-13 16:22:54 +01:00
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