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

115 Commits

Author SHA1 Message Date
Matthijs Kooijman
982d4f3fbf Use a separate RSyntaxTextArea for each editor tab
RSyntaxTextArea appears to support using a single instance and replacing
the underlying text and document when switching between tabs, but in
practice this support is not complete and even though the
RSyntaxTextArea developers did some work to improve the situation, they
recommend to just use a seperate instance for each tab.

This commit implements exactly that. A new class EditorTab is introduce
to wrap the RSyntaxTextArea and containing scroll pane, and to
encapsulate the code related to handling the text area itself. Doing so
removes some quirks and prepares for some later additions. In
particular, error highlights are now no longer shared between all tabs,
which was previously the case.

This commit mostly moves code from Editor into EditorTab, and updates
the callers to use getCurrentTab() and call methods on the result
instead of calling them on Editor. Some code is added to take care of
creating multiple EditorTab objects and switching between them. Some
small changes have been made to make the flow of opening files work,
though these are mostly a bit hacky.

While moving code, changes to the rest of the code were kept minimal,
retaining existing interfaces as much as possible. This sometimes result
in less than ideal code, which should be cleaned up in subsequent
commits.

The SketchCodeDocument class has been pretty much emptied out, since
it was mostly used to store things for tabs in the background, which are
now just stored in each RSyntaxTextArea separately. The last remaining
bits of this class can probably be moved or implemented differently
later, so it can be removed.

The entire flow of working with sketches and files needs to be cleaned
up next, so no thorough attempt at testing this commit was done. It is
likely that there are plenty of corner cases and race conditions, which
will be fixed once the reset of the code is cleaned up.

Fixes #3441
2016-08-26 16:42: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
fa4876b7b1 Fixed unit-test UploaderFactoryTest
It was broken after merging #4107
2015-12-21 15:19:22 +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
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
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
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
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
2eaa6ff937 Removed unused imports 2015-10-20 18:29:40 +02:00
Federico Fissore
6128dace42 Removed some old code, including PdePreprocessor and OldCompiler 2015-09-21 15:20:31 +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
e5ddd0be3b New compiler 2015-09-14 15:21:15 +02:00
Federico Fissore
36e43713c2 Deleted I18NTest. It's been disabled for a long time and it was not really useful 2015-08-21 12:31:58 +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
708da3bd86 Introducing CustomProxySelector 2015-08-21 08:41:50 +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
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
e15ba64ee2 New console: replaces previous EditorConsoleStream with one that's faster and doesn't discard end chars.
See #2798
2015-06-29 16:18:40 +02:00
Federico Fissore
9089fecbe4 Windows: working on reg query encoding issue #3360. German encoding is Cp852 2015-06-19 17:44:28 +02:00
Federico Fissore
88e8019419 Extending remote upload. Sketch merge with bootloader is done by the IDE (using "noblink" bootloader if board definition provides one). If platform provides a "remote" upload tool, that tool is used, otherwise falls back to hardcoded "run-avrdude" 2015-06-18 15:43:10 +02:00
Federico Fissore
8c60054af0 Windows: ListComPortsParser was reporting the same VID/PID for both COM12 and COM1. Fixes #3333 2015-06-18 09:23:29 +02:00
Federico Fissore
64fcc716c9 MacOSX: SystemProfilerParser nows claims to have found the device even if the name is not exactly the same 2015-06-12 14:21:08 +02:00
Federico Fissore
e9d66015a4 Windows: reg query uses different separators on xp, fooling parser. Fixed 2015-06-04 11:44:56 +02:00
Federico Fissore
c84fb7fc90 Removed a handful of static methods delegates 2015-05-28 15:25:44 +02:00
Federico Fissore
a3eae13e5d Missing call to BaseNoGui.getPlatform().init() in tests 2015-05-26 14:53:15 +02:00
Federico Fissore
5faa1c9866 Removed Preferences.init: no one used it 2015-05-25 14:43:32 +02:00
Federico Fissore
ab7b7351f5 Removed lots of calls to BaseNoGui.getPlatform(): static is evil 2015-05-22 15:58:47 +02:00
Federico Fissore
94b16a550e Faster library list downloading by downloading gzipped version 2015-05-21 17:02:21 +02:00
Federico Fissore
365b0bdc94 Closing streams using IOUtils.closeQuietly
Fixed badly handled stream found in the meanwhile
2015-05-21 16:50:49 +02:00
Federico Fissore
202f70a782 Test files should not be modified 2015-05-21 13:47:39 +02:00
Federico Fissore
37adee2553 Merge pull request #3194 from ffissore/windows-jna
Got rid on JNA
2015-05-21 10:25:54 +02:00
Federico Fissore
9166828bfe Due to website configuration changes, every url starting with http://arduino.cc has been changed to http://www.arduino.cc. Fixes #3191 2015-05-20 17:10:06 +02:00
Federico Fissore
f6546aea45 Windows: got rid on JNA, thus no more UnsatisfiedLinkError (at least when accessing native OS functions). Fixes #3190 2015-05-20 16:33:33 +02:00
Federico Fissore
f13fe9a4f7 LibraryManagerUI: library types order fixed 2015-05-19 13:13:49 +02:00
Federico Fissore
03283bb098 Avoid referring directly to RSyntaxTextArea, at least in the names 2015-05-12 16:20:54 +02:00
Federico Fissore
96b7c5ec6b MacOSX: fixed some failing tests 2015-05-12 15:23:22 +02:00
Federico Fissore
5bc6cee118 Added missing licenses/copyrights 2015-05-07 17:30:05 +02:00
Federico Fissore
f8aecd0f9c Autoformat was generating two undo action, the first one being an empty editor. Tested and fixed 2015-05-07 17:15:51 +02:00
Federico Fissore
c0a1ffa27a Fixed failing PdeKeywords test
Autoformat was not saving caret position any more. Fixed
2015-05-07 17:15:51 +02:00
Federico Fissore
9ebe916fac Restoring keyword.txt loading and parsing. Added token type identifiers and related style in theme.txt 2015-05-07 17:15:50 +02:00
Federico Fissore
58cd233aee New editor: addede missing license headers on new files 2015-05-07 17:15:50 +02:00
ricardo.jl.rufino
725dffa69e updated tests for new Textarea 2015-05-07 17:15:49 +02:00
ricardo.jl.rufino
2e497c6c47 removing files from the old editor 2015-05-07 17:15:49 +02:00
Federico Fissore
9b58812d1d Preparing the ground for rewriting Preferences GUI code (and hopefully fixing the tiny-pref-window bug on macosx) 2015-05-05 10:02:12 +02:00
Federico Fissore
cf1879f948 Introducing GPG signature verification when loading main package_index file 2015-05-04 12:05:50 +02:00
Federico Fissore
2d65814451 Added missing license header to tests 2015-04-30 11:26:15 +02:00
Federico Fissore
dabd6e4903 Tests weren't deleting temporary files: fixed 2015-04-15 11:00:23 +02:00