Commit Graph

2047 Commits

Author SHA1 Message Date
A Samuel Pottinger
ee299ef935 Move to ANTLR 4 with Java 11 lang features and localization. (#5)
* Move to ANTLR 4 with Java 11 lang features and localization.

Introduces ANTLR4 and Java 8 language feature support within IDE while also adding additional hooks for localization of syntax error messages, addressing https://github.com/processing/processing/issues/3054 and https://github.com/processing/processing/issues/3055.

The PR is broadly a continuation of https://github.com/processing/processing/issues/3055, bringing it up to speed with the latest Processing master plus the changes introduced at https://github.com/processing/processing/pull/5753. **Requires https://github.com/processing/processing/pull/5753 as pre-requisite.** This introduces a number of edits beyond https://github.com/processing/processing/issues/3055 beyond compatibility with current Processing master and https://github.com/processing/processing/pull/5753 including:

 - Update to the grammar itself
 - Change ANTLR listeners to emit `TextTransform.Edit` to unify JDT-based `PreprocessingService` and `JavaBuild`, removing code with duplicate purpose.
 - Introduction of syntax error rewriting with support for localization.
 - Addition of complete localized strings set for English and Spanish.
 - Addition of partial localized strings set for other languages.
 - Refactor of ANTLR-related code for testability and readability
 - Expansion of tests including full parse tests for new Java features (type inference, lambdas).

* Ask travis for ant upgrade prior to run.

* Ask Travis for java11 update.

* Add openjdk ppa

* Travis no confirmation on add ppa.

* Force newer ant on travis.

* Swtich ant download to www-us mirror.

* Switch ant to 1.10.7

* Start x for unit tests in travis.

* More complete start x in travis.

* Revert x in travis.

* Try x in services.
2019-10-05 23:34:38 -07:00
A Pottinger
c14695476e Moves to Java11 and OpenJDK via AdoptOpenJDK within the processing4 train.
Moves to Java11 and OpenJDK via AdoptOpenJDK within the processing4 train using a squash of sampottinger processing fork's java11 branch.

**Primary required changes:**
Some changes directly support OpenJFX / OpenJDK 11:

 - Response to image loading changes caused by [JEP 320](https://openjdk.java.net/jeps/320)
 - Use of jmodules as necessitated by [JEP 261](https://openjdk.java.net/jeps/261)
 - Reponse to largely changed file paths caused by [JEP 220](https://openjdk.java.net/jeps/220).
 - Modifications in build system related to AdoptOpenJDK and Java 11 which have a different naming structure for downloads.
 - Allowing use of non-Oracle Java within internal Processing checks.

**Secondary required changes:**
There were some secondary required changes that impacted the usability of Processing after having moved to OpenJFX / OpenJDK 11:

 - Removal of com.apple.eawt calls related to [JEP 272](http://openjdk.java.net/jeps/272)
 - Response to HiDPI support on Windows and Linux in [JEP 263](https://openjdk.java.net/jeps/263)
- Removal of `java.ext.dirs`. Would be forced by [JEP 220](http://openjdk.java.net/jeps/220).
 - Due to bugs on Windows, updated the JNA jars.
 - Changes in downloader build tasks to support AdoptOpenJDK and OpenJFX.
 - Updated org.eclipse.* / equinox jars.
 - Some optimization around size of distribution.
 - Update of AppBundler.
 - Some changes in formulation of classpath and modifications in PreprocessingService given [JEP 261](https://openjdk.java.net/jeps/261).

**Incidental changes:**
This was (ahem) a bit of a larger PR with the above modifications. So, I wanted to introduce automated tests when possible and convenient along with a few changes for platform sustainability in order to support development:

 - Addition of cross-building capability (!) made possible by AdoptOpenJDK.
 - Addition of mockito for testing.
 - Upgrade of junit.
 - Addition of ant-contrib.
 - Standardized nomenclature around JRE / JDK in `build/build.xml`
 - Deduplication of code in `jre/build.xml`.
 - Addition of JavaDoc in a few places.
 - Some refactoring of PImage / Shape to support increased testing and readability in image manipulation code.
2019-10-05 20:49:33 -07:00
REAS
9ec706889f Removing DoubleDict DoubleList LongDict LongList from Reference 2019-07-26 15:47:21 -07:00
REAS
dc322fb48a Remove redundant params for Server reference 2019-07-25 12:47:22 -07:00
Ben Fry
80eac720c7 preserve file attributes so things don't appear modified; fix some indents lost in tab conversion 2019-04-21 08:12:20 -04:00
Ben Fry
4cb3bc5d29 clean up some formatting and ordering issues 2019-03-02 17:57:42 -05:00
Ben Fry
cab7828902 update copyright years in processing.app.ui package 2019-01-22 19:06:09 -05:00
Ben Fry
1964bf65cb rewrite key stroke handling; now multi-platform, overridable by prefs 2019-01-22 18:28:43 -05:00
Ben Fry
98d5835f70 repair size() regression in 3.5 (fixes #5759) 2019-01-21 08:59:40 -05:00
Ben Fry
0b76e397e9 fixing #4703 reveals another bug 2019-01-20 10:28:14 -08:00
Ben Fry
5c339aafd0 don't remove settings() methods if settings() is present in code (fixes #4703) 2019-01-20 07:59:14 -08:00
Ben Fry
73cd701091 move problematic shortcuts out to the language files (fixes #2199) 2019-01-18 17:23:02 -08:00
Ben Fry
3673396587 move to JDK 1.8 instead of 1.6 b/c of Eclipse warnings 2019-01-18 09:55:43 -08:00
Ben Fry
3380239e68 Merge pull request #5486 from JakubValtar/fix-status-exception
Fix sketch exception getting hidden by warning
2019-01-18 08:28:52 -08:00
Ben Fry
c3c2dbb4c2 resolve ambiguous import 2019-01-17 08:53:45 -08:00
Jakub Valtar
8f37ebcb18 Fix freeze when restarting sketch with variables in size
While sketch is running, rewriting sketch size to variables and trying to restart the sketch by pressing the play button causes PDE to freeze. Fixed by moving AWT call to EDT.
2018-11-17 15:11:06 +01:00
gohai
a7e2d6f122 IO: Unify ADC examples 2018-07-26 00:25:12 -07:00
gohai
a21e5a280e IO: Add ADS1X15 Analog-to-Digital converter example 2018-07-26 00:25:06 -07:00
gohai
cbdfb06c99 IO: Add a dispose method to PCA9685 example, document pulse widths
Developed together with @OlivierLD
2018-07-12 13:27:30 -07:00
gohai
cc46c5e680 IO: Fix pinMode() retry logic
If the file node is not accessible yet, NativeInterface.writeFile() will return -EACCES instead of -EPERM. Thanks @msurguy for reporting this and testing.
2018-07-11 14:07:06 -07:00
gohai
80453e84ba IO: Make I2C errors more verbose
The error code returned from C seems to have changed from -EIO to -EREMOTEIO during some recent kernel version.
2018-07-10 10:16:46 -07:00
gohai
89c7a24152 IO: Rename ServoSweep example 2018-07-01 10:05:18 -07:00
gohai
7bd50e435a IO: Remove the duplicate "duty" argument from the reference for PWM.set() 2018-07-01 10:05:18 -07:00
Olivier LeDiouris
9843d1c88d IO: Add PCA9685 servo/PWM controller example
Donated by @OlivierLD, minor cleanups by @gohai
2018-07-01 10:05:18 -07:00
Olivier LeDiouris
5db3ec9227 IO: Add TSL2561 environmental sensor example
Donated by @OlivierLD, minor cleanups by @gohai
2018-07-01 10:05:18 -07:00
Olivier LeDiouris
2e05386994 IO: Add BME280 environmental sensor example
Donated by @OlivierLD, minor cleanups by @gohai
2018-07-01 10:05:18 -07:00
gohai
8aa1f803c4 IO: Add MPR121 capacitive touch example 2018-07-01 10:05:18 -07:00
gohai
67c4f3bd9d IO: Reorganize OOP examples 2018-07-01 10:05:18 -07:00
gohai
0bb5b77328 IO: Add a 100ms timeout to I2C to allow communication with Arduino
Note this currently does not include the compiled binary for linux-arm64
2018-07-01 10:05:03 -07:00
gohai
41a52e7423 IO: Fix crash when I2C.read() was called without prior write() 2018-07-01 10:05:03 -07:00
gohai
1f2b9a3e47 Enable exporting of Windows applications on ARM
Steps to compile ld & windres:
sudo aptitude install mingw-w64
wget https://ftp.gnu.org/gnu/binutils/binutils-2.30.tar.bz2
cd binutils-2.30
./configure --target=i686-w64-mingw32
make -j4 -l4
sudo make install
2018-06-26 19:14:24 -07:00
gohai
99e5f74694 IO: Speed up GPIO.pinMode() 2018-06-26 19:13:19 -07:00
gohai
aba636275c IO: Clarify SimpleInput example
As suggested by @msurguy
2018-06-26 19:12:51 -07:00
gohai
de2cac9860 IO: Implement Raspbian-only method for setting pull{up,down} resistors
Aarch64 version compiled courtesy of @xranby
2018-06-18 07:38:30 -07:00
Ben Fry
9015177fb2 todo notes and clean up a few warnings 2018-05-05 09:54:44 -04:00
Jakub Valtar
d29366d34b Change Editor status message only from EDT
This adapter invokes all status changes on the EDT instead of worker thread of the Runner. Modifying AWT components from the worker threads may introduce strange bugs and in this case caused UI changes to run out of order, hiding runtime exceptions under problems displayed when cursor moves to the offending line.
2018-04-24 11:31:27 +02:00
Ben Fry
f4bfffc5a9 remove preproc.substitute_unicode (fixes #5456) 2018-04-05 10:45:46 -04:00
gohai
7b273c83b3 Update java.lang.UnsupportedClassVersionError message
This came up in #5457
2018-03-31 14:20:18 -04:00
Ben Fry
6b7580889c blendMode() should be a warning, not fatal 2018-03-28 10:40:13 -04:00
Ben Fry
b28139a035 notes about completion work 2018-03-26 17:43:36 -04:00
Ben Fry
6cc0791fad more cleanup in completions code 2018-03-26 17:26:11 -04:00
Ben Fry
acacaf5225 more cleanup, time to merge these functions 2018-03-26 17:14:33 -04:00
Ben Fry
196a367449 more cleaning; switching to elementName instead of html parse (needs test) 2018-03-26 16:59:45 -04:00
Ben Fry
47a44983aa cleaning up CompletionCandidate... hoo boy 2018-03-26 16:39:42 -04:00
Ben Fry
e1d3d56b87 set default button in the Rename dialog (fixes #5400) 2018-03-26 14:06:22 -04:00
Ben Fry
8692c146a4 redo the dreadful layout for the Rename dialog 2018-03-26 14:02:56 -04:00
Ben Fry
5722b5323b close Rename (refactor) dialog on ESC (fixes #5391) 2018-03-26 12:02:21 -04:00
Ben Fry
bf29921140 moving more classes out, yech 2018-03-26 11:56:41 -04:00
Ben Fry
fcc6550960 breaking out these static classes to be on their own 2018-03-26 11:51:39 -04:00
Ben Fry
273b0d8b42 gonna move the rename dialog out 2018-03-26 11:42:14 -04:00