From 8a3b2f191ea811959fab475d5a5579c886e30fe9 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Sun, 21 Apr 2019 08:12:20 -0400 Subject: [PATCH 01/69] preserve file attributes so things don't appear modified; fix some indents lost in tab conversion --- build/build.xml | 17 ++++---- core/build.xml | 27 +++++++------ java/build.xml | 105 +++++++++++++++++++++++------------------------- 3 files changed, 73 insertions(+), 76 deletions(-) diff --git a/build/build.xml b/build/build.xml index fdd1d9a08a..bcc3ca42a4 100644 --- a/build/build.xml +++ b/build/build.xml @@ -388,11 +388,11 @@ message="Do not call assemble from the command line." /> - + - + @@ -403,7 +403,8 @@ - + @@ -643,7 +644,7 @@ - + @@ -785,7 +786,7 @@ - + @@ -818,7 +819,7 @@ - + @@ -1073,7 +1074,7 @@ - + @@ -1094,7 +1095,7 @@ - + diff --git a/core/build.xml b/core/build.xml index 0b82eba67e..e1bf0fd5fc 100644 --- a/core/build.xml +++ b/core/build.xml @@ -15,20 +15,20 @@ - - + - @@ -51,8 +51,8 @@ includeAntRuntime="false" debug="true" destdir="bin" - classpath="apple.jar; - library/jogl-all.jar; + classpath="apple.jar; + library/jogl-all.jar; library/gluegen-rt.jar" nowarn="true"> @@ -61,23 +61,24 @@ - + - + - + - + - + diff --git a/java/build.xml b/java/build.xml index 32932744b5..0fda9c2c55 100644 --- a/java/build.xml +++ b/java/build.xml @@ -1,15 +1,15 @@ - + - + - + @@ -23,12 +23,12 @@ - - - - - - + + + + + + @@ -37,9 +37,9 @@ - + @@ -49,28 +49,24 @@ - + - + - + - + @@ -86,38 +82,37 @@ - - + + https://github.com/processing/processing/issues/1792 --> + debug="on" + nowarn="true" + compiler="org.eclipse.jdt.core.JDTCompilerAdapter"> - From f25160db77d31004e1321d51c279dcb808b6ae7b Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Sun, 21 Apr 2019 08:30:47 -0400 Subject: [PATCH 02/69] update AppBundler, use newer macOS SDK, preserve attributes where possible --- build/macosx/appbundler.jar | Bin 143975 -> 139110 bytes build/macosx/appbundler/build.xml | 13 +++++++------ .../com/oracle/appbundler/AppBundlerTask.java | 13 +++++++++---- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/build/macosx/appbundler.jar b/build/macosx/appbundler.jar index 0102f306a9e0e01ca9f283e047c30891056380a5..42cc8f18cdc81f88ddfa7442762c0fb2ae4d6487 100644 GIT binary patch delta 19088 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∨4|G5+n%oO*EyIHwi5&bH3XATP1Lg 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 MtQaTv-A6(BKfwDM`v3p{ diff --git a/build/macosx/appbundler/build.xml b/build/macosx/appbundler/build.xml index 9b48b2bb5c..4d02204175 100644 --- a/build/macosx/appbundler/build.xml +++ b/build/macosx/appbundler/build.xml @@ -33,8 +33,8 @@ questions. version=1.0ea --> - - + + @@ -73,7 +73,8 @@ questions. - + + @@ -87,10 +88,10 @@ questions. - - + + diff --git a/build/macosx/appbundler/src/com/oracle/appbundler/AppBundlerTask.java b/build/macosx/appbundler/src/com/oracle/appbundler/AppBundlerTask.java index 8009c78b25..df4c26bc73 100644 --- a/build/macosx/appbundler/src/com/oracle/appbundler/AppBundlerTask.java +++ b/build/macosx/appbundler/src/com/oracle/appbundler/AppBundlerTask.java @@ -458,6 +458,7 @@ private void copyResources(File resourcesDirectory) throws IOException { } finally { outputStream.close(); } + file.setLastModified(zipEntry.getTime()); } zipEntry = zipInputStream.getNextEntry(); } @@ -729,7 +730,9 @@ private static void delete(File file) throws IOException { private static void copy(URL location, File file) throws IOException { try (InputStream in = location.openStream()) { - Files.copy(in, file.toPath(), StandardCopyOption.REPLACE_EXISTING); + Files.copy(in, file.toPath(), + // can't do attributes when coming from URL + StandardCopyOption.REPLACE_EXISTING); } } @@ -740,13 +743,15 @@ private static void copy(File source, File destination) throws IOException { destination.getParentFile().mkdirs(); - Files.copy(sourcePath, destinationPath, StandardCopyOption.REPLACE_EXISTING, LinkOption.NOFOLLOW_LINKS); + Files.copy(sourcePath, destinationPath, + StandardCopyOption.REPLACE_EXISTING, + StandardCopyOption.COPY_ATTRIBUTES, + LinkOption.NOFOLLOW_LINKS); if (Files.isDirectory(sourcePath, LinkOption.NOFOLLOW_LINKS)) { String[] files = source.list(); - for (int i = 0; i < files.length; i++) { - String file = files[i]; + for (String file : files) { copy(new File(source, file), new File(destination, file)); } } From 238b75d7c261997cce3794db94deeae049affd2c Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Sun, 21 Apr 2019 09:17:42 -0400 Subject: [PATCH 03/69] notes about build changes --- todo.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/todo.txt b/todo.txt index 1d7abd5487..6e714bdb8f 100755 --- a/todo.txt +++ b/todo.txt @@ -2,6 +2,8 @@ X use ctrl-page up/down for tabs on Windows X https://github.com/processing/processing/issues/5794 X fix potential highlighting issue that wasn't selecting portions of text +X update AppBundler to use newer SDK, recompile +X edit build.xml files and appbundler to preserve more attributes _ "Could not get the settings folder" isn't very helpful _ https://github.com/processing/processing/issues/5744 From 37108add372272d7b1fc23d2500dce911c4d1098 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Mon, 22 Apr 2019 20:30:32 -0400 Subject: [PATCH 04/69] attempt to use 8u212, but Oracle has broken the download --- build/build.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/build/build.xml b/build/build.xml index bcc3ca42a4..c7061c2c3d 100644 --- a/build/build.xml +++ b/build/build.xml @@ -77,6 +77,12 @@ or http://stackoverflow.com/q/10268583 --> + + From 5ce3b56b828ecc5f01d55f4f80c392d11ae8113d Mon Sep 17 00:00:00 2001 From: REAS Date: Thu, 25 Jul 2019 11:46:35 -0700 Subject: [PATCH 05/69] Hide 'items' param for StringList --- core/src/processing/data/StringList.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/src/processing/data/StringList.java b/core/src/processing/data/StringList.java index c4de6d33c0..2123a61432 100644 --- a/core/src/processing/data/StringList.java +++ b/core/src/processing/data/StringList.java @@ -49,6 +49,8 @@ public StringList(String[] list) { /** * Construct a StringList from a random pile of objects. Null values will * stay null, but all the others will be converted to String values. + * + * @nowebref */ public StringList(Object... items) { count = items.length; From 2811c75fe891366a9a51c3017073408c7ccec632 Mon Sep 17 00:00:00 2001 From: REAS Date: Thu, 25 Jul 2019 12:23:02 -0700 Subject: [PATCH 06/69] curvePoint() reference update --- core/src/processing/core/PGraphics.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/src/processing/core/PGraphics.java b/core/src/processing/core/PGraphics.java index 65bcb280d0..c4168a362c 100644 --- a/core/src/processing/core/PGraphics.java +++ b/core/src/processing/core/PGraphics.java @@ -3424,17 +3424,17 @@ public void bezier(float x1, float y1, float z1, * ( begin auto-generated from curvePoint.xml ) * * Evalutes the curve at point t for points a, b, c, d. The parameter t - * varies between 0 and 1, a and d are points on the curve, and b and c are - * the control points. This can be done once with the x coordinates and a + * varies between 0 and 1, a and d are the control points, and b and c are + * the points on the curve. This can be done once with the x coordinates and a * second time with the y coordinates to get the location of a curve at t. * * ( end auto-generated ) * * @webref shape:curves - * @param a coordinate of first point on the curve - * @param b coordinate of second point on the curve - * @param c coordinate of third point on the curve - * @param d coordinate of fourth point on the curve + * @param a coordinate of first control point + * @param b coordinate of first point on the curve + * @param c coordinate of second point on the curve + * @param d coordinate of second control point * @param t value between 0 and 1 * @see PGraphics#curve(float, float, float, float, float, float, float, float, float, float, float, float) * @see PGraphics#curveVertex(float, float) From 19657b6d45a689471a65bffe4c3085bb665db890 Mon Sep 17 00:00:00 2001 From: REAS Date: Thu, 25 Jul 2019 12:42:01 -0700 Subject: [PATCH 07/69] Reference change to PApplet --- core/src/processing/core/PApplet.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/src/processing/core/PApplet.java b/core/src/processing/core/PApplet.java index db2f562ba4..7f22ac3570 100644 --- a/core/src/processing/core/PApplet.java +++ b/core/src/processing/core/PApplet.java @@ -12573,17 +12573,17 @@ public void bezier(float x1, float y1, float z1, * ( begin auto-generated from curvePoint.xml ) * * Evalutes the curve at point t for points a, b, c, d. The parameter t - * varies between 0 and 1, a and d are points on the curve, and b and c are - * the control points. This can be done once with the x coordinates and a + * varies between 0 and 1, a and d are the control points, and b and c are + * the points on the curve. This can be done once with the x coordinates and a * second time with the y coordinates to get the location of a curve at t. * * ( end auto-generated ) * * @webref shape:curves - * @param a coordinate of first point on the curve - * @param b coordinate of second point on the curve - * @param c coordinate of third point on the curve - * @param d coordinate of fourth point on the curve + * @param a coordinate of first control point + * @param b coordinate of first point on the curve + * @param c coordinate of second point on the curve + * @param d coordinate of second control point * @param t value between 0 and 1 * @see PGraphics#curve(float, float, float, float, float, float, float, float, float, float, float, float) * @see PGraphics#curveVertex(float, float) From 985dfdaccfd0f85ac468dc24395b7a4aa1630fc5 Mon Sep 17 00:00:00 2001 From: REAS Date: Thu, 25 Jul 2019 12:47:22 -0700 Subject: [PATCH 08/69] Remove redundant params for Server reference --- java/libraries/net/src/processing/net/Server.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/java/libraries/net/src/processing/net/Server.java b/java/libraries/net/src/processing/net/Server.java index e027142fa9..61a877202a 100644 --- a/java/libraries/net/src/processing/net/Server.java +++ b/java/libraries/net/src/processing/net/Server.java @@ -73,8 +73,6 @@ public Server(PApplet parent, int port) { /** - * @param parent typically use "this" - * @param port port used to transfer data * @param host when multiple NICs are in use, the ip (or name) to bind from */ public Server(PApplet parent, int port, String host) { From 48ab85c55d6f6f37e5af6840df3eaa4a81ddc53b Mon Sep 17 00:00:00 2001 From: REAS Date: Thu, 25 Jul 2019 14:08:47 -0700 Subject: [PATCH 09/69] Reference update for XML getChild() --- core/src/processing/data/XML.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/src/processing/data/XML.java b/core/src/processing/data/XML.java index 49880c8887..7089e65db3 100644 --- a/core/src/processing/data/XML.java +++ b/core/src/processing/data/XML.java @@ -440,8 +440,7 @@ public XML[] getChildren() { /** * Quick accessor for an element at a particular index. * - * @webref xml:method - * @brief Returns the child element with the specified index value or path + * @nowebref */ public XML getChild(int index) { checkChildren(); @@ -452,6 +451,8 @@ public XML getChild(int index) { /** * Get a child by its name or path. * + * @webref xml:method + * @brief Returns the child element with the specified index value or path * @param name element name or path/to/element * @return the first matching element or null if no match */ From 63394a8744330582c5fbead1b4d254de8ae2f7f2 Mon Sep 17 00:00:00 2001 From: REAS Date: Thu, 25 Jul 2019 14:52:53 -0700 Subject: [PATCH 10/69] Reference documentation for the 'str' parameter for text() --- core/src/processing/core/PApplet.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/src/processing/core/PApplet.java b/core/src/processing/core/PApplet.java index 7f22ac3570..35c3f848c1 100644 --- a/core/src/processing/core/PApplet.java +++ b/core/src/processing/core/PApplet.java @@ -13220,6 +13220,8 @@ public void text(char c, float x, float y, float z) { * Newlines that are \n (Unix newline or linefeed char, ascii 10) * are honored, but \r (carriage return, Windows and Mac OS) are * ignored. + * + * @param str the String to be displayed */ public void text(String str, float x, float y) { if (recorder != null) recorder.text(str, x, y); From de0dca8397f7d05ccaf9d131e9aaf9786d765499 Mon Sep 17 00:00:00 2001 From: REAS Date: Thu, 25 Jul 2019 14:56:54 -0700 Subject: [PATCH 11/69] Reference, add more related functions to size() --- core/src/processing/core/PApplet.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/src/processing/core/PApplet.java b/core/src/processing/core/PApplet.java index 35c3f848c1..8250890238 100644 --- a/core/src/processing/core/PApplet.java +++ b/core/src/processing/core/PApplet.java @@ -2000,6 +2000,9 @@ public void fullScreen(String renderer, int display) { * @param height height of the display window in units of pixels * @see PApplet#width * @see PApplet#height + * @see PApplet#setup() + * @see PApplet#settings() + * @see PApplet#fullscreen() */ public void size(int width, int height) { // Check to make sure the width/height have actually changed. It's ok to From 62d3e6524da540358c53608abfe2c180f86b1181 Mon Sep 17 00:00:00 2001 From: REAS Date: Thu, 25 Jul 2019 16:43:59 -0700 Subject: [PATCH 12/69] Add 'gray' parameter info to reference --- core/src/processing/core/PApplet.java | 8 +++++--- core/src/processing/core/PGraphics.java | 4 ++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/core/src/processing/core/PApplet.java b/core/src/processing/core/PApplet.java index 8250890238..00de12c62b 100644 --- a/core/src/processing/core/PApplet.java +++ b/core/src/processing/core/PApplet.java @@ -2002,7 +2002,7 @@ public void fullScreen(String renderer, int display) { * @see PApplet#height * @see PApplet#setup() * @see PApplet#settings() - * @see PApplet#fullscreen() + * @see PApplet#fullScreen() */ public void size(int width, int height) { // Check to make sure the width/height have actually changed. It's ok to @@ -13223,8 +13223,6 @@ public void text(char c, float x, float y, float z) { * Newlines that are \n (Unix newline or linefeed char, ascii 10) * are honored, but \r (carriage return, Windows and Mac OS) are * ignored. - * - * @param str the String to be displayed */ public void text(String str, float x, float y) { if (recorder != null) recorder.text(str, x, y); @@ -14860,6 +14858,8 @@ public void specular(int rgb) { /** * gray number specifying value between white and black + * + * @param gray value between black and white, by default 0 to 255 */ public void specular(float gray) { if (recorder != null) recorder.specular(gray); @@ -14925,6 +14925,8 @@ public void emissive(int rgb) { /** * gray number specifying value between white and black + * + * @param gray value between black and white, by default 0 to 255 */ public void emissive(float gray) { if (recorder != null) recorder.emissive(gray); diff --git a/core/src/processing/core/PGraphics.java b/core/src/processing/core/PGraphics.java index c4168a362c..032b69928d 100644 --- a/core/src/processing/core/PGraphics.java +++ b/core/src/processing/core/PGraphics.java @@ -6940,6 +6940,8 @@ public void specular(int rgb) { /** * gray number specifying value between white and black + * + * @param gray value between black and white, by default 0 to 255 */ public void specular(float gray) { colorCalc(gray); @@ -7017,6 +7019,8 @@ public void emissive(int rgb) { /** * gray number specifying value between white and black + * + * @param gray value between black and white, by default 0 to 255 */ public void emissive(float gray) { colorCalc(gray); From a279738d8c2f7af96601e20a91258362ecc33ec3 Mon Sep 17 00:00:00 2001 From: REAS Date: Fri, 26 Jul 2019 14:54:20 -0700 Subject: [PATCH 13/69] Changes for pixel reference for density --- core/src/processing/core/PApplet.java | 6 +++++- core/src/processing/core/PImage.java | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/core/src/processing/core/PApplet.java b/core/src/processing/core/PApplet.java index 00de12c62b..4492d6ae00 100644 --- a/core/src/processing/core/PApplet.java +++ b/core/src/processing/core/PApplet.java @@ -281,6 +281,9 @@ public class PApplet implements PConstants { * @see PApplet#get(int, int, int, int) * @see PApplet#set(int, int, int) * @see PImage + * @see PApplet#pixelDensity() + * @see PApplet#pixelWidth + * @see PApplet#pixelHeight */ public int[] pixels; @@ -1210,7 +1213,8 @@ public int displayDensity(int display) { /** * @webref environment * @param density 1 or 2 - * + * @see PApplet#pixelWidth + * @see PApplet#pixelHeight */ public void pixelDensity(int density) { //println(density + " " + this.pixelDensity); diff --git a/core/src/processing/core/PImage.java b/core/src/processing/core/PImage.java index 049d198f44..e21520d58f 100644 --- a/core/src/processing/core/PImage.java +++ b/core/src/processing/core/PImage.java @@ -90,7 +90,7 @@ public class PImage implements PConstants, Cloneable { * * @webref image:pixels * @usage web_application - * @brief Array containing the color of every pixel in the image + * @brief Array containing the color of every pixel in the image */ public int[] pixels; From e77ce475015844094e687a94a0b18060f9ccac52 Mon Sep 17 00:00:00 2001 From: REAS Date: Fri, 26 Jul 2019 15:47:21 -0700 Subject: [PATCH 14/69] Removing DoubleDict DoubleList LongDict LongList from Reference --- core/src/processing/data/DoubleDict.java | 2 +- core/src/processing/data/DoubleList.java | 2 +- core/src/processing/data/LongDict.java | 2 +- core/src/processing/data/LongList.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/processing/data/DoubleDict.java b/core/src/processing/data/DoubleDict.java index f2a9adf10f..5cec4d6e18 100644 --- a/core/src/processing/data/DoubleDict.java +++ b/core/src/processing/data/DoubleDict.java @@ -12,7 +12,7 @@ /** * A simple table class to use a String as a lookup for an double value. * - * @webref data:composite + * @nowebref * @see IntDict * @see StringDict */ diff --git a/core/src/processing/data/DoubleList.java b/core/src/processing/data/DoubleList.java index ae47a84420..6c364130c9 100644 --- a/core/src/processing/data/DoubleList.java +++ b/core/src/processing/data/DoubleList.java @@ -17,7 +17,7 @@ * Functions like sort() and shuffle() always act on the list itself. To get * a sorted copy, use list.copy().sort(). * - * @webref data:composite + * @nowebref * @see IntList * @see StringList */ diff --git a/core/src/processing/data/LongDict.java b/core/src/processing/data/LongDict.java index 5292468625..c9bf408216 100644 --- a/core/src/processing/data/LongDict.java +++ b/core/src/processing/data/LongDict.java @@ -11,7 +11,7 @@ /** * A simple class to use a String as a lookup for an int value. * - * @webref data:composite + * @nowebref * @see FloatDict * @see StringDict */ diff --git a/core/src/processing/data/LongList.java b/core/src/processing/data/LongList.java index 77bbd8b159..adfb1ea83c 100644 --- a/core/src/processing/data/LongList.java +++ b/core/src/processing/data/LongList.java @@ -22,7 +22,7 @@ * Functions like sort() and shuffle() always act on the list itself. To get * a sorted copy, use list.copy().sort(). * - * @webref data:composite + * @nowebref * @see FloatList * @see StringList */ From af1e2ee4ef95d689904565379f56319490cdc0f6 Mon Sep 17 00:00:00 2001 From: Jeremy Douglass Date: Sun, 11 Aug 2019 23:29:43 -0700 Subject: [PATCH 15/69] rename-variable menu allows Java identifiers Previously it was limited to unicode identifiers--for example a beginning with _ was forbidden; not so in Java. Closes #5828 "rename-variable dialog doesn't allow 1st-char underscore" --- java/src/processing/mode/java/pdex/Rename.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/java/src/processing/mode/java/pdex/Rename.java b/java/src/processing/mode/java/pdex/Rename.java index 7c5c6bca27..b143cd721a 100644 --- a/java/src/processing/mode/java/pdex/Rename.java +++ b/java/src/processing/mode/java/pdex/Rename.java @@ -129,8 +129,8 @@ public void componentHidden(ComponentEvent e) { final String newName = textField.getText().trim(); if (!newName.isEmpty()) { if (newName.length() >= 1 && - newName.chars().limit(1).allMatch(Character::isUnicodeIdentifierStart) && - newName.chars().skip(1).allMatch(Character::isUnicodeIdentifierPart)) { + newName.chars().limit(1).allMatch(Character::isJavaIdentifierStart) && + newName.chars().skip(1).allMatch(Character::isJavaIdentifierPart)) { rename(ps, binding, newName); window.setVisible(false); } else { @@ -332,4 +332,4 @@ void dispose() { window.dispose(); } } -} \ No newline at end of file +} From 05eb23a8daa3ea2fb92d88a929e4799c69cecd6a Mon Sep 17 00:00:00 2001 From: Gal Sasson Date: Sat, 17 Aug 2019 01:04:16 +0300 Subject: [PATCH 16/69] tweakmode fix: needs editor reference on launch --- java/src/processing/mode/java/JavaEditor.java | 2 +- java/src/processing/mode/java/JavaMode.java | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/java/src/processing/mode/java/JavaEditor.java b/java/src/processing/mode/java/JavaEditor.java index 1e68198fdf..6b87398c15 100644 --- a/java/src/processing/mode/java/JavaEditor.java +++ b/java/src/processing/mode/java/JavaEditor.java @@ -1098,7 +1098,7 @@ protected void handleLaunch(boolean present, boolean tweak) { if (!tweak) { runtime = jmode.handleLaunch(sketch, listener, present); } else { - runtime = jmode.handleTweak(sketch, listener); + runtime = jmode.handleTweak(sketch, listener, JavaEditor.this); } } } diff --git a/java/src/processing/mode/java/JavaMode.java b/java/src/processing/mode/java/JavaMode.java index c201dd7ca7..54a70462bb 100644 --- a/java/src/processing/mode/java/JavaMode.java +++ b/java/src/processing/mode/java/JavaMode.java @@ -140,9 +140,7 @@ public void run() { /** Start a sketch in tweak mode */ public Runner handleTweak(Sketch sketch, - RunnerListener listener) throws SketchException { -// final boolean present) throws SketchException { - final JavaEditor editor = (JavaEditor) listener; + RunnerListener listener, JavaEditor editor) throws SketchException { // first try to build the unmodified code JavaBuild build = new JavaBuild(sketch); From 5d4f4dd9c98ccefaa8cc49548b2f7d708e540295 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Thu, 3 Oct 2019 18:40:44 -0400 Subject: [PATCH 17/69] deal with an NPE inside PShape --- core/src/processing/core/PShape.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/core/src/processing/core/PShape.java b/core/src/processing/core/PShape.java index b587e3e9b0..0c622d18b8 100644 --- a/core/src/processing/core/PShape.java +++ b/core/src/processing/core/PShape.java @@ -2963,12 +2963,16 @@ public boolean isClosed() { */ public boolean contains(float x, float y) { if (family == PATH) { - // apply the inverse transformation matrix to the point coordinates - PMatrix inverseCoords = matrix.get(); - inverseCoords.invert(); // maybe cache this? - inverseCoords.invert(); // maybe cache this? - PVector p = new PVector(); - inverseCoords.mult(new PVector(x,y),p); + PVector p = new PVector(x, y); + if (matrix != null) { + // apply the inverse transformation matrix to the point coordinates + PMatrix inverseCoords = matrix.get(); + // TODO why is this called twice? [fry 190724] + // commit was https://github.com/processing/processing/commit/027fc7a4f8e8d0a435366eae754304eea282512a + inverseCoords.invert(); // maybe cache this? + inverseCoords.invert(); // maybe cache this? + inverseCoords.mult(new PVector(x, y), p); + } // http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html boolean c = false; From 0f00a68f497714f4448d6370f154b61a2721cbd9 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Thu, 3 Oct 2019 18:40:52 -0400 Subject: [PATCH 18/69] notes about recent bugs --- todo.txt | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/todo.txt b/todo.txt index 6e714bdb8f..5ef2bc1a6e 100755 --- a/todo.txt +++ b/todo.txt @@ -5,6 +5,29 @@ X fix potential highlighting issue that wasn't selecting portions of text X update AppBundler to use newer SDK, recompile X edit build.xml files and appbundler to preserve more attributes +_ windows anti-malware leaves browser stuck at 100% +_ https://github.com/processing/processing/issues/5893 + +_ startup errors in contrib manager +_ https://github.com/processing/processing/issues/5482 +_ https://github.com/processing/processing/issues/5916 +_ https://github.com/processing/processing/issues/5823 + +fork issues +_ processing-sam/build/macosx/jdk-0u1_macosx_64.tgz + +from Casey +_ Issue with https and downloading the binaries, +Checksums? +_ https://github.com/processing/processing-docs/issues/766 +_ Math for BLEND incorrect in the reference? +_ https://github.com/processing/processing-docs/issues/762 +_ .setAngle() for PVector? +_ https://github.com/processing/processing-docs/issues/744 +_ Installation on Linux +_ https://github.com/processing/processing-docs/issues/645 +_ How much of the attrib*() functions should be documented? +_ https://github.com/processing/processing-docs/issues/172 + _ "Could not get the settings folder" isn't very helpful _ https://github.com/processing/processing/issues/5744 _ need to check the locations it'd be writing to, and see if available From faf7271291c3484e9eee79685eef256f06b8243c Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Thu, 3 Oct 2019 20:15:02 -0400 Subject: [PATCH 19/69] another todo note --- todo.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/todo.txt b/todo.txt index 5ef2bc1a6e..0a779e299d 100755 --- a/todo.txt +++ b/todo.txt @@ -698,6 +698,8 @@ PDE / Manager _ Manager fails to complete install of PythonMode when no windows open _ https://github.com/processing/processing/issues/5309 +_ Python Mode not downloading? +_ https://github.com/processing/processing/issues/5918 _ an incompatible Mode prevents the PDE from quitting after last window is closed _ https://github.com/processing/processing/issues/5112 _ “could not move the contribution to the backup folder” message while updating From 4734fd33f08b64d034a75a15f077b58bf58d3bf1 Mon Sep 17 00:00:00 2001 From: Rostyslav Zatserkovnyi Date: Mon, 28 Oct 2019 00:26:04 +0200 Subject: [PATCH 20/69] Add new strings to Ukrainian translation --- build/shared/lib/languages/PDE_uk.properties | 46 ++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/build/shared/lib/languages/PDE_uk.properties b/build/shared/lib/languages/PDE_uk.properties index 8a34b5a39f..9eb9050fbb 100644 --- a/build/shared/lib/languages/PDE_uk.properties +++ b/build/shared/lib/languages/PDE_uk.properties @@ -31,6 +31,9 @@ menu.file.quit = Вийти menu.edit = Редагування menu.edit.undo = Скасувати menu.edit.redo = Повторити +menu.edit.redo.keystroke.macosx = shift meta pressed Z +menu.edit.redo.keystroke.windows = ctrl pressed Y +menu.edit.redo.keystroke.linux = shift ctrl pressed Z menu.edit.action.addition = додавання menu.edit.action.deletion = видалення menu.edit.cut = Вирізати @@ -40,8 +43,17 @@ menu.edit.paste = Вставити menu.edit.select_all = Виділити все menu.edit.auto_format = Автоформатування menu.edit.comment_uncomment = Коментувати/Розкоментувати +menu.edit.comment_uncomment.keystroke.macosx = meta pressed SLASH +menu.edit.comment_uncomment.keystroke.windows = ctrl pressed SLASH +menu.edit.comment_uncomment.keystroke.linux = ctrl pressed SLASH menu.edit.increase_indent = → Збільшити відступ +menu.edit.increase_indent.keystroke.macosx = meta pressed CLOSE_BRACKET +menu.edit.increase_indent.keystroke.windows = ctrl pressed CLOSE_BRACKET +menu.edit.increase_indent.keystroke.linux = ctrl pressed CLOSE_BRACKET menu.edit.decrease_indent = ← Зменшити відступ +menu.edit.decrease_indent.keystroke.macosx = meta pressed OPEN_BRACKET +menu.edit.decrease_indent.keystroke.windows = ctrl pressed OPEN_BRACKET +menu.edit.decrease_indent.keystroke.linux = ctrl pressed OPEN_BRACKET menu.edit.find = Знайти... menu.edit.find_next = Знайти наступне menu.edit.find_previous = Знайти попереднє @@ -77,8 +89,17 @@ menu.debug.toggle_breakpoint = Додати / вилучити точку зуп # --- # used for both menus and toolbars menu.debug.step = Крок +menu.debug.step.keystroke.macosx = meta pressed J +menu.debug.step.keystroke.windows = ctrl pressed J +menu.debug.step.keystroke.linux = ctrl pressed J menu.debug.step_into = Крок із заходом +menu.debug.step_into.keystroke.macosx = shift meta pressed J +menu.debug.step_into.keystroke.windows = shift ctrl pressed J +menu.debug.step_into.keystroke.linux = shift ctrl pressed J menu.debug.step_out = Крок із виходом +menu.debug.step_out.keystroke.macosx = meta alt pressed J +menu.debug.step_out.keystroke.windows = ctrl alt pressed J +menu.debug.step_out.keystroke.linux = ctrl alt pressed J menu.debug.continue = Продовжити # --- #menu.debug.print_stack_trace = Друкувати стек викликів @@ -166,6 +187,8 @@ preferences.editor_and_console_font = Шрифт редактора і конс preferences.editor_and_console_font.tip = Виберіть шрифт, що використовуватиметься у редакторі та консолі.
Можна використовувати лише моноширинні шрифти. preferences.editor_font_size = Розмір шрифту редактора preferences.console_font_size = Розмір шрифту консолі +preferences.zoom = Розмір інтерфейсу +preferences.zoom.auto = Автоматичний preferences.background_color = Колір фону в режимі презентації preferences.background_color.tip = Виберіть фоновий колір для режиму презентації.
Режим презентації використовується для повноекранної презентації ескізу
і доступний з меню Ескіз. preferences.use_smooth_text = Використовувати згладжений текст у вікні редактора @@ -311,7 +334,13 @@ editor.header.new_tab = Нова вкладка editor.header.rename = Перейменувати editor.header.delete = Видалити editor.header.previous_tab = Попередня вкладка +editor.header.previous_tab.keystroke.macosx = meta alt pressed LEFT +editor.header.previous_tab.keystroke.windows = ctrl pressed PAGE_UP +editor.header.previous_tab.keystroke.linux = ctrl pressed PAGE_UP editor.header.next_tab = Наступна вкладка +editor.header.next_tab.keystroke.macosx = meta alt pressed RIGHT +editor.header.next_tab.keystroke.windows = ctrl pressed PAGE_DOWN +editor.header.next_tab.keystroke.linux = ctrl pressed PAGE_DOWN editor.header.delete.warning.title = Хех, ні. editor.header.delete.warning.text = Не можна видалити головну вкладку єдиного відкритого ескізу. @@ -362,6 +391,7 @@ editor.status.missing.right_paren = Відсутня ")" editor.status.missing.left_curly_bracket = Відсутня "{" editor.status.missing.right_curly_bracket = Відсутня "}" editor.status.missing.add = Спробуйте додати "%s" +editor.status.bad_curly_quote = Фігурні лапки %s не працюють. Використовуйте прямі лапки. Ctrl-T для автозаміни. editor.status.reserved_words = "color" і "int" - зарезервовані ідентифікатори і не можуть бути назвами змінних editor.status.undefined_method = Функція "%s(%s)" не існує editor.status.undefined_constructor = Конструктор "%s(%s)" не існує @@ -371,10 +401,12 @@ editor.status.undef_global_var = Глобальна змінна "%s" не іс editor.status.undef_class = Клас "%s" не існує editor.status.undef_var = Змінна "%s" не існує editor.status.undef_name = Ім’я "%s" не може бути розпізнано +editor.status.unterm_string_curly = Рядковий літерал не оточений прямими лапками. Фігурні лапки %s не працюють. editor.status.type_mismatch = Неспівпадіння типів "%s" та "%s" editor.status.unused_variable = Локальна змінна "%s" ніде не використовується editor.status.uninitialized_variable = Локальна змінна "%s" може бути не ініціалізована editor.status.no_effect_assignment = Присвоєння змінної "%s" не має чинності +editor.status.hiding_enclosing_type = Клас "%s" не може мати ім'я ескізу або батьківського класу. # Footer buttons editor.footer.errors = Помилки @@ -449,6 +481,18 @@ ensure_exist.messages.unrecoverable.description = Не вдалось повто # Check name check_name.messages.is_name_modified = Ім’я ескізу потрібно було змінити. Імена ескізів можуть містити\nтільки ASCII-символи і числа (але не можуть починатися з числа).\nКрім того, вони мають бути не довшими за 64 символи. +# External changes detector +change_detect.reload.title=Вкладка змінена ззовні +change_detect.reload.question="%s" була змінена іншою програмою. +change_detect.reload.comment=Бажаєте залишити цю версію чи завантажити зміни ззовні?\nТак чи інакше, файл буде збережено в папці з ескізами. +change_detect.button.keep=Залишити +change_detect.button.load_new=Завантажити зміни ззовні +change_detect.delete.title=Вкладка видалена +change_detect.delete.question="%s" зникла з папки з ескізами. +change_detect.delete.comment=Бажаєте повторно її зберегти чи видалити зі свого ескізу? +change_detect.button.discard=Видалити назавжди +change_detect.button.resave=Повторно зберегти + # --------------------------------------- # Contributions @@ -533,6 +577,8 @@ contrib.import.errors.link = Помилка: У бібліотеки %s неді warn.delete = Видалення warn.delete.sketch = Ви впевнені, що хочете видалити цей ескіз? warn.delete.file = Ви впевнені, що хочете видалити "%s"? +warn.cannot_change_mode.title = Зміна режиму неможлива +warn.cannot_change_mode.body = Зміна режиму неможлива,\nоскільки режим "%s" несумісний з поточним режимом. # --------------------------------------- From d6b30602a703e1d0280392c54794486ee34bca8c Mon Sep 17 00:00:00 2001 From: REAS Date: Fri, 22 Nov 2019 10:55:45 -0800 Subject: [PATCH 21/69] Update keywords.txt --- java/keywords.txt | 1078 +++++++++++++++++++++++---------------------- 1 file changed, 541 insertions(+), 537 deletions(-) diff --git a/java/keywords.txt b/java/keywords.txt index a59b071766..b71cbf66ba 100644 --- a/java/keywords.txt +++ b/java/keywords.txt @@ -1,17 +1,18 @@ -# THE TEXT BELOW IS HAND WRITTEN AND FOUND IN THE FILE "keywords_base.txt" -# IN THE PROCESSING-DOCS REPO. DON'T EDITS THE keywords.txt FILE DIRECTLY. +# THIS TEXT IS FROM keywords_base.txt IN THE PROCESSING-DOCS REPO: +# https://github.com/processing/processing-docs/blob/master/generate/keywords_base.txt +# MAKE CHANGES THERE: DO NOT EDIT THE keywords.txt FILE DIRECTLY. -# For an explanation of these tags, see Token.java +# For an explanation of these tags, see Token.java # trunk/processing/app/src/processing/app/syntax/Token.java ADD LITERAL2 blend_ -ALIGN_CENTER LITERAL2 -ALIGN_LEFT LITERAL2 -ALIGN_RIGHT LITERAL2 +ALIGN_CENTER LITERAL2 +ALIGN_LEFT LITERAL2 +ALIGN_RIGHT LITERAL2 ALPHA LITERAL2 ALPHA_MASK LITERAL2 ALT LITERAL2 -AMBIENT LITERAL2 +AMBIENT LITERAL2 ARC LITERAL2 createShape_ ARROW LITERAL2 cursor_ ARGB LITERAL2 @@ -24,7 +25,7 @@ BLUR LITERAL2 filter_ BOTTOM LITERAL2 textAlign_ BOX LITERAL2 createShape_ BURN LITERAL2 blend_ -CENTER LITERAL2 +CENTER LITERAL2 CHATTER LITERAL2 CHORD LITERAL2 arc_ CLAMP LITERAL2 @@ -88,7 +89,7 @@ GIF LITERAL2 GRAY LITERAL2 filter_ GREEN_MASK LITERAL2 GROUP LITERAL2 -HALF LITERAL2 +HALF LITERAL2 HALF_PI LITERAL2 HALF_PI HAND LITERAL2 cursor_ HARD_LIGHT LITERAL2 blend_ @@ -97,7 +98,7 @@ HSB LITERAL2 colorMode_ IMAGE LITERAL2 textureMode_ INVERT LITERAL2 filter_ JAVA2D LITERAL2 size_ -JPEG LITERAL2 +JPEG LITERAL2 LEFT LITERAL2 keyCode LIGHTEST LITERAL2 blend_ LINE LITERAL2 createShape_ @@ -105,18 +106,18 @@ LINES LITERAL2 beginShape_ LINUX LITERAL2 MACOSX LITERAL2 MAX_FLOAT LITERAL2 -MAX_INT LITERAL2 +MAX_INT LITERAL2 MIN_FLOAT LITERAL2 MIN_INT LITERAL2 MITER LITERAL2 stokeJoin_ MODEL LITERAL2 textMode_ MOVE LITERAL2 cursor_ MULTIPLY LITERAL2 blend_ -NORMAL LITERAL2 +NORMAL LITERAL2 NORMALIZED LITERAL2 textureMode_ NO_DEPTH_TEST LITERAL2 NTSC LITERAL2 -ONE LITERAL2 +ONE LITERAL2 OPAQUE LITERAL2 filter_ OPEN LITERAL2 ORTHOGRAPHIC LITERAL2 @@ -127,13 +128,13 @@ P2D LITERAL2 size_ P3D LITERAL2 size_ PERSPECTIVE LITERAL2 PI LITERAL2 PI -PIE LITERAL2 +PIE LITERAL2 PIXEL_CENTER LITERAL2 POINT LITERAL2 -POINTS LITERAL2 +POINTS LITERAL2 POSTERIZE LITERAL2 filter_ PRESS LITERAL2 -PROBLEM LITERAL2 +PROBLEM LITERAL2 PROJECT LITERAL2 strokeCap_ QUAD LITERAL2 createShape_ QUAD_STRIP LITERAL2 beginShape_ @@ -146,23 +147,23 @@ RECT LITERAL2 RED_MASK LITERAL2 RELEASE LITERAL2 REPEAT LITERAL2 -REPLACE LITERAL2 +REPLACE LITERAL2 RETURN LITERAL2 RGB LITERAL2 colorMode_ RIGHT LITERAL2 keyCode ROUND LITERAL2 strokeCap_ SCREEN LITERAL2 blend_ -SECAM LITERAL2 +SECAM LITERAL2 SHAPE LITERAL2 textMode_ SHIFT LITERAL2 -SPAN LITERAL2 fullScreen_ +SPAN LITERAL2 fullScreen_ SPECULAR LITERAL2 SPHERE LITERAL2 createShape_ SOFT_LIGHT LITERAL2 blend_ SQUARE LITERAL2 strokeCap_ SUBTRACT LITERAL2 blend_ SVG LITERAL2 -SVIDEO LITERAL2 +SVIDEO LITERAL2 TAB LITERAL2 keyCode TARGA LITERAL2 TAU LITERAL2 TAU @@ -181,17 +182,17 @@ TWO LITERAL2 TWO_PI LITERAL2 TWO_PI UP LITERAL2 keyCode WAIT LITERAL2 cursor_ -WHITESPACE LITERAL2 +WHITESPACE LITERAL2 # Java keywords (void, import, , etc.) - + abstract KEYWORD1 break KEYWORD1 break class KEYWORD1 class continue KEYWORD1 continue -default KEYWORD1 default -enum KEYWORD1 +default KEYWORD1 default +enum KEYWORD1 extends KEYWORD1 extends false KEYWORD1 false final KEYWORD1 final @@ -199,17 +200,17 @@ finally KEYWORD1 implements KEYWORD1 implements import KEYWORD1 import instanceof KEYWORD1 -interface KEYWORD1 +interface KEYWORD1 native KEYWORD1 new KEYWORD1 new null KEYWORD1 null -package KEYWORD1 +package KEYWORD1 private KEYWORD1 private -protected KEYWORD1 +protected KEYWORD1 public KEYWORD1 public static KEYWORD1 static -strictfp KEYWORD1 -throws KEYWORD1 +strictfp KEYWORD1 +throws KEYWORD1 transient KEYWORD1 true KEYWORD1 true void KEYWORD1 void @@ -220,7 +221,7 @@ volatile KEYWORD1 assert KEYWORD6 case KEYWORD6 case -return KEYWORD6 return +return KEYWORD6 return super KEYWORD6 super this KEYWORD6 this throw KEYWORD6 @@ -230,18 +231,17 @@ throw KEYWORD6 Array KEYWORD5 Array ArrayList KEYWORD5 ArrayList -Boolean KEYWORD5 -Byte KEYWORD5 +Boolean KEYWORD5 +Byte KEYWORD5 BufferedReader KEYWORD5 BufferedReader -Character KEYWORD5 +Character KEYWORD5 Class KEYWORD5 class -Double KEYWORD5 -Float KEYWORD5 -Integer KEYWORD5 +Float KEYWORD5 +Integer KEYWORD5 HashMap KEYWORD5 HashMap PrintWriter KEYWORD5 PrintWriter String KEYWORD5 String -StringBuffer KEYWORD5 +StringBuffer KEYWORD5 StringBuilder KEYWORD5 Thread KEYWORD5 boolean KEYWORD5 boolean @@ -252,7 +252,6 @@ double KEYWORD5 double float KEYWORD5 float int KEYWORD5 int long KEYWORD5 long -short KEYWORD5 # Flow structures @@ -386,549 +385,554 @@ pixelHeight KEYWORD4 pixelHeight # # THE TEXT BELOW IS AUTO-GENERATED # -# SO -# DON'T -# TOUCH +# SO +# DON'T +# TOUCH # IT -abs FUNCTION1 abs_ -acos FUNCTION1 acos_ -alpha FUNCTION1 alpha_ -ambient FUNCTION1 ambient_ -ambientLight FUNCTION1 ambientLight_ -append FUNCTION1 append_ -applyMatrix FUNCTION1 applyMatrix_ -arc FUNCTION1 arc_ -arrayCopy FUNCTION1 arrayCopy_ -asin FUNCTION1 asin_ -atan FUNCTION1 atan_ -atan2 FUNCTION1 atan2_ -background FUNCTION1 background_ -beginCamera FUNCTION1 beginCamera_ -beginContour FUNCTION1 beginContour_ -beginRaw FUNCTION1 beginRaw_ -beginRecord FUNCTION1 beginRecord_ -beginShape FUNCTION1 beginShape_ -bezier FUNCTION1 bezier_ -bezierDetail FUNCTION1 bezierDetail_ +JSONObject KEYWORD5 JSONObject +cross FUNCTION2 PVector_cross_ +hasValue FUNCTION2 StringList_hasValue_ +PVector KEYWORD5 PVector +endCamera FUNCTION1 endCamera_ +min FUNCTION1 min_ +printCamera FUNCTION1 printCamera_ +strokeWeight FUNCTION1 strokeWeight_ +scale FUNCTION1 scale_ +copy FUNCTION2 PImage_copy_ +get FUNCTION2 IntList_get_ +mouseDragged FUNCTION4 mouseDragged +setString FUNCTION2 JSONArray_setString_ +setString FUNCTION2 TableRow_setString_ +keyReleased FUNCTION4 keyReleased +frameRate FUNCTION1 frameRate_ +PShape KEYWORD5 PShape +hasKey FUNCTION2 FloatDict_hasKey_ +randomSeed FUNCTION1 randomSeed_ +sortReverse FUNCTION2 FloatList_sortReverse_ +getParent FUNCTION2 XML_getParent_ +loadPixels FUNCTION2 PImage_loadPixels_ +save FUNCTION2 PImage_save_ +increment FUNCTION2 IntList_increment_ +hue FUNCTION1 hue_ bezierPoint FUNCTION1 bezierPoint_ -bezierTangent FUNCTION1 bezierTangent_ -bezierVertex FUNCTION1 bezierVertex_ -binary FUNCTION1 binary_ -blend FUNCTION1 blend_ -blendColor FUNCTION1 blendColor_ -blendMode FUNCTION1 blendMode_ -blue FUNCTION1 blue_ -box FUNCTION1 box_ -brightness FUNCTION1 brightness_ -camera FUNCTION1 camera_ -ceil FUNCTION1 ceil_ -clear FUNCTION1 clear_ -clip FUNCTION1 clip_ -color FUNCTION1 color_ -colorMode FUNCTION1 colorMode_ -concat FUNCTION1 concat_ -constrain FUNCTION1 constrain_ -copy FUNCTION1 copy_ -cos FUNCTION1 cos_ -createFont FUNCTION1 createFont_ -createGraphics FUNCTION1 createGraphics_ -createImage FUNCTION1 createImage_ -createInput FUNCTION1 createInput_ -createOutput FUNCTION1 createOutput_ -createReader FUNCTION1 createReader_ -createShape FUNCTION1 createShape_ -createWriter FUNCTION1 createWriter_ +getFloat FUNCTION2 JSONArray_getFloat_ +degrees FUNCTION1 degrees_ +loadPixels FUNCTION1 loadPixels_ cursor FUNCTION1 cursor_ -curve FUNCTION1 curve_ +beginContour FUNCTION1 beginContour_ +loadTable FUNCTION1 loadTable_ +keyPressed KEYWORD4 keyPressed +resetMatrix FUNCTION2 PShape_resetMatrix_ +dist FUNCTION1 dist_ +sub FUNCTION2 IntList_sub_ +removeColumn FUNCTION2 Table_removeColumn_ +updatePixels FUNCTION1 updatePixels_ +set FUNCTION2 FloatDict_set_ +disableStyle FUNCTION2 PShape_disableStyle_ +saveStream FUNCTION1 saveStream_ +mask FUNCTION2 PImage_mask_ +set FUNCTION2 StringList_set_ +createWriter FUNCTION1 createWriter_ +join FUNCTION1 join_ +findRow FUNCTION2 Table_findRow_ +append FUNCTION2 IntList_append_ +loadXML FUNCTION1 loadXML_ +splice FUNCTION1 splice_ +mult FUNCTION2 IntList_mult_ +mult FUNCTION2 PVector_mult_ +noiseDetail FUNCTION1 noiseDetail_ curveDetail FUNCTION1 curveDetail_ -curvePoint FUNCTION1 curvePoint_ -curveTangent FUNCTION1 curveTangent_ -curveTightness FUNCTION1 curveTightness_ -curveVertex FUNCTION1 curveVertex_ +textLeading FUNCTION1 textLeading_ +noCursor FUNCTION1 noCursor_ +sphere FUNCTION1 sphere_ day FUNCTION1 day_ -degrees FUNCTION1 degrees_ -delay FUNCTION1 delay_ -directionalLight FUNCTION1 directionalLight_ -displayDensity FUNCTION1 displayDensity_ -displayHeight KEYWORD4 displayHeight -displayWidth KEYWORD4 displayWidth -dist FUNCTION1 dist_ -draw FUNCTION4 draw -ellipse FUNCTION1 ellipse_ -ellipseMode FUNCTION1 ellipseMode_ -emissive FUNCTION1 emissive_ -endCamera FUNCTION1 endCamera_ -endContour FUNCTION1 endContour_ -endRaw FUNCTION1 endRaw_ -endRecord FUNCTION1 endRecord_ -endShape FUNCTION1 endShape_ -exit FUNCTION1 exit_ -exp FUNCTION1 exp_ +month FUNCTION1 month_ +IntDict KEYWORD5 IntDict +popMatrix FUNCTION1 popMatrix_ +size FUNCTION2 StringList_size_ +loadImage FUNCTION1 loadImage_ +shininess FUNCTION1 shininess_ +setJSONArray FUNCTION2 JSONObject_setJSONArray_ +values FUNCTION2 IntDict_values_ +scale FUNCTION2 PShape_scale_ +ceil FUNCTION1 ceil_ +getFloat FUNCTION2 TableRow_getFloat_ +randomGaussian FUNCTION1 randomGaussian_ +setContent FUNCTION2 XML_setContent_ +size FUNCTION1 size_ +clear FUNCTION2 StringList_clear_ +mouseX KEYWORD4 mouseX expand FUNCTION1 expand_ -fill FUNCTION1 fill_ -filter FUNCTION1 filter_ -FloatDict KEYWORD5 FloatDict -add FUNCTION2 FloatDict_add_ -clear FUNCTION2 FloatDict_clear_ -div FUNCTION2 FloatDict_div_ -get FUNCTION2 FloatDict_get_ -hasKey FUNCTION2 FloatDict_hasKey_ -keyArray FUNCTION2 FloatDict_keyArray_ -keys FUNCTION2 FloatDict_keys_ -mult FUNCTION2 FloatDict_mult_ -remove FUNCTION2 FloatDict_remove_ -set FUNCTION2 FloatDict_set_ -size FUNCTION2 FloatDict_size_ -sortKeys FUNCTION2 FloatDict_sortKeys_ -sortKeysReverse FUNCTION2 FloatDict_sortKeysReverse_ -sortValues FUNCTION2 FloatDict_sortValues_ -sortValuesReverse FUNCTION2 FloatDict_sortValuesReverse_ -sub FUNCTION2 FloatDict_sub_ -valueArray FUNCTION2 FloatDict_valueArray_ -values FUNCTION2 FloatDict_values_ -FloatList KEYWORD5 FloatList -add FUNCTION2 FloatList_add_ -append FUNCTION2 FloatList_append_ +sort FUNCTION2 Table_sort_ +setBoolean FUNCTION2 JSONArray_setBoolean_ +pushMatrix FUNCTION1 pushMatrix_ +mouseY KEYWORD4 mouseY +lerpColor FUNCTION1 lerpColor_ array FUNCTION2 FloatList_array_ -clear FUNCTION2 FloatList_clear_ -div FUNCTION2 FloatList_div_ -get FUNCTION2 FloatList_get_ -hasValue FUNCTION2 FloatList_hasValue_ -max FUNCTION2 FloatList_max_ -min FUNCTION2 FloatList_min_ +ellipse FUNCTION1 ellipse_ +stroke FUNCTION1 stroke_ +imageMode FUNCTION1 imageMode_ +settings FUNCTION4 settings +pixelWidth FUNCTION4 pixelWidth +getName FUNCTION2 XML_getName_ +setVertex FUNCTION2 PShape_setVertex_ mult FUNCTION2 FloatList_mult_ remove FUNCTION2 FloatList_remove_ -reverse FUNCTION2 FloatList_reverse_ -set FUNCTION2 FloatList_set_ -shuffle FUNCTION2 FloatList_shuffle_ -size FUNCTION2 FloatList_size_ -sort FUNCTION2 FloatList_sort_ -sortReverse FUNCTION2 FloatList_sortReverse_ -sub FUNCTION2 FloatList_sub_ -floor FUNCTION1 floor_ +createGraphics FUNCTION1 createGraphics_ +min FUNCTION2 IntList_min_ +rows FUNCTION2 Table_rows_ focused KEYWORD4 focused -frameCount KEYWORD4 frameCount -frameRate KEYWORD4 frameRate -frameRate FUNCTION1 frameRate_ -frustum FUNCTION1 frustum_ -fullScreen FUNCTION1 fullScreen_ +endContour FUNCTION1 endContour_ +hasValue FUNCTION2 IntList_hasValue_ +setString FUNCTION2 Table_setString_ +sortKeysReverse FUNCTION2 FloatDict_sortKeysReverse_ +saveStrings FUNCTION1 saveStrings_ +resetMatrix FUNCTION1 resetMatrix_ +set FUNCTION2 PImage_set_ +add FUNCTION2 IntList_add_ +removeChild FUNCTION2 XML_removeChild_ +key KEYWORD4 key +requestImage FUNCTION1 requestImage_ +array FUNCTION2 StringList_array_ +saveBytes FUNCTION1 saveBytes_ get FUNCTION1 get_ -green FUNCTION1 green_ -HALF_PI LITERAL2 HALF_PI -hex FUNCTION1 hex_ -hint FUNCTION1 hint_ +emissive FUNCTION1 emissive_ +getColumnCount FUNCTION2 Table_getColumnCount_ +noStroke FUNCTION1 noStroke_ +textureWrap FUNCTION1 textureWrap_ +addChild FUNCTION2 XML_addChild_ +setMag FUNCTION2 PVector_setMag_ +FloatDict KEYWORD5 FloatDict +matchRow FUNCTION2 Table_matchRow_ +div FUNCTION2 FloatList_div_ +getBoolean FUNCTION2 JSONObject_getBoolean_ +vertex FUNCTION1 vertex_ +setFloat FUNCTION2 JSONObject_setFloat_ +copy FUNCTION2 PVector_copy_ +remove FUNCTION2 StringDict_remove_ +lower FUNCTION2 StringList_lower_ +format FUNCTION2 XML_format_ +setStroke FUNCTION2 PShape_setStroke_ +clear FUNCTION2 FloatList_clear_ +isNull FUNCTION2 JSONObject_isNull_ +mousePressed FUNCTION4 mousePressed +sortValuesReverse FUNCTION2 FloatDict_sortValuesReverse_ +sortValuesReverse FUNCTION2 StringDict_sortValuesReverse_ +selectInput FUNCTION1 selectInput_ +lerp FUNCTION2 PVector_lerp_ +div FUNCTION2 IntList_div_ +sort FUNCTION2 FloatList_sort_ +setInt FUNCTION2 JSONArray_setInt_ +createReader FUNCTION1 createReader_ +strokeJoin FUNCTION1 strokeJoin_ hour FUNCTION1 hour_ -hue FUNCTION1 hue_ -image FUNCTION1 image_ -imageMode FUNCTION1 imageMode_ -IntDict KEYWORD5 IntDict -add FUNCTION2 IntDict_add_ -clear FUNCTION2 IntDict_clear_ -div FUNCTION2 IntDict_div_ -get FUNCTION2 IntDict_get_ -hasKey FUNCTION2 IntDict_hasKey_ -increment FUNCTION2 IntDict_increment_ -keyArray FUNCTION2 IntDict_keyArray_ -keys FUNCTION2 IntDict_keys_ -mult FUNCTION2 IntDict_mult_ -remove FUNCTION2 IntDict_remove_ -set FUNCTION2 IntDict_set_ -size FUNCTION2 IntDict_size_ -sortKeys FUNCTION2 IntDict_sortKeys_ -sortKeysReverse FUNCTION2 IntDict_sortKeysReverse_ -sortValues FUNCTION2 IntDict_sortValues_ +getRowCount FUNCTION2 Table_getRowCount_ +hasAttribute FUNCTION2 XML_hasAttribute_ +setFloat FUNCTION2 TableRow_setFloat_ +values FUNCTION2 FloatDict_values_ +getInt FUNCTION2 TableRow_getInt_ +getString FUNCTION2 JSONObject_getString_ +round FUNCTION1 round_ +strokeCap FUNCTION1 strokeCap_ +sortKeysReverse FUNCTION2 StringDict_sortKeysReverse_ +ortho FUNCTION1 ortho_ +getVertexCount FUNCTION2 PShape_getVertexCount_ +parseJSONObject FUNCTION1 parseJSONObject_ +textFont FUNCTION1 textFont_ +clear FUNCTION1 clear_ +getChildren FUNCTION2 XML_getChildren_ +loadBytes FUNCTION1 loadBytes_ +ambient FUNCTION1 ambient_ sortValuesReverse FUNCTION2 IntDict_sortValuesReverse_ -sub FUNCTION2 IntDict_sub_ -valueArray FUNCTION2 IntDict_valueArray_ -values FUNCTION2 IntDict_values_ -IntList KEYWORD5 IntList -add FUNCTION2 IntList_add_ -append FUNCTION2 IntList_append_ -array FUNCTION2 IntList_array_ -clear FUNCTION2 IntList_clear_ -div FUNCTION2 IntList_div_ -get FUNCTION2 IntList_get_ -hasValue FUNCTION2 IntList_hasValue_ -increment FUNCTION2 IntList_increment_ -max FUNCTION2 IntList_max_ -min FUNCTION2 IntList_min_ -mult FUNCTION2 IntList_mult_ +keyTyped FUNCTION4 keyTyped +HALF_PI LITERAL2 HALF_PI +loadFont FUNCTION1 loadFont_ +frameRate FUNCTION1 frameRate_ +map FUNCTION1 map_ +min FUNCTION2 FloatList_min_ +mag FUNCTION1 mag_ +minute FUNCTION1 minute_ +beginRecord FUNCTION1 beginRecord_ +add FUNCTION2 FloatList_add_ +alpha FUNCTION1 alpha_ +clear FUNCTION2 StringDict_clear_ +noClip FUNCTION1 noClip_ +TWO_PI LITERAL2 TWO_PI +normalize FUNCTION2 PVector_normalize_ +abs FUNCTION1 abs_ remove FUNCTION2 IntList_remove_ +saveXML FUNCTION1 saveXML_ +blend FUNCTION2 PImage_blend_ +sortKeys FUNCTION2 FloatDict_sortKeys_ +blue FUNCTION1 blue_ reverse FUNCTION2 IntList_reverse_ -set FUNCTION2 IntList_set_ -shuffle FUNCTION2 IntList_shuffle_ -size FUNCTION2 IntList_size_ -sort FUNCTION2 IntList_sort_ -sortReverse FUNCTION2 IntList_sortReverse_ -sub FUNCTION2 IntList_sub_ -join FUNCTION1 join_ -JSONArray KEYWORD5 JSONArray -append FUNCTION2 JSONArray_append_ -getBoolean FUNCTION2 JSONArray_getBoolean_ -getFloat FUNCTION2 JSONArray_getFloat_ -getInt FUNCTION2 JSONArray_getInt_ +getContent FUNCTION2 XML_getFloatContent_ +keys FUNCTION2 StringDict_keys_ +clear FUNCTION2 FloatDict_clear_ +year FUNCTION1 year_ +nfc FUNCTION1 nfc_ +rotate FUNCTION1 rotate_ +getChild FUNCTION2 XML_getChild_ +parseJSONArray FUNCTION1 parseJSONArray_ +pixels KEYWORD4 pixels getIntArray FUNCTION2 JSONArray_getIntArray_ +saveFrame FUNCTION1 saveFrame_ +getFloat FUNCTION2 JSONObject_getFloat_ +size FUNCTION2 StringDict_size_ +splitTokens FUNCTION1 splitTokens_ +mult FUNCTION2 IntDict_mult_ +atan FUNCTION1 atan_ +setName FUNCTION2 XML_setName_ +XML KEYWORD5 XML +circle FUNCTION1 circle_ +bezierDetail FUNCTION1 bezierDetail_ +draw FUNCTION4 draw +getContent FUNCTION2 XML_getContent_ +cos FUNCTION1 cos_ +sq FUNCTION1 sq_ +TAU LITERAL2 TAU +delay FUNCTION1 delay_ +fullScreen FUNCTION1 fullScreen_ +endRaw FUNCTION1 endRaw_ +setVisible FUNCTION2 PShape_setVisible_ +increment FUNCTION2 IntDict_increment_ +shuffle FUNCTION2 IntList_shuffle_ getJSONArray FUNCTION2 JSONArray_getJSONArray_ -getJSONObject FUNCTION2 JSONArray_getJSONObject_ -getString FUNCTION2 JSONArray_getString_ -getStringArray FUNCTION2 JSONArray_getStringArray_ -isNull FUNCTION2 JSONArray_isNull_ -remove FUNCTION2 JSONArray_remove_ -setBoolean FUNCTION2 JSONArray_setBoolean_ +translate FUNCTION1 translate_ +sort FUNCTION2 IntList_sort_ setFloat FUNCTION2 JSONArray_setFloat_ -setInt FUNCTION2 JSONArray_setInt_ -setJSONArray FUNCTION2 JSONArray_setJSONArray_ -setJSONObject FUNCTION2 JSONArray_setJSONObject_ -setString FUNCTION2 JSONArray_setString_ -size FUNCTION2 JSONArray_size_ -JSONObject KEYWORD5 JSONObject -getBoolean FUNCTION2 JSONObject_getBoolean_ -getFloat FUNCTION2 JSONObject_getFloat_ -getInt FUNCTION2 JSONObject_getInt_ -getJSONArray FUNCTION2 JSONObject_getJSONArray_ -getJSONObject FUNCTION2 JSONObject_getJSONObject_ -getString FUNCTION2 JSONObject_getString_ -isNull FUNCTION2 JSONObject_isNull_ +nfp FUNCTION1 nfp_ +upper FUNCTION2 StringList_upper_ +setInt FUNCTION2 TableRow_setInt_ +hasKey FUNCTION2 IntDict_hasKey_ +blendMode FUNCTION1 blendMode_ +sin FUNCTION1 sin_ +mouseButton KEYWORD4 mouseButton +QUARTER_PI LITERAL2 QUARTER_PI +clip FUNCTION1 clip_ +sub FUNCTION2 FloatList_sub_ +getInt FUNCTION2 JSONArray_getInt_ +getBoolean FUNCTION2 JSONArray_getBoolean_ +set FUNCTION2 IntDict_set_ +displayHeight KEYWORD4 displayHeight +findRows FUNCTION2 Table_findRows_ +hex FUNCTION1 hex_ +TableRow KEYWORD5 TableRow +PI LITERAL2 PI +updatePixels FUNCTION2 PImage_updatePixels_ +beginShape FUNCTION1 beginShape_ +StringDict KEYWORD5 StringDict +mult FUNCTION2 FloatDict_mult_ +append FUNCTION2 FloatList_append_ +trim FUNCTION1 trim_ +pmouseX KEYWORD4 pmouseX +textDescent FUNCTION1 textDescent_ +createShape FUNCTION1 createShape_ +keyArray FUNCTION2 FloatDict_keyArray_ +get FUNCTION2 FloatList_get_ +getStringColumn FUNCTION2 Table_getStringColumn_ +pmouseY KEYWORD4 pmouseY +pixels KEYWORD2 PImage_pixels +nfs FUNCTION1 nfs_ setBoolean FUNCTION2 JSONObject_setBoolean_ -setFloat FUNCTION2 JSONObject_setFloat_ -setInt FUNCTION2 JSONObject_setInt_ -setJSONArray FUNCTION2 JSONObject_setJSONArray_ -setJSONObject FUNCTION2 JSONObject_setJSONObject_ -setString FUNCTION2 JSONObject_setString_ -key KEYWORD4 key -keyCode KEYWORD4 keyCode +JSONArray KEYWORD5 JSONArray +displayDensity FUNCTION1 displayDensity_ +createFont FUNCTION1 createFont_ +applyMatrix FUNCTION1 applyMatrix_ keyPressed FUNCTION4 keyPressed -keyPressed KEYWORD4 keyPressed -keyReleased FUNCTION4 keyReleased -keyTyped FUNCTION4 keyTyped -launch FUNCTION1 launch_ -lerp FUNCTION1 lerp_ -lerpColor FUNCTION1 lerpColor_ -lightFalloff FUNCTION1 lightFalloff_ -lights FUNCTION1 lights_ -lightSpecular FUNCTION1 lightSpecular_ -line FUNCTION1 line_ -loadBytes FUNCTION1 loadBytes_ -loadFont FUNCTION1 loadFont_ -loadImage FUNCTION1 loadImage_ -loadJSONArray FUNCTION1 loadJSONArray_ -loadJSONObject FUNCTION1 loadJSONObject_ -loadPixels FUNCTION1 loadPixels_ -loadShader FUNCTION1 loadShader_ -loadShape FUNCTION1 loadShape_ -loadStrings FUNCTION1 loadStrings_ -loadTable FUNCTION1 loadTable_ -loadXML FUNCTION1 loadXML_ -log FUNCTION1 log_ -loop FUNCTION1 loop_ -mag FUNCTION1 mag_ -map FUNCTION1 map_ -match FUNCTION1 match_ +getColumnTitle FUNCTION2 TableRow_getColumnTitle_ +getString FUNCTION2 XML_getString_ +point FUNCTION1 point_ +background FUNCTION1 background_ +pixelDensity FUNCTION1 pixelDensity_ +set FUNCTION2 PVector_set_ +triangle FUNCTION1 triangle_ +rect FUNCTION1 rect_ +shape FUNCTION1 shape_ +saveTable FUNCTION1 saveTable_ matchAll FUNCTION1 matchAll_ +get FUNCTION2 StringDict_get_ +noLights FUNCTION1 noLights_ max FUNCTION1 max_ -millis FUNCTION1 millis_ -min FUNCTION1 min_ -minute FUNCTION1 minute_ -modelX FUNCTION1 modelX_ -modelY FUNCTION1 modelY_ -modelZ FUNCTION1 modelZ_ -month FUNCTION1 month_ -mouseButton KEYWORD4 mouseButton -mouseClicked FUNCTION4 mouseClicked -mouseDragged FUNCTION4 mouseDragged -mouseMoved FUNCTION4 mouseMoved -mousePressed FUNCTION4 mousePressed -mousePressed KEYWORD4 mousePressed -mouseReleased FUNCTION4 mouseReleased +keys FUNCTION2 FloatDict_keys_ mouseWheel FUNCTION4 mouseWheel -mouseX KEYWORD4 mouseX -mouseY KEYWORD4 mouseY -nf FUNCTION1 nf_ -nfc FUNCTION1 nfc_ -nfp FUNCTION1 nfp_ -nfs FUNCTION1 nfs_ -noClip FUNCTION1 noClip_ -noCursor FUNCTION1 noCursor_ -noFill FUNCTION1 noFill_ -noise FUNCTION1 noise_ -noiseDetail FUNCTION1 noiseDetail_ -noiseSeed FUNCTION1 noiseSeed_ -noLights FUNCTION1 noLights_ -noLoop FUNCTION1 noLoop_ -norm FUNCTION1 norm_ -normal FUNCTION1 normal_ -noSmooth FUNCTION1 noSmooth_ -noStroke FUNCTION1 noStroke_ -noTint FUNCTION1 noTint_ -ortho FUNCTION1 ortho_ -parseJSONArray FUNCTION1 parseJSONArray_ -parseJSONObject FUNCTION1 parseJSONObject_ -parseXML FUNCTION1 parseXML_ -perspective FUNCTION1 perspective_ -PFont KEYWORD5 PFont -list FUNCTION1 PFont_list_ -PGraphics KEYWORD5 PGraphics -beginDraw FUNCTION2 PGraphics_beginDraw_ -endDraw FUNCTION2 PGraphics_endDraw_ -PI LITERAL2 PI +set FUNCTION1 set_ PImage KEYWORD5 PImage -blend FUNCTION2 PImage_blend_ -copy FUNCTION2 PImage_copy_ -filter FUNCTION2 PImage_filter_ +printProjection FUNCTION1 printProjection_ +popStyle FUNCTION1 popStyle_ +lerp FUNCTION1 lerp_ +clearRows FUNCTION2 Table_clearRows_ +perspective FUNCTION1 perspective_ +print FUNCTION1 print_ get FUNCTION2 PImage_get_ -loadPixels FUNCTION2 PImage_loadPixels_ -mask FUNCTION2 PImage_mask_ -pixels KEYWORD2 PImage_pixels -resize FUNCTION2 PImage_resize_ -save FUNCTION2 PImage_save_ -set FUNCTION2 PImage_set_ -updatePixels FUNCTION2 PImage_updatePixels_ -pixelDensity FUNCTION1 pixelDensity_ -pixelHeight FUNCTION1 pixelHeight_ -pixels KEYWORD4 pixels -pixelWidth KEYWORD4 pixelWidth -pmouseX KEYWORD4 pmouseX -pmouseY KEYWORD4 pmouseY -point FUNCTION1 point_ -pointLight FUNCTION1 pointLight_ -popMatrix FUNCTION1 popMatrix_ -popStyle FUNCTION1 popStyle_ -pow FUNCTION1 pow_ -print FUNCTION1 print_ -printArray FUNCTION1 printArray_ -printCamera FUNCTION1 printCamera_ -println FUNCTION1 println_ -printMatrix FUNCTION1 printMatrix_ -printProjection FUNCTION1 printProjection_ -PShader KEYWORD5 PShader -PShader FUNCTION2 PShader_set_ -PShape KEYWORD5 PShape +addColumn FUNCTION2 Table_addColumn_ +fill FUNCTION1 fill_ +loadJSONObject FUNCTION1 loadJSONObject_ +filter FUNCTION2 PImage_filter_ +getFloat FUNCTION2 Table_getFloat_ +redraw FUNCTION1 redraw_ +sortKeys FUNCTION2 StringDict_sortKeys_ +textAlign FUNCTION1 textAlign_ +append FUNCTION2 StringList_append_ +bezier FUNCTION1 bezier_ +size FUNCTION2 FloatDict_size_ addChild FUNCTION2 PShape_addChild_ -beginContour FUNCTION2 PShape_beginContour_ -beginShape FUNCTION2 PShape_beginShape_ -disableStyle FUNCTION2 PShape_disableStyle_ -enableStyle FUNCTION2 PShape_enableStyle_ -endContour FUNCTION2 PShape_endContour_ -endShape FUNCTION2 PShape_endShape_ -getChild FUNCTION2 PShape_getChild_ -getChildCount FUNCTION2 PShape_getChildCount_ -getVertex FUNCTION2 PShape_getVertex_ -getVertexCount FUNCTION2 PShape_getVertexCount_ -isVisible FUNCTION2 PShape_isVisible_ -resetMatrix FUNCTION2 PShape_resetMatrix_ -rotate FUNCTION2 PShape_rotate_ -rotateX FUNCTION2 PShape_rotateX_ -rotateY FUNCTION2 PShape_rotateY_ -rotateZ FUNCTION2 PShape_rotateZ_ -scale FUNCTION2 PShape_scale_ -setFill FUNCTION2 PShape_setFill_ -setStroke FUNCTION2 PShape_setStroke_ -setVertex FUNCTION2 PShape_setVertex_ -setVisible FUNCTION2 PShape_setVisible_ -translate FUNCTION2 PShape_translate_ -pushMatrix FUNCTION1 pushMatrix_ -pushStyle FUNCTION1 pushStyle_ -PVector KEYWORD5 PVector -add FUNCTION2 PVector_add_ +setFloat FUNCTION2 XML_setFloat_ +smooth FUNCTION1 smooth_ +blendColor FUNCTION1 blendColor_ +displayWidth KEYWORD4 displayWidth angleBetween FUNCTION2 PVector_angleBetween_ -array FUNCTION2 PVector_array_ -copy FUNCTION2 PVector_copy_ -cross FUNCTION2 PVector_cross_ -dist FUNCTION2 PVector_dist_ +removeRow FUNCTION2 Table_removeRow_ div FUNCTION2 PVector_div_ -dot FUNCTION2 PVector_dot_ -fromAngle FUNCTION2 PVector_fromAngle_ -get FUNCTION2 PVector_get_ -heading FUNCTION2 PVector_heading_ -lerp FUNCTION2 PVector_lerp_ -limit FUNCTION2 PVector_limit_ -mag FUNCTION2 PVector_mag_ -magSq FUNCTION2 PVector_magSq_ -mult FUNCTION2 PVector_mult_ -normalize FUNCTION2 PVector_normalize_ -random2D FUNCTION2 PVector_random2D_ -random3D FUNCTION2 PVector_random3D_ +println FUNCTION1 println_ +add FUNCTION2 FloatDict_add_ +brightness FUNCTION1 brightness_ +loadJSONArray FUNCTION1 loadJSONArray_ +tan FUNCTION1 tan_ +printMatrix FUNCTION1 printMatrix_ +lights FUNCTION1 lights_ +loadShape FUNCTION1 loadShape_ +random FUNCTION1 random_ +shuffle FUNCTION2 FloatList_shuffle_ rotate FUNCTION2 PVector_rotate_ -set FUNCTION2 PVector_set_ -setMag FUNCTION2 PVector_setMag_ -sub FUNCTION2 PVector_sub_ -quad FUNCTION1 quad_ +getJSONObject FUNCTION2 JSONObject_getJSONObject_ quadraticVertex FUNCTION1 quadraticVertex_ -QUARTER_PI LITERAL2 QUARTER_PI +sort FUNCTION2 StringList_sort_ +bezierVertex FUNCTION1 bezierVertex_ +exp FUNCTION1 exp_ +setJSONArray FUNCTION2 JSONArray_setJSONArray_ +setString FUNCTION2 JSONObject_setString_ +textureMode FUNCTION1 textureMode_ +specular FUNCTION1 specular_ +noSmooth FUNCTION1 noSmooth_ +pow FUNCTION1 pow_ +blend FUNCTION1 blend_ +listChildren FUNCTION2 XML_listChildren_ +keyArray FUNCTION2 IntDict_keyArray_ +green FUNCTION1 green_ +magSq FUNCTION2 PVector_magSq_ +listAttributes FUNCTION2 XML_listAttributes_ +createOutput FUNCTION1 createOutput_ +div FUNCTION2 IntDict_div_ +isNull FUNCTION2 JSONArray_isNull_ +getContent FUNCTION2 XML_getIntContent_ +setString FUNCTION2 XML_setString_ +get FUNCTION2 StringList_get_ +translate FUNCTION2 PShape_translate_ +concat FUNCTION1 concat_ +bezierTangent FUNCTION1 bezierTangent_ +mouseReleased FUNCTION4 mouseReleased +arrayCopy FUNCTION1 arrayCopy_ +beginCamera FUNCTION1 beginCamera_ +asin FUNCTION1 asin_ +remove FUNCTION2 IntDict_remove_ +lightFalloff FUNCTION1 lightFalloff_ +color FUNCTION1 color_ +shader FUNCTION1 shader_ +size FUNCTION2 IntDict_size_ +beginShape FUNCTION2 PShape_beginShape_ +getStringArray FUNCTION2 JSONArray_getStringArray_ +reverse FUNCTION2 FloatList_reverse_ +get FUNCTION2 FloatDict_get_ +rotateZ FUNCTION1 rotateZ_ +sortValues FUNCTION2 FloatDict_sortValues_ radians FUNCTION1 radians_ -random FUNCTION1 random_ -randomGaussian FUNCTION1 randomGaussian_ -randomSeed FUNCTION1 randomSeed_ -rect FUNCTION1 rect_ -rectMode FUNCTION1 rectMode_ -red FUNCTION1 red_ -redraw FUNCTION1 redraw_ -requestImage FUNCTION1 requestImage_ -resetMatrix FUNCTION1 resetMatrix_ -resetShader FUNCTION1 resetShader_ +keyArray FUNCTION2 StringDict_keyArray_ +curveTightness FUNCTION1 curveTightness_ +filter FUNCTION1 filter_ +getChildCount FUNCTION2 PShape_getChildCount_ +setJSONObject FUNCTION2 JSONArray_setJSONObject_ +heading FUNCTION2 PVector_heading_ +keys FUNCTION2 IntDict_keys_ +PFont KEYWORD5 PFont +noFill FUNCTION1 noFill_ +noise FUNCTION1 noise_ +acos FUNCTION1 acos_ +frameCount KEYWORD4 frameCount +curvePoint FUNCTION1 curvePoint_ +sort FUNCTION1 sort_ reverse FUNCTION1 reverse_ -rotate FUNCTION1 rotate_ -rotateX FUNCTION1 rotateX_ -rotateY FUNCTION1 rotateY_ -rotateZ FUNCTION1 rotateZ_ -round FUNCTION1 round_ -saturation FUNCTION1 saturation_ -save FUNCTION1 save_ -saveBytes FUNCTION1 saveBytes_ -saveFrame FUNCTION1 saveFrame_ -saveJSONArray FUNCTION1 saveJSONArray_ -saveJSONObject FUNCTION1 saveJSONObject_ -saveStream FUNCTION1 saveStream_ -saveStrings FUNCTION1 saveStrings_ -saveTable FUNCTION1 saveTable_ -saveXML FUNCTION1 saveXML_ -scale FUNCTION1 scale_ -screenX FUNCTION1 screenX_ -screenY FUNCTION1 screenY_ -screenZ FUNCTION1 screenZ_ +sphereDetail FUNCTION1 sphereDetail_ +sortReverse FUNCTION2 IntList_sortReverse_ +constrain FUNCTION1 constrain_ +frustum FUNCTION1 frustum_ +list FUNCTION1 PFont_list_ +max FUNCTION2 IntList_max_ +mag FUNCTION2 PVector_mag_ +sub FUNCTION2 FloatDict_sub_ second FUNCTION1 second_ -selectFolder FUNCTION1 selectFolder_ -selectInput FUNCTION1 selectInput_ -selectOutput FUNCTION1 selectOutput_ -set FUNCTION1 set_ -settings FUNCTION4 settings -setup FUNCTION4 setup -shader FUNCTION1 shader_ -shape FUNCTION1 shape_ -shapeMode FUNCTION1 shapeMode_ +set FUNCTION2 IntList_set_ +valueArray FUNCTION2 IntDict_valueArray_ +binary FUNCTION1 binary_ +StringList KEYWORD5 StringList +isVisible FUNCTION2 PShape_isVisible_ +push FUNCTION1 push_ +normal FUNCTION1 normal_ +PShader FUNCTION2 PShader_set_ +append FUNCTION2 JSONArray_append_ +pop FUNCTION1 pop_ shearX FUNCTION1 shearX_ +saveJSONObject FUNCTION1 saveJSONObject_ +enableStyle FUNCTION2 PShape_enableStyle_ +rotateY FUNCTION1 rotateY_ +rotateX FUNCTION1 rotateX_ +endShape FUNCTION1 endShape_ +sortKeys FUNCTION2 IntDict_sortKeys_ shearY FUNCTION1 shearY_ -shininess FUNCTION1 shininess_ -shorten FUNCTION1 shorten_ -sin FUNCTION1 sin_ -size FUNCTION1 size_ -smooth FUNCTION1 smooth_ -sort FUNCTION1 sort_ -specular FUNCTION1 specular_ -sphere FUNCTION1 sphere_ -sphereDetail FUNCTION1 sphereDetail_ -splice FUNCTION1 splice_ -split FUNCTION1 split_ -splitTokens FUNCTION1 splitTokens_ -spotLight FUNCTION1 spotLight_ -sq FUNCTION1 sq_ +shapeMode FUNCTION1 shapeMode_ +norm FUNCTION1 norm_ +saveJSONArray FUNCTION1 saveJSONArray_ +match FUNCTION1 match_ +values FUNCTION2 StringDict_values_ +sortValues FUNCTION2 StringDict_sortValues_ +floor FUNCTION1 floor_ +quad FUNCTION1 quad_ +pixelHeight FUNCTION1 pixelHeight_ +parseXML FUNCTION1 parseXML_ +exit FUNCTION1 exit_ +texture FUNCTION1 texture_ +clear FUNCTION2 IntDict_clear_ +size FUNCTION2 JSONArray_size_ +setup FUNCTION4 setup +getJSONObject FUNCTION2 JSONArray_getJSONObject_ +modelX FUNCTION1 modelX_ +dot FUNCTION2 PVector_dot_ +rotateX FUNCTION2 PShape_rotateX_ +valueArray FUNCTION2 FloatDict_valueArray_ +selectFolder FUNCTION1 selectFolder_ +random3D FUNCTION2 PVector_random3D_ sqrt FUNCTION1 sqrt_ -StringDict KEYWORD5 StringDict -clear FUNCTION2 StringDict_clear_ -get FUNCTION2 StringDict_get_ -hasKey FUNCTION2 StringDict_hasKey_ -keyArray FUNCTION2 StringDict_keyArray_ -keys FUNCTION2 StringDict_keys_ -remove FUNCTION2 StringDict_remove_ +sortReverse FUNCTION2 StringList_sortReverse_ +limit FUNCTION2 PVector_limit_ +log FUNCTION1 log_ +remove FUNCTION2 FloatDict_remove_ +shuffle FUNCTION2 StringList_shuffle_ +curveTangent FUNCTION1 curveTangent_ +unhex FUNCTION1 unhex_ +array FUNCTION2 IntList_array_ +size FUNCTION2 FloatList_size_ +remove FUNCTION2 StringList_remove_ +get FUNCTION2 PVector_get_ +createInput FUNCTION1 createInput_ set FUNCTION2 StringDict_set_ -size FUNCTION2 StringDict_size_ -sortKeys FUNCTION2 StringDict_sortKeys_ -sortKeysReverse FUNCTION2 StringDict_sortKeysReverse_ -sortValues FUNCTION2 StringDict_sortValues_ -sortValuesReverse FUNCTION2 StringDict_sortValuesReverse_ +thread FUNCTION1 thread_ +max FUNCTION2 FloatList_max_ +sub FUNCTION2 IntDict_sub_ +beginRaw FUNCTION1 beginRaw_ +set FUNCTION2 FloatList_set_ +getInt FUNCTION2 JSONObject_getInt_ +fromAngle FUNCTION2 PVector_fromAngle_ +rotateY FUNCTION2 PShape_rotateY_ +modelY FUNCTION1 modelY_ +ambientLight FUNCTION1 ambientLight_ +getJSONArray FUNCTION2 JSONObject_getJSONArray_ valueArray FUNCTION2 StringDict_valueArray_ -values FUNCTION2 StringDict_values_ -StringList KEYWORD5 StringList -append FUNCTION2 StringList_append_ -array FUNCTION2 StringList_array_ -clear FUNCTION2 StringList_clear_ -get FUNCTION2 StringList_get_ -hasValue FUNCTION2 StringList_hasValue_ -lower FUNCTION2 StringList_lower_ -remove FUNCTION2 StringList_remove_ -reverse FUNCTION2 StringList_reverse_ -set FUNCTION2 StringList_set_ -shuffle FUNCTION2 StringList_shuffle_ -size FUNCTION2 StringList_size_ -sort FUNCTION2 StringList_sort_ -sortReverse FUNCTION2 StringList_sortReverse_ -upper FUNCTION2 StringList_upper_ -stroke FUNCTION1 stroke_ -strokeCap FUNCTION1 strokeCap_ -strokeJoin FUNCTION1 strokeJoin_ -strokeWeight FUNCTION1 strokeWeight_ -subset FUNCTION1 subset_ -Table KEYWORD5 Table -addColumn FUNCTION2 Table_addColumn_ -addRow FUNCTION2 Table_addRow_ -clearRows FUNCTION2 Table_clearRows_ -findRow FUNCTION2 Table_findRow_ -findRows FUNCTION2 Table_findRows_ -getColumnCount FUNCTION2 Table_getColumnCount_ -getFloat FUNCTION2 Table_getFloat_ -getInt FUNCTION2 Table_getInt_ -getRow FUNCTION2 Table_getRow_ -getRowCount FUNCTION2 Table_getRowCount_ -getString FUNCTION2 Table_getString_ -getStringColumn FUNCTION2 Table_getStringColumn_ -matchRow FUNCTION2 Table_matchRow_ -matchRows FUNCTION2 Table_matchRows_ -removeColumn FUNCTION2 Table_removeColumn_ -removeRow FUNCTION2 Table_removeRow_ -removeTokens FUNCTION2 Table_removeTokens_ -rows FUNCTION2 Table_rows_ -setFloat FUNCTION2 Table_setFloat_ setInt FUNCTION2 Table_setInt_ -setString FUNCTION2 Table_setString_ -trim FUNCTION2 Table_trim_ -TableRow KEYWORD5 TableRow -getColumnCount FUNCTION2 TableRow_getColumnCount_ -getColumnTitle FUNCTION2 TableRow_getColumnTitle_ -getFloat FUNCTION2 TableRow_getFloat_ -getInt FUNCTION2 TableRow_getInt_ +rectMode FUNCTION1 rectMode_ +arc FUNCTION1 arc_ +setInt FUNCTION2 XML_setInt_ +getRow FUNCTION2 Table_getRow_ getString FUNCTION2 TableRow_getString_ -setFloat FUNCTION2 TableRow_setFloat_ -setInt FUNCTION2 TableRow_setInt_ -setString FUNCTION2 TableRow_setString_ -tan FUNCTION1 tan_ -TAU LITERAL2 TAU -text FUNCTION1 text_ -textAlign FUNCTION1 textAlign_ -textAscent FUNCTION1 textAscent_ -textDescent FUNCTION1 textDescent_ -textFont FUNCTION1 textFont_ -textLeading FUNCTION1 textLeading_ +noTint FUNCTION1 noTint_ +clear FUNCTION2 IntList_clear_ +beginContour FUNCTION2 PShape_beginContour_ +matchRows FUNCTION2 Table_matchRows_ +setFill FUNCTION2 PShape_setFill_ +shorten FUNCTION1 shorten_ +dist FUNCTION2 PVector_dist_ +unbinary FUNCTION1 unbinary_ +IntList KEYWORD5 IntList +toString FUNCTION2 XML_toString_ +get FUNCTION2 IntDict_get_ +getString FUNCTION2 JSONArray_getString_ +line FUNCTION1 line_ +sortValues FUNCTION2 IntDict_sortValues_ +mousePressed KEYWORD4 mousePressed +colorMode FUNCTION1 colorMode_ +loop FUNCTION1 loop_ +saturation FUNCTION1 saturation_ +sub FUNCTION2 PVector_sub_ +rotateZ FUNCTION2 PShape_rotateZ_ +beginDraw FUNCTION2 PGraphics_beginDraw_ +directionalLight FUNCTION1 directionalLight_ +hasValue FUNCTION2 FloatList_hasValue_ +modelZ FUNCTION1 modelZ_ +endContour FUNCTION2 PShape_endContour_ +setInt FUNCTION2 JSONObject_setInt_ +nf FUNCTION1 nf_ +size FUNCTION2 IntList_size_ +loadStrings FUNCTION1 loadStrings_ textMode FUNCTION1 textMode_ +camera FUNCTION1 camera_ +removeTokens FUNCTION2 Table_removeTokens_ +div FUNCTION2 FloatDict_div_ +screenY FUNCTION1 screenY_ +sortKeysReverse FUNCTION2 IntDict_sortKeysReverse_ textSize FUNCTION1 textSize_ -texture FUNCTION1 texture_ -textureMode FUNCTION1 textureMode_ -textureWrap FUNCTION1 textureWrap_ -textWidth FUNCTION1 textWidth_ -thread FUNCTION1 thread_ +rotate FUNCTION2 PShape_rotate_ +split FUNCTION1 split_ +Table KEYWORD5 Table +addRow FUNCTION2 Table_addRow_ +mouseClicked FUNCTION4 mouseClicked +ellipseMode FUNCTION1 ellipseMode_ +resetShader FUNCTION1 resetShader_ +hasChildren FUNCTION2 XML_hasChildren_ +append FUNCTION1 append_ +square FUNCTION1 square_ +getFloat FUNCTION2 XML_getFloat_ +textAscent FUNCTION1 textAscent_ +endShape FUNCTION2 PShape_endShape_ +box FUNCTION1 box_ +millis FUNCTION1 millis_ +curve FUNCTION1 curve_ +setFloat FUNCTION2 Table_setFloat_ +spotLight FUNCTION1 spotLight_ +resize FUNCTION2 PImage_resize_ +add FUNCTION2 IntDict_add_ +screenX FUNCTION1 screenX_ +curveVertex FUNCTION1 curveVertex_ +getChild FUNCTION2 PShape_getChild_ +getString FUNCTION2 Table_getString_ +printArray FUNCTION1 printArray_ +selectOutput FUNCTION1 selectOutput_ +endRecord FUNCTION1 endRecord_ +noiseSeed FUNCTION1 noiseSeed_ +hasKey FUNCTION2 StringDict_hasKey_ +endDraw FUNCTION2 PGraphics_endDraw_ +PGraphics KEYWORD5 PGraphics +pointLight FUNCTION1 pointLight_ +screenZ FUNCTION1 screenZ_ +array FUNCTION2 PVector_array_ +getVertex FUNCTION2 PShape_getVertex_ +save FUNCTION1 save_ +remove FUNCTION2 JSONArray_remove_ +loadShader FUNCTION1 loadShader_ +reverse FUNCTION2 StringList_reverse_ +keyCode KEYWORD4 keyCode +subset FUNCTION1 subset_ +image FUNCTION1 image_ tint FUNCTION1 tint_ -translate FUNCTION1 translate_ -triangle FUNCTION1 triangle_ -trim FUNCTION1 trim_ -TWO_PI LITERAL2 TWO_PI -unbinary FUNCTION1 unbinary_ -unhex FUNCTION1 unhex_ -updatePixels FUNCTION1 updatePixels_ -vertex FUNCTION1 vertex_ -XML KEYWORD5 XML -addChild FUNCTION2 XML_addChild_ -format FUNCTION2 XML_format_ getAttributeCount FUNCTION2 XML_getAttributeCount_ -getChild FUNCTION2 XML_getChild_ -getChildren FUNCTION2 XML_getChildren_ -getContent FUNCTION2 XML_getContent_ -getFloat FUNCTION2 XML_getFloat_ -getContent FUNCTION2 XML_getFloatContent_ +text FUNCTION1 text_ +mouseMoved FUNCTION4 mouseMoved +launch FUNCTION1 launch_ +PShader KEYWORD5 PShader +pushStyle FUNCTION1 pushStyle_ +textWidth FUNCTION1 textWidth_ +red FUNCTION1 red_ +lightSpecular FUNCTION1 lightSpecular_ +copy FUNCTION1 copy_ +atan2 FUNCTION1 atan2_ +add FUNCTION2 PVector_add_ +random2D FUNCTION2 PVector_random2D_ getInt FUNCTION2 XML_getInt_ -getContent FUNCTION2 XML_getIntContent_ -getName FUNCTION2 XML_getName_ -getParent FUNCTION2 XML_getParent_ -getString FUNCTION2 XML_getString_ -hasAttribute FUNCTION2 XML_hasAttribute_ -hasChildren FUNCTION2 XML_hasChildren_ -listAttributes FUNCTION2 XML_listAttributes_ -listChildren FUNCTION2 XML_listChildren_ -removeChild FUNCTION2 XML_removeChild_ -setContent FUNCTION2 XML_setContent_ -setFloat FUNCTION2 XML_setFloat_ -setInt FUNCTION2 XML_setInt_ -setName FUNCTION2 XML_setName_ -setString FUNCTION2 XML_setString_ -toString FUNCTION2 XML_toString_ -year FUNCTION1 year_ +createImage FUNCTION1 createImage_ +trim FUNCTION2 Table_trim_ +getColumnCount FUNCTION2 TableRow_getColumnCount_ +FloatList KEYWORD5 FloatList +attrib FUNCTION1 attrib_ +noLoop FUNCTION1 noLoop_ +setJSONObject FUNCTION2 JSONObject_setJSONObject_ +getInt FUNCTION2 Table_getInt_ From 8bfb02ec37fefb5ebaf87050f1dc3b1b960a7b1b Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Thu, 16 Jan 2020 17:32:10 -0500 Subject: [PATCH 22/69] contrib name sort should not be case-sensitive --- app/src/processing/app/contrib/ListPanel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/processing/app/contrib/ListPanel.java b/app/src/processing/app/contrib/ListPanel.java index 49c50658cc..845b7178d4 100644 --- a/app/src/processing/app/contrib/ListPanel.java +++ b/app/src/processing/app/contrib/ListPanel.java @@ -419,7 +419,7 @@ Comparator getComparator() { return comparator.thenComparing(contribution -> getAuthorNameWithoutMarkup(contribution.getAuthorList())); case NAME: default: - return comparator.thenComparing(Contribution::getName); + return comparator.thenComparing(Contribution::getName, String.CASE_INSENSITIVE_ORDER); } } } From 3110ed0c62e8cce352953eab7d43a2b10e4bba71 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Thu, 16 Jan 2020 17:34:28 -0500 Subject: [PATCH 23/69] notes about updates --- todo.txt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) mode change 100755 => 100644 todo.txt diff --git a/todo.txt b/todo.txt old mode 100755 new mode 100644 index 0a779e299d..c8194a57db --- a/todo.txt +++ b/todo.txt @@ -4,6 +4,13 @@ X https://github.com/processing/processing/issues/5794 X fix potential highlighting issue that wasn't selecting portions of text X update AppBundler to use newer SDK, recompile X edit build.xml files and appbundler to preserve more attributes +X contrib listing names should not be case sensitive +X libs in all caps appeared above those in lowercase + +contribs +X tweak mode not working +X https://github.com/processing/processing/issues/5805 +X https://github.com/processing/processing/pull/5909 _ windows anti-malware leaves browser stuck at 100% _ https://github.com/processing/processing/issues/5893 @@ -13,9 +20,6 @@ _ https://github.com/processing/processing/issues/5482 _ https://github.com/processing/processing/issues/5916 _ https://github.com/processing/processing/issues/5823 -fork issues -_ processing-sam/build/macosx/jdk-0u1_macosx_64.tgz - from Casey _ Issue with https and downloading the binaries, +Checksums? _ https://github.com/processing/processing-docs/issues/766 From 8148676f1e6b211ca16e844bff0785452444ea48 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Thu, 16 Jan 2020 18:54:22 -0500 Subject: [PATCH 24/69] ignore library subfolders --- app/src/processing/app/Library.java | 33 ++++++++++++----------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/app/src/processing/app/Library.java b/app/src/processing/app/Library.java index 83c1d1dd02..34bc6360e1 100644 --- a/app/src/processing/app/Library.java +++ b/app/src/processing/app/Library.java @@ -128,7 +128,7 @@ protected void handle() { StringDict exportTable = exportSettings.exists() ? Util.readSettings(exportSettings) : new StringDict(); - exportList = new HashMap(); + exportList = new HashMap<>(); // get the list of files just in the library root String[] baseList = libraryFolder.list(standardFilter); @@ -298,7 +298,7 @@ public void addPackageList(Map> importToLibraryTable) { // Library library = importToLibraryTable.get(pkg); List libraries = importToLibraryTable.get(pkg); if (libraries == null) { - libraries = new ArrayList(); + libraries = new ArrayList<>(); importToLibraryTable.put(pkg, libraries); } else { if (Base.DEBUG) { @@ -470,10 +470,10 @@ static public boolean hasMultipleArch(int platform, List libraries) { static protected FilenameFilter junkFolderFilter = new FilenameFilter() { public boolean accept(File dir, String name) { - // skip .DS_Store files, .svn folders, etc + // skip .DS_Store files, .svn and .git folders, etc if (name.charAt(0) == '.') return false; - if (name.equals("CVS")) return false; - return (new File(dir, name).isDirectory()); + if (name.equals("CVS")) return false; // old skool + return new File(dir, name).isDirectory(); } }; @@ -482,12 +482,14 @@ static public List discover(File folder) { List libraries = new ArrayList<>(); String[] folderNames = folder.list(junkFolderFilter); - // if a bad folder or something like that, this might come back null + // if a bad folder or unreadable, folderNames might be null if (folderNames != null) { // alphabetize list, since it's not always alpha order // replaced hella slow bubble sort with this feller for 0093 Arrays.sort(folderNames, String.CASE_INSENSITIVE_ORDER); + // TODO some weirdness because ContributionType.LIBRARY.isCandidate() + // handles some, but not all, of this [fry 200116] for (String potentialName : folderNames) { File baseFolder = new File(folder, potentialName); File libraryFolder = new File(baseFolder, "library"); @@ -500,22 +502,13 @@ static public List discover(File folder) { libraries.add(baseFolder); } else { - String mess = "The library \"" - + potentialName - + "\" cannot be used.\n" - + "Library names must contain only basic letters and numbers.\n" - + "(ASCII only and no spaces, and it cannot start with a number)"; + final String mess = + "The library \"" + potentialName + "\" cannot be used.\n" + + "Library names must contain only basic letters and numbers.\n" + + "(ASCII only and no spaces, and it cannot start with a number)"; Messages.showMessage("Ignoring bad library name", mess); continue; } - /* - } else { // maybe it's a JS library - // TODO this should be in a better location - File jsLibrary = new File(libraryFolder, potentialName + ".js"); - if (jsLibrary.exists()) { - libraries.add(baseFolder); - } - */ } } } @@ -532,6 +525,7 @@ static public List list(File folder) { libraries.add(new Library(baseFolder)); } + /* // Support libraries inside of one level of subfolders? I believe this was // the compromise for supporting library groups, but probably a bad idea // because it's not compatible with the Manager. @@ -548,6 +542,7 @@ static public List list(File folder) { } } } + */ return libraries; } From 93c6a060994e4d08807218e8caa4f5fe49e72c1b Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Thu, 16 Jan 2020 18:56:53 -0500 Subject: [PATCH 25/69] ignore __MACOSX files when unzipping --- app/src/processing/app/Util.java | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/app/src/processing/app/Util.java b/app/src/processing/app/Util.java index 6fdc75c9de..fefc3b8b71 100644 --- a/app/src/processing/app/Util.java +++ b/app/src/processing/app/Util.java @@ -614,24 +614,31 @@ static private void packageListFromFolder(File dir, String sofar, } + /** + * Extract the contents of a .zip archive into a folder. + * Ignores (does not extract) any __MACOSX files from macOS archives. + */ static public void unzip(File zipFile, File dest) { try { FileInputStream fis = new FileInputStream(zipFile); CheckedInputStream checksum = new CheckedInputStream(fis, new Adler32()); ZipInputStream zis = new ZipInputStream(new BufferedInputStream(checksum)); - ZipEntry next = null; - while ((next = zis.getNextEntry()) != null) { - File currentFile = new File(dest, next.getName()); - if (next.isDirectory()) { - currentFile.mkdirs(); - } else { - File parentDir = currentFile.getParentFile(); - // Sometimes the directory entries aren't already created - if (!parentDir.exists()) { - parentDir.mkdirs(); + ZipEntry entry = null; + while ((entry = zis.getNextEntry()) != null) { + final String name = entry.getName(); + if (!name.startsWith(("__MACOSX"))) { + File currentFile = new File(dest, name); + if (entry.isDirectory()) { + currentFile.mkdirs(); + } else { + File parentDir = currentFile.getParentFile(); + // Sometimes the directory entries aren't already created + if (!parentDir.exists()) { + parentDir.mkdirs(); + } + currentFile.createNewFile(); + unzipEntry(zis, currentFile); } - currentFile.createNewFile(); - unzipEntry(zis, currentFile); } } } catch (Exception e) { From a31855c7761ad958dbb52168e03a6495f060e7a6 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Thu, 16 Jan 2020 19:01:57 -0500 Subject: [PATCH 26/69] improve handling of weird cases and error messaging inside contribs manager --- .../app/contrib/AvailableContribution.java | 68 ++++++------------- .../app/contrib/ContribProgressBar.java | 2 +- .../app/contrib/ContributionManager.java | 9 +-- .../app/contrib/ContributionType.java | 6 +- .../app/contrib/LocalContribution.java | 17 +++-- todo.txt | 2 + 6 files changed, 45 insertions(+), 59 deletions(-) diff --git a/app/src/processing/app/contrib/AvailableContribution.java b/app/src/processing/app/contrib/AvailableContribution.java index 9c78b831ac..4d5240c451 100644 --- a/app/src/processing/app/contrib/AvailableContribution.java +++ b/app/src/processing/app/contrib/AvailableContribution.java @@ -3,7 +3,7 @@ /* Part of the Processing project - http://processing.org - Copyright (c) 2013-16 The Processing Foundation + Copyright (c) 2013-20 The Processing Foundation Copyright (c) 2011-12 Ben Fry and Casey Reas This program is free software; you can redistribute it and/or modify @@ -99,7 +99,6 @@ public LocalContribution install(Base base, File contribArchive, // Unzip the file into the modes, tools, or libraries folder inside the // sketchbook. Unzipping to /tmp is problematic because it may be on // another file system, so move/rename operations will break. -// File sketchbookContribFolder = type.getSketchbookFolder(); File tempFolder = null; try { @@ -110,84 +109,61 @@ public LocalContribution install(Base base, File contribArchive, return null; } Util.unzip(contribArchive, tempFolder); -// System.out.println("temp folder is " + tempFolder); -// Base.openFolder(tempFolder); // Now go looking for a legit contrib inside what's been unpacked. File contribFolder = null; - // Sometimes contrib authors place all their folders in the base directory - // of the .zip file instead of in single folder as the guidelines suggest. - if (type.isCandidate(tempFolder)) { - /* - // Can't just rename the temp folder, because a contrib with this name - // may already exist. Instead, create a new temp folder, and rename the - // old one to be the correct folder. - File enclosingFolder = null; - try { - enclosingFolder = Base.createTempFolder(type.toString(), "tmp", sketchbookContribFolder); - } catch (IOException e) { - status.setErrorMessage("Could not create a secondary folder to install."); - return null; - } - contribFolder = new File(enclosingFolder, getName()); - tempFolder.renameTo(contribFolder); - tempFolder = enclosingFolder; - */ + /* + if (!type.isCandidate(tempFolder)) { if (status != null) { status.setErrorMessage(Language.interpolate("contrib.errors.needs_repackage", getName(), type.getTitle())); } return null; } + */ -// if (contribFolder == null) { - // Find the first legitimate looking folder in what we just unzipped - contribFolder = type.findCandidate(tempFolder); -// } LocalContribution installedContrib = null; - + // Find the first legitimate folder in what we just unzipped + contribFolder = type.findCandidate(tempFolder); if (contribFolder == null) { if (status != null) { status.setErrorMessage(Language.interpolate("contrib.errors.no_contribution_found", type)); } - } else { File propFile = new File(contribFolder, type + ".properties"); - if (writePropertiesFile(propFile)) { - // 1. contribFolder now has a legit contribution, load it to get info. + if (!propFile.exists()) { + status.setErrorMessage("This contribution is missing " + + propFile.getName() + + ", please contact the author for a fix."); + + } else if (writePropertiesFile(propFile)) { + // contribFolder now has a legit contribution, load it to get info. LocalContribution newContrib = type.load(base, contribFolder); - // 1.1. get info we need to delete the newContrib folder later + // get info we need to delete the newContrib folder later File newContribFolder = newContrib.getFolder(); - // 2. Check to make sure nothing has the same name already, + // Check to make sure nothing has the same name already, // backup old if needed, then move things into place and reload. installedContrib = newContrib.copyAndLoad(base, confirmReplace, status); - // Restart no longer needed. Yay! -// if (newContrib != null && type.requiresRestart()) { -// installedContrib.setRestartFlag(); -// //status.setMessage("Restart Processing to finish the installation."); -// } - - // 3.1 Unlock all the jars if it is a mode or tool + // Unlock all the jars if it is a mode or tool if (newContrib.getType() == ContributionType.MODE) { ((ModeContribution) newContrib).clearClassLoader(base); - } - else if (newContrib.getType() == ContributionType.TOOL) { + + } else if (newContrib.getType() == ContributionType.TOOL) { ((ToolContribution) newContrib).clearClassLoader(); } - // 3.2 Delete the newContrib, do a garbage collection, hope and pray + // Delete the newContrib, do a garbage collection, hope and pray // that Java will unlock the temp folder on Windows now newContrib = null; System.gc(); - if (Platform.isWindows()) { - // we'll even give it a second to finish up ... because file ops are - // just that flaky on Windows. + // we'll even give it a second to finish up, + // because file ops are just that flaky on Windows. try { Thread.sleep(1000); } catch (InterruptedException e) { @@ -195,7 +171,7 @@ else if (newContrib.getType() == ContributionType.TOOL) { } } - // 4. Okay, now actually delete that temp folder + // delete the contrib folder inside the libraryXXXXXXtmp folder Util.removeDir(newContribFolder, false); } else { diff --git a/app/src/processing/app/contrib/ContribProgressBar.java b/app/src/processing/app/contrib/ContribProgressBar.java index c86cb16ae4..8a0d41c3b6 100644 --- a/app/src/processing/app/contrib/ContribProgressBar.java +++ b/app/src/processing/app/contrib/ContribProgressBar.java @@ -3,7 +3,7 @@ /* Part of the Processing project - http://processing.org - Copyright (c) 2013-15 The Processing Foundation + Copyright (c) 2013-20 The Processing Foundation Copyright (c) 2011-12 Ben Fry and Casey Reas This program is free software; you can redistribute it and/or modify diff --git a/app/src/processing/app/contrib/ContributionManager.java b/app/src/processing/app/contrib/ContributionManager.java index 8c0cc591bc..46f892ca77 100644 --- a/app/src/processing/app/contrib/ContributionManager.java +++ b/app/src/processing/app/contrib/ContributionManager.java @@ -3,7 +3,7 @@ /* Part of the Processing project - http://processing.org - Copyright (c) 2013 The Processing Foundation + Copyright (c) 2013-20 The Processing Foundation Copyright (c) 2011-12 Ben Fry and Casey Reas This program is free software; you can redistribute it and/or modify @@ -199,8 +199,8 @@ public void run() { } } installProgress.finished(); - } - else { + + } else { if (downloadProgress.exception instanceof SocketTimeoutException) { status.setErrorMessage(Language .interpolate("contrib.errors.contrib_download.timeout", @@ -213,7 +213,6 @@ public void run() { } contribZip.delete(); - //} catch (NoClassDefFoundError ncdfe) { } catch (Exception e) { String msg = null; if (e instanceof RuntimeException) { @@ -229,6 +228,8 @@ public void run() { if (msg == null) { msg = Language.interpolate("contrib.errors.download_and_install", ad.getName()); + // Something unexpected, so print the trace + e.printStackTrace(); } status.setErrorMessage(msg); downloadProgress.cancel(); diff --git a/app/src/processing/app/contrib/ContributionType.java b/app/src/processing/app/contrib/ContributionType.java index 197aaa4f5c..2ea1dd2d78 100644 --- a/app/src/processing/app/contrib/ContributionType.java +++ b/app/src/processing/app/contrib/ContributionType.java @@ -3,7 +3,7 @@ /* Part of the Processing project - http://processing.org - Copyright (c) 2013 The Processing Foundation + Copyright (c) 2013-20 The Processing Foundation Copyright (c) 2011-12 Ben Fry and Casey Reas This program is free software; you can redistribute it and/or modify @@ -172,7 +172,7 @@ public File getSketchbookFolder() { } - boolean isCandidate(File potential) { + public boolean isCandidate(File potential) { return (potential.isDirectory() && new File(potential, toString()).exists() && !isTempFolderName(potential.getName())); @@ -237,7 +237,7 @@ LocalContribution load(Base base, File folder) { ArrayList listContributions(Editor editor) { - ArrayList contribs = new ArrayList(); + ArrayList contribs = new ArrayList<>(); switch (this) { case LIBRARY: contribs.addAll(editor.getMode().contribLibraries); diff --git a/app/src/processing/app/contrib/LocalContribution.java b/app/src/processing/app/contrib/LocalContribution.java index 20c7176b01..cb128a73e9 100644 --- a/app/src/processing/app/contrib/LocalContribution.java +++ b/app/src/processing/app/contrib/LocalContribution.java @@ -3,7 +3,7 @@ /* Part of the Processing project - http://processing.org - Copyright (c) 2013-16 The Processing Foundation + Copyright (c) 2013-20 The Processing Foundation Copyright (c) 2011-12 Ben Fry and Casey Reas This program is free software; you can redistribute it and/or modify @@ -237,7 +237,8 @@ static void listClasses(ClassLoader loader) { LocalContribution copyAndLoad(Base base, boolean confirmReplace, StatusPanel status) { -// NOTE: null status => function is called on startup when Editor objects, et al. aren't ready + // NOTE: null status => function is called on startup + // when Editor objects, et al. aren't ready String contribFolderName = getFolder().getName(); @@ -262,10 +263,17 @@ LocalContribution copyAndLoad(Base base, (oldContrib.getId() != null && oldContrib.getId().equals(getId()))) { if (oldContrib.getType().requiresRestart()) { - // XXX: We can't replace stuff, soooooo.... do something different if (!oldContrib.backup(false, status)) { return null; } + /* + try { + Platform.deleteFile(oldContrib.getFolder()); + } catch (IOException e) { + status.setErrorMessage(e.getMessage()); + return null; + } + */ } else { int result = 0; boolean doBackup = Preferences.getBoolean("contribution.backup.on_install"); @@ -306,8 +314,7 @@ LocalContribution copyAndLoad(Base base, Util.removeDir(contribFolder); } - } - else { + } else { // This if should ideally never happen, since this function // is to be called only when restarting on update if (contribFolder.exists() && contribFolder.isDirectory()) { diff --git a/todo.txt b/todo.txt index c8194a57db..8b692a2bf4 100644 --- a/todo.txt +++ b/todo.txt @@ -6,6 +6,8 @@ X update AppBundler to use newer SDK, recompile X edit build.xml files and appbundler to preserve more attributes X contrib listing names should not be case sensitive X libs in all caps appeared above those in lowercase +X ignore library subfolders +X don't unzip __MACOSX files with contribs contribs X tweak mode not working From 8430922f5e8fc679974f56c9351598560343a132 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Thu, 16 Jan 2020 19:25:44 -0500 Subject: [PATCH 27/69] don't remove old sketch name from Recent menu on Save As (fixes #5902) --- app/src/processing/app/Sketch.java | 21 ++++++++++++++------- app/src/processing/app/ui/Recent.java | 3 +++ todo.txt | 6 ++++++ 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/app/src/processing/app/Sketch.java b/app/src/processing/app/Sketch.java index 7d3caf8988..e686dc1823 100644 --- a/app/src/processing/app/Sketch.java +++ b/app/src/processing/app/Sketch.java @@ -573,7 +573,7 @@ protected void nameCode(String newName) { code[i].setFolder(newFolder); } // Update internal state to reflect the new location - updateInternal(sanitaryName, newFolder); + updateInternal(sanitaryName, newFolder, renamingCode); // File newMainFile = new File(newFolder, newName + ".pde"); // String newMainFilePath = newMainFile.getAbsolutePath(); @@ -985,15 +985,17 @@ public boolean accept(File file) { // While the old path to the main .pde is still set, remove the entry from // the Recent menu so that it's not sticking around after the rename. // If untitled, it won't be in the menu, so there's no point. - if (!isUntitled()) { - Recent.remove(editor); - } +// if (!isUntitled()) { +// Recent.remove(editor); +// } + // Folks didn't like this behavior, so shutting it off + // https://github.com/processing/processing/issues/5902 // save the main tab with its new name File newFile = new File(newFolder, newName + "." + mode.getDefaultExtension()); code[0].saveAs(newFile); - updateInternal(newName, newFolder); + updateInternal(newName, newFolder, false); // Make sure that it's not an untitled sketch setUntitled(false); @@ -1191,7 +1193,8 @@ public void done() { /** * Update internal state for new sketch name or folder location. */ - protected void updateInternal(String sketchName, File sketchFolder) { + protected void updateInternal(String sketchName, File sketchFolder, + boolean renaming) { // reset all the state information for the sketch object String oldPath = getMainFilePath(); primaryFile = code[0].getFile(); @@ -1213,7 +1216,11 @@ protected void updateInternal(String sketchName, File sketchFolder) { // System.out.println("modified is now " + modified); editor.updateTitle(); editor.getBase().rebuildSketchbookMenus(); - Recent.rename(editor, oldPath); + if (renaming) { + // only update the Recent menu if it's a rename, not a Save As + // https://github.com/processing/processing/issues/5902 + Recent.rename(editor, oldPath); + } // editor.header.rebuild(); } diff --git a/app/src/processing/app/ui/Recent.java b/app/src/processing/app/ui/Recent.java index 92f62ba7c0..bc26761736 100644 --- a/app/src/processing/app/ui/Recent.java +++ b/app/src/processing/app/ui/Recent.java @@ -242,6 +242,8 @@ public void actionPerformed(ActionEvent e) { synchronized static public void remove(Editor editor) { int index = findRecord(editor.getSketch().getMainFilePath()); if (index != -1) { + System.out.println("removing " + editor.getSketch().getMainFilePath()); + new Exception().printStackTrace(System.out); records.remove(index); } } @@ -291,6 +293,7 @@ synchronized static public void append(Editor editor) { // If this sketch is already in the menu, remove it remove(editor); + // If the list is full, remove the first entry if (records.size() == Preferences.getInteger("recent.count")) { records.remove(0); // remove the first entry } diff --git a/todo.txt b/todo.txt index 8b692a2bf4..993b86838d 100644 --- a/todo.txt +++ b/todo.txt @@ -8,6 +8,12 @@ X contrib listing names should not be case sensitive X libs in all caps appeared above those in lowercase X ignore library subfolders X don't unzip __MACOSX files with contribs +X don't do library subfolders +X show error when .properties file is missing from contribs +X clean up a lot of bad temp file handling in the contrib manager +X https://github.com/processing/processing/issues/5845 +X don't remove entries from Recent menu on Save As +X https://github.com/processing/processing/issues/5902 contribs X tweak mode not working From 65a73ec65a3facddf02553f9385ab30f26db64e0 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Fri, 17 Jan 2020 10:42:23 -0500 Subject: [PATCH 28/69] catch null folder list on startup (fixes #5823) --- .../app/contrib/ContributionManager.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/app/src/processing/app/contrib/ContributionManager.java b/app/src/processing/app/contrib/ContributionManager.java index 46f892ca77..af9c4d8995 100644 --- a/app/src/processing/app/contrib/ContributionManager.java +++ b/app/src/processing/app/contrib/ContributionManager.java @@ -619,16 +619,21 @@ public boolean accept(File folder) { } }); - for (File file : installList) { - for (AvailableContribution contrib : listing.advertisedContributions) { - if (file.getName().equals(contrib.getName())) { - file.delete(); - installOnStartUp(base, contrib); - EventQueue.invokeAndWait(() -> { - listing.replaceContribution(contrib, contrib); - }); + // https://github.com/processing/processing/issues/5823 + if (installList != null) { + for (File file : installList) { + for (AvailableContribution contrib : listing.advertisedContributions) { + if (file.getName().equals(contrib.getName())) { + file.delete(); + installOnStartUp(base, contrib); + EventQueue.invokeAndWait(() -> { + listing.replaceContribution(contrib, contrib); + }); + } } } + } else { + System.err.println("Could not read " + root); } } From 67d57a725594a6785dada2845b920b82d51b96ac Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Fri, 17 Jan 2020 10:55:48 -0500 Subject: [PATCH 29/69] recent updates to contrib manager --- todo.txt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/todo.txt b/todo.txt index 993b86838d..4c7a4fc110 100644 --- a/todo.txt +++ b/todo.txt @@ -4,6 +4,13 @@ X https://github.com/processing/processing/issues/5794 X fix potential highlighting issue that wasn't selecting portions of text X update AppBundler to use newer SDK, recompile X edit build.xml files and appbundler to preserve more attributes +X don't remove entries from Recent menu on Save As +X https://github.com/processing/processing/issues/5902 +o NPE in buildCoreModes() on startup +o https://github.com/processing/processing/issues/5823 +X not clear what was wrong here + +contrib manager X contrib listing names should not be case sensitive X libs in all caps appeared above those in lowercase X ignore library subfolders @@ -12,8 +19,9 @@ X don't do library subfolders X show error when .properties file is missing from contribs X clean up a lot of bad temp file handling in the contrib manager X https://github.com/processing/processing/issues/5845 -X don't remove entries from Recent menu on Save As -X https://github.com/processing/processing/issues/5902 +X NPE in installPreviouslyFailed() on startup +X https://github.com/processing/processing/issues/5482 +X https://github.com/processing/processing/issues/5916 contribs X tweak mode not working @@ -23,10 +31,6 @@ X https://github.com/processing/processing/pull/5909 _ windows anti-malware leaves browser stuck at 100% _ https://github.com/processing/processing/issues/5893 -_ startup errors in contrib manager -_ https://github.com/processing/processing/issues/5482 -_ https://github.com/processing/processing/issues/5916 -_ https://github.com/processing/processing/issues/5823 from Casey _ Issue with https and downloading the binaries, +Checksums? From 4bc152519851f8258b276952d4788497303d1be9 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Fri, 17 Jan 2020 10:56:07 -0500 Subject: [PATCH 30/69] just removing extra spaces from auto-generated code --- core/src/processing/core/PApplet.java | 90 ++++++++++++------------ core/src/processing/core/PGraphics.java | 92 ++++++++++++------------- 2 files changed, 91 insertions(+), 91 deletions(-) diff --git a/core/src/processing/core/PApplet.java b/core/src/processing/core/PApplet.java index 4492d6ae00..5f35bfc72c 100644 --- a/core/src/processing/core/PApplet.java +++ b/core/src/processing/core/PApplet.java @@ -12169,11 +12169,11 @@ public void rect(float a, float b, float c, float d, /** * ( begin auto-generated from square.xml ) * - * Draws a square to the screen. A square is a four-sided shape with - * every angle at ninety degrees and each side is the same length. - * By default, the first two parameters set the location of the - * upper-left corner, the third sets the width and height. The way - * these parameters are interpreted, however, may be changed with the + * Draws a square to the screen. A square is a four-sided shape with + * every angle at ninety degrees and each side is the same length. + * By default, the first two parameters set the location of the + * upper-left corner, the third sets the width and height. The way + * these parameters are interpreted, however, may be changed with the * rectMode() function. * * ( end auto-generated ) @@ -12282,9 +12282,9 @@ public void arc(float a, float b, float c, float d, /** * ( begin auto-generated from circle.xml ) * - * Draws a circle to the screen. By default, the first two parameters - * set the location of the center, and the third sets the shape's width - * and height. The origin may be changed with the ellipseMode() + * Draws a circle to the screen. By default, the first two parameters + * set the location of the center, and the third sets the shape's width + * and height. The origin may be changed with the ellipseMode() * function. * * ( end auto-generated ) @@ -13326,28 +13326,28 @@ public void text(float num, float x, float y, float z) { /** * ( begin auto-generated from push.xml ) * - * The push() function saves the current drawing style - * settings and transformations, while pop() restores these - * settings. Note that these functions are always used together. - * They allow you to change the style and transformation settings - * and later return to what you had. When a new state is started - * with push(), it builds on the current style and transform + * The push() function saves the current drawing style + * settings and transformations, while pop() restores these + * settings. Note that these functions are always used together. + * They allow you to change the style and transformation settings + * and later return to what you had. When a new state is started + * with push(), it builds on the current style and transform * information.
*
- * push() stores information related to the current - * transformation state and style settings controlled by the - * following functions: rotate(), translate(), - * scale(), fill(), stroke(), tint(), - * strokeWeight(), strokeCap(), strokeJoin(), - * imageMode(), rectMode(), ellipseMode(), - * colorMode(), textAlign(), textFont(), + * push() stores information related to the current + * transformation state and style settings controlled by the + * following functions: rotate(), translate(), + * scale(), fill(), stroke(), tint(), + * strokeWeight(), strokeCap(), strokeJoin(), + * imageMode(), rectMode(), ellipseMode(), + * colorMode(), textAlign(), textFont(), * textMode(), textSize(), textLeading().
*
- * The push() and pop() functions were added with - * Processing 3.5. They can be used in place of pushMatrix(), - * popMatrix(), pushStyles(), and popStyles(). - * The difference is that push() and pop() control both the - * transformations (rotate, scale, translate) and the drawing styles + * The push() and pop() functions were added with + * Processing 3.5. They can be used in place of pushMatrix(), + * popMatrix(), pushStyles(), and popStyles(). + * The difference is that push() and pop() control both the + * transformations (rotate, scale, translate) and the drawing styles * at the same time. * * ( end auto-generated ) @@ -13364,28 +13364,28 @@ public void push() { /** * ( begin auto-generated from pop.xml ) * - * The pop() function restores the previous drawing style - * settings and transformations after push() has changed them. - * Note that these functions are always used together. They allow - * you to change the style and transformation settings and later - * return to what you had. When a new state is started with push(), + * The pop() function restores the previous drawing style + * settings and transformations after push() has changed them. + * Note that these functions are always used together. They allow + * you to change the style and transformation settings and later + * return to what you had. When a new state is started with push(), * it builds on the current style and transform information.
*
*
- * push() stores information related to the current - * transformation state and style settings controlled by the - * following functions: rotate(), translate(), - * scale(), fill(), stroke(), tint(), - * strokeWeight(), strokeCap(), strokeJoin(), - * imageMode(), rectMode(), ellipseMode(), - * colorMode(), textAlign(), textFont(), + * push() stores information related to the current + * transformation state and style settings controlled by the + * following functions: rotate(), translate(), + * scale(), fill(), stroke(), tint(), + * strokeWeight(), strokeCap(), strokeJoin(), + * imageMode(), rectMode(), ellipseMode(), + * colorMode(), textAlign(), textFont(), * textMode(), textSize(), textLeading().
*
- * The push() and pop() functions were added with - * Processing 3.5. They can be used in place of pushMatrix(), - * popMatrix(), pushStyles(), and popStyles(). - * The difference is that push() and pop() control both the - * transformations (rotate, scale, translate) and the drawing styles + * The push() and pop() functions were added with + * Processing 3.5. They can be used in place of pushMatrix(), + * popMatrix(), pushStyles(), and popStyles(). + * The difference is that push() and pop() control both the + * transformations (rotate, scale, translate) and the drawing styles * at the same time. * * ( end auto-generated ) @@ -14862,7 +14862,7 @@ public void specular(int rgb) { /** * gray number specifying value between white and black - * + * * @param gray value between black and white, by default 0 to 255 */ public void specular(float gray) { @@ -14929,7 +14929,7 @@ public void emissive(int rgb) { /** * gray number specifying value between white and black - * + * * @param gray value between black and white, by default 0 to 255 */ public void emissive(float gray) { diff --git a/core/src/processing/core/PGraphics.java b/core/src/processing/core/PGraphics.java index 032b69928d..57c782f5f0 100644 --- a/core/src/processing/core/PGraphics.java +++ b/core/src/processing/core/PGraphics.java @@ -3,7 +3,7 @@ /* Part of the Processing project - http://processing.org - Copyright (c) 2013-19 The Processing Foundation + Copyright (c) 2013-20 The Processing Foundation Copyright (c) 2004-12 Ben Fry and Casey Reas Copyright (c) 2001-04 Massachusetts Institute of Technology @@ -2732,11 +2732,11 @@ protected void rectImpl(float x1, float y1, float x2, float y2, /** * ( begin auto-generated from square.xml ) * - * Draws a square to the screen. A square is a four-sided shape with - * every angle at ninety degrees and each side is the same length. - * By default, the first two parameters set the location of the - * upper-left corner, the third sets the width and height. The way - * these parameters are interpreted, however, may be changed with the + * Draws a square to the screen. A square is a four-sided shape with + * every angle at ninety degrees and each side is the same length. + * By default, the first two parameters set the location of the + * upper-left corner, the third sets the width and height. The way + * these parameters are interpreted, however, may be changed with the * rectMode() function. * * ( end auto-generated ) @@ -2931,9 +2931,9 @@ protected void arcImpl(float x, float y, float w, float h, /** * ( begin auto-generated from circle.xml ) * - * Draws a circle to the screen. By default, the first two parameters - * set the location of the center, and the third sets the shape's width - * and height. The origin may be changed with the ellipseMode() + * Draws a circle to the screen. By default, the first two parameters + * set the location of the center, and the third sets the shape's width + * and height. The origin may be changed with the ellipseMode() * function. * * ( end auto-generated ) @@ -5167,28 +5167,28 @@ protected void textCharScreenImpl(PImage glyph, /** * ( begin auto-generated from push.xml ) * - * The push() function saves the current drawing style - * settings and transformations, while pop() restores these - * settings. Note that these functions are always used together. - * They allow you to change the style and transformation settings - * and later return to what you had. When a new state is started - * with push(), it builds on the current style and transform + * The push() function saves the current drawing style + * settings and transformations, while pop() restores these + * settings. Note that these functions are always used together. + * They allow you to change the style and transformation settings + * and later return to what you had. When a new state is started + * with push(), it builds on the current style and transform * information.
*
- * push() stores information related to the current - * transformation state and style settings controlled by the - * following functions: rotate(), translate(), - * scale(), fill(), stroke(), tint(), - * strokeWeight(), strokeCap(), strokeJoin(), - * imageMode(), rectMode(), ellipseMode(), - * colorMode(), textAlign(), textFont(), + * push() stores information related to the current + * transformation state and style settings controlled by the + * following functions: rotate(), translate(), + * scale(), fill(), stroke(), tint(), + * strokeWeight(), strokeCap(), strokeJoin(), + * imageMode(), rectMode(), ellipseMode(), + * colorMode(), textAlign(), textFont(), * textMode(), textSize(), textLeading().
*
- * The push() and pop() functions were added with - * Processing 3.5. They can be used in place of pushMatrix(), - * popMatrix(), pushStyles(), and popStyles(). - * The difference is that push() and pop() control both the - * transformations (rotate, scale, translate) and the drawing styles + * The push() and pop() functions were added with + * Processing 3.5. They can be used in place of pushMatrix(), + * popMatrix(), pushStyles(), and popStyles(). + * The difference is that push() and pop() control both the + * transformations (rotate, scale, translate) and the drawing styles * at the same time. * * ( end auto-generated ) @@ -5204,28 +5204,28 @@ public void push() { /** * ( begin auto-generated from pop.xml ) * - * The pop() function restores the previous drawing style - * settings and transformations after push() has changed them. - * Note that these functions are always used together. They allow - * you to change the style and transformation settings and later - * return to what you had. When a new state is started with push(), + * The pop() function restores the previous drawing style + * settings and transformations after push() has changed them. + * Note that these functions are always used together. They allow + * you to change the style and transformation settings and later + * return to what you had. When a new state is started with push(), * it builds on the current style and transform information.
*
*
- * push() stores information related to the current - * transformation state and style settings controlled by the - * following functions: rotate(), translate(), - * scale(), fill(), stroke(), tint(), - * strokeWeight(), strokeCap(), strokeJoin(), - * imageMode(), rectMode(), ellipseMode(), - * colorMode(), textAlign(), textFont(), + * push() stores information related to the current + * transformation state and style settings controlled by the + * following functions: rotate(), translate(), + * scale(), fill(), stroke(), tint(), + * strokeWeight(), strokeCap(), strokeJoin(), + * imageMode(), rectMode(), ellipseMode(), + * colorMode(), textAlign(), textFont(), * textMode(), textSize(), textLeading().
*
- * The push() and pop() functions were added with - * Processing 3.5. They can be used in place of pushMatrix(), - * popMatrix(), pushStyles(), and popStyles(). - * The difference is that push() and pop() control both the - * transformations (rotate, scale, translate) and the drawing styles + * The push() and pop() functions were added with + * Processing 3.5. They can be used in place of pushMatrix(), + * popMatrix(), pushStyles(), and popStyles(). + * The difference is that push() and pop() control both the + * transformations (rotate, scale, translate) and the drawing styles * at the same time. * * ( end auto-generated ) @@ -6940,7 +6940,7 @@ public void specular(int rgb) { /** * gray number specifying value between white and black - * + * * @param gray value between black and white, by default 0 to 255 */ public void specular(float gray) { @@ -7019,7 +7019,7 @@ public void emissive(int rgb) { /** * gray number specifying value between white and black - * + * * @param gray value between black and white, by default 0 to 255 */ public void emissive(float gray) { From a1e623c59afb5cfadfaefdf2e9f15ee82cee19cd Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Fri, 17 Jan 2020 11:13:04 -0500 Subject: [PATCH 31/69] wrapping up other changes/edits --- core/todo.txt | 6 ++++-- todo.txt | 8 ++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/core/todo.txt b/core/todo.txt index a5d49046a3..750a8e7772 100644 --- a/core/todo.txt +++ b/core/todo.txt @@ -1,9 +1,11 @@ -0270 (3.5.4 or 3.6) +0270 (3.5.4) +no changes + + _ size() issues on Mojave? _ https://github.com/processing/processing/issues/5791 _ use exit event to set mouseY to 0 on macOS _ https://github.com/processing/processing/pull/5796/files - _ possible fix for precision issues with PDF _ https://github.com/processing/processing/issues/5801#issuecomment-466632459 diff --git a/todo.txt b/todo.txt index 4c7a4fc110..113b6a27e0 100644 --- a/todo.txt +++ b/todo.txt @@ -1,4 +1,4 @@ -0270 (3.5.4 or 3.6) +0270 (3.5.4) X use ctrl-page up/down for tabs on Windows X https://github.com/processing/processing/issues/5794 X fix potential highlighting issue that wasn't selecting portions of text @@ -19,6 +19,7 @@ X don't do library subfolders X show error when .properties file is missing from contribs X clean up a lot of bad temp file handling in the contrib manager X https://github.com/processing/processing/issues/5845 +X https://github.com/processing/processing/issues/5960 X NPE in installPreviouslyFailed() on startup X https://github.com/processing/processing/issues/5482 X https://github.com/processing/processing/issues/5916 @@ -28,9 +29,6 @@ X tweak mode not working X https://github.com/processing/processing/issues/5805 X https://github.com/processing/processing/pull/5909 -_ windows anti-malware leaves browser stuck at 100% -_ https://github.com/processing/processing/issues/5893 - from Casey _ Issue with https and downloading the binaries, +Checksums? @@ -70,6 +68,8 @@ _ https://github.com/processing/processing/pull/4040 high +_ windows anti-malware leaves browser stuck at 100% +_ https://github.com/processing/processing/issues/5893 _ run button not deactivating _ https://github.com/processing/processing/issues/5786 _ Find in Reference disabled for various keywords (draw, for, if, catch, while) From 349282fa1b15c7be47f5de0b3a8eb76f23eafce9 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Fri, 17 Jan 2020 11:20:35 -0500 Subject: [PATCH 32/69] write release notes --- build/shared/revisions.txt | 51 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/build/shared/revisions.txt b/build/shared/revisions.txt index 90daa44f8e..5ed6ba5914 100644 --- a/build/shared/revisions.txt +++ b/build/shared/revisions.txt @@ -1,3 +1,54 @@ +PROCESSING 3.5.4 (REV 0270) - 17 January 2020 + +This release has several bug fixes to improve the Contribution Manager, +get Tweak Mode working again, and so on. + + +[ changes ] + ++ Don't remove entries from Recent menu on Save As + https://github.com/processing/processing/issues/5902 + ++ Use ctrl-page up/down for changing tabs on Windows + https://github.com/processing/processing/issues/5794 + ++ Show error when .properties file is missing from a Library/Mode/Tool. + + +[ fixes ] + ++ Tweak Mode working again (fix from Gal Sasson) + https://github.com/processing/processing/issues/5805 + https://github.com/processing/processing/pull/5909 + ++ Fix potential highlighting issue that wasn't selecting portions of text + ++ Names in the contribution listing are no longer case sensitive + (It was placing lowercase names at the bottom of the list.) + ++ Clean up a lot of bad temp file handling in the contrib manager + https://github.com/processing/processing/issues/5845 + https://github.com/processing/processing/issues/5960 + ++ Fix NullPointerException in installPreviouslyFailed() on startup + https://github.com/processing/processing/issues/5482 + https://github.com/processing/processing/issues/5916 + + +[ internal ] + ++ Ignore subfolders in the "libraries" directory. This was causing some + nasty startup issues for folks, and other hard-to-track bugs. Hopefully + there aren't any installs that relied on this behavior. + ++ Update AppBundler to use newer SDK, recompile + ++ Edit build.xml files and appbundler to preserve more attributes + + +. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + PROCESSING 3.5.3 (REV 0269) - 3 February 2019 This fixes a typo that left the "Redo" command with the wrong From e11941e0c3463cea7cd94e7204dfdb2c0d5d8f6b Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Fri, 17 Jan 2020 12:46:01 -0500 Subject: [PATCH 33/69] rolling over for the next release --- app/src/processing/app/Base.java | 4 ++-- core/done.txt | 4 ++++ core/todo.txt | 3 +-- done.txt | 32 ++++++++++++++++++++++++++++++++ todo.txt | 31 +------------------------------ 5 files changed, 40 insertions(+), 34 deletions(-) diff --git a/app/src/processing/app/Base.java b/app/src/processing/app/Base.java index 91472a09e9..5d9b0a114c 100644 --- a/app/src/processing/app/Base.java +++ b/app/src/processing/app/Base.java @@ -56,9 +56,9 @@ public class Base { // Added accessors for 0218 because the UpdateCheck class was not properly // updating the values, due to javac inlining the static final values. - static private final int REVISION = 270; + static private final int REVISION = 271; /** This might be replaced by main() if there's a lib/version.txt file. */ - static private String VERSION_NAME = "0270"; //$NON-NLS-1$ + static private String VERSION_NAME = "0271"; //$NON-NLS-1$ /** Set true if this a proper release rather than a numbered revision. */ /** diff --git a/core/done.txt b/core/done.txt index abbdd66c29..a04e597a69 100644 --- a/core/done.txt +++ b/core/done.txt @@ -1,3 +1,7 @@ +0270 (3.5.4) +no changes + + 0269 (3.5.3) X fix/clean a few file i/o issues X deal with possible resource leak when loading URLs diff --git a/core/todo.txt b/core/todo.txt index 750a8e7772..c15593393c 100644 --- a/core/todo.txt +++ b/core/todo.txt @@ -1,5 +1,4 @@ -0270 (3.5.4) -no changes +0271 (3.5.5 unlikely) _ size() issues on Mojave? diff --git a/done.txt b/done.txt index 1da976c40b..ef2420519b 100644 --- a/done.txt +++ b/done.txt @@ -1,3 +1,35 @@ +0270 (3.5.4) +X use ctrl-page up/down for tabs on Windows +X https://github.com/processing/processing/issues/5794 +X fix potential highlighting issue that wasn't selecting portions of text +X update AppBundler to use newer SDK, recompile +X edit build.xml files and appbundler to preserve more attributes +X don't remove entries from Recent menu on Save As +X https://github.com/processing/processing/issues/5902 +o NPE in buildCoreModes() on startup +o https://github.com/processing/processing/issues/5823 +X not clear what was wrong here + +contrib manager +X contrib listing names should not be case sensitive +X libs in all caps appeared above those in lowercase +X ignore library subfolders +X don't unzip __MACOSX files with contribs +X don't do library subfolders +X show error when .properties file is missing from contribs +X clean up a lot of bad temp file handling in the contrib manager +X https://github.com/processing/processing/issues/5845 +X https://github.com/processing/processing/issues/5960 +X NPE in installPreviouslyFailed() on startup +X https://github.com/processing/processing/issues/5482 +X https://github.com/processing/processing/issues/5916 + +contribs +X tweak mode not working +X https://github.com/processing/processing/issues/5805 +X https://github.com/processing/processing/pull/5909 + + 0269 (3.5.3) X added reference for circle(), square(), push(), pop() X has the reference.zip file been fixed? (yep) diff --git a/todo.txt b/todo.txt index 113b6a27e0..9b53d85580 100644 --- a/todo.txt +++ b/todo.txt @@ -1,33 +1,4 @@ -0270 (3.5.4) -X use ctrl-page up/down for tabs on Windows -X https://github.com/processing/processing/issues/5794 -X fix potential highlighting issue that wasn't selecting portions of text -X update AppBundler to use newer SDK, recompile -X edit build.xml files and appbundler to preserve more attributes -X don't remove entries from Recent menu on Save As -X https://github.com/processing/processing/issues/5902 -o NPE in buildCoreModes() on startup -o https://github.com/processing/processing/issues/5823 -X not clear what was wrong here - -contrib manager -X contrib listing names should not be case sensitive -X libs in all caps appeared above those in lowercase -X ignore library subfolders -X don't unzip __MACOSX files with contribs -X don't do library subfolders -X show error when .properties file is missing from contribs -X clean up a lot of bad temp file handling in the contrib manager -X https://github.com/processing/processing/issues/5845 -X https://github.com/processing/processing/issues/5960 -X NPE in installPreviouslyFailed() on startup -X https://github.com/processing/processing/issues/5482 -X https://github.com/processing/processing/issues/5916 - -contribs -X tweak mode not working -X https://github.com/processing/processing/issues/5805 -X https://github.com/processing/processing/pull/5909 +0271 (3.5.5 unlikely) from Casey From 83fe79dc5ea7255045c523210075fbfe7de6a771 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Fri, 17 Jan 2020 16:42:21 -0500 Subject: [PATCH 34/69] make note of #5828 and #5906 --- todo.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/todo.txt b/todo.txt index 9b53d85580..cd2ec96414 100644 --- a/todo.txt +++ b/todo.txt @@ -1,5 +1,10 @@ 0271 (3.5.5 unlikely) +contribs +X rename-variable menu allows Java identifiers +X https://github.com/processing/processing/issues/5828 +X https://github.com/processing/processing/pull/5906 + from Casey _ Issue with https and downloading the binaries, +Checksums? From f923be3fa2832fa8bc46696d672fc2674894d440 Mon Sep 17 00:00:00 2001 From: minimaximize Date: Sat, 7 Dec 2019 18:24:26 +1000 Subject: [PATCH 35/69] Use Java conventions for Array declaration --- core/src/processing/awt/PGraphicsJava2D.java | 10 +- core/src/processing/core/PApplet.java | 352 +++++++++--------- core/src/processing/core/PFont.java | 8 +- core/src/processing/core/PGraphics.java | 22 +- core/src/processing/core/PImage.java | 26 +- core/src/processing/core/PMatrix2D.java | 2 +- core/src/processing/core/PShapeOBJ.java | 2 +- core/src/processing/core/PShapeSVG.java | 6 +- core/src/processing/data/Table.java | 10 +- core/src/processing/javafx/PGraphicsFX2D.java | 6 +- core/src/processing/opengl/LinePath.java | 6 +- core/src/processing/opengl/PGL.java | 4 +- .../processing/opengl/PGraphicsOpenGL.java | 164 ++++---- core/src/processing/opengl/PJOGL.java | 4 +- 14 files changed, 303 insertions(+), 319 deletions(-) diff --git a/core/src/processing/awt/PGraphicsJava2D.java b/core/src/processing/awt/PGraphicsJava2D.java index c93ecada20..7d6e1c5972 100644 --- a/core/src/processing/awt/PGraphicsJava2D.java +++ b/core/src/processing/awt/PGraphicsJava2D.java @@ -82,7 +82,7 @@ public class PGraphicsJava2D extends PGraphics { float[] curveDrawY; int transformCount; - AffineTransform transformStack[] = + AffineTransform[] transformStack = new AffineTransform[MATRIX_STACK_DEPTH]; double[] transform = new double[6]; @@ -782,7 +782,7 @@ public void vertex(float x, float y) { //float vertex[]; if (vertexCount == vertices.length) { - float temp[][] = new float[vertexCount<<1][VERTEX_FIELD_COUNT]; + float[][] temp = new float[vertexCount<<1][VERTEX_FIELD_COUNT]; System.arraycopy(vertices, 0, temp, 0, vertexCount); vertices = temp; //message(CHATTER, "allocating more vertices " + vertices.length); @@ -1959,7 +1959,7 @@ protected void handleTextSize(float size) { @Override - protected float textWidthImpl(char buffer[], int start, int stop) { + protected float textWidthImpl(char[] buffer, int start, int stop) { if (textFont == null) { defaultFontOrDeath("textWidth"); } @@ -2028,7 +2028,7 @@ protected float textWidthImpl(char buffer[], int start, int stop) { @Override - protected void textLineImpl(char buffer[], int start, int stop, + protected void textLineImpl(char[] buffer, int start, int stop, float x, float y) { Font font = (Font) textFont.getNative(); // if (font != null && (textFont.isStream() || hints[ENABLE_NATIVE_FONTS])) { @@ -2828,7 +2828,7 @@ public void updatePixels(int x, int y, int c, int d) { // GET/SET - static int getset[] = new int[1]; + static int[] getset = new int[1]; @Override diff --git a/core/src/processing/core/PApplet.java b/core/src/processing/core/PApplet.java index 4492d6ae00..2d5f4db5a7 100644 --- a/core/src/processing/core/PApplet.java +++ b/core/src/processing/core/PApplet.java @@ -5548,7 +5548,7 @@ public PImage loadImage(String filename, String extension) { //, Object params) } if (extension.equals("tif") || extension.equals("tiff")) { - byte bytes[] = loadBytes(filename); + byte[] bytes = loadBytes(filename); PImage image = (bytes == null) ? null : PImage.loadTIFF(bytes); // if (params != null) { // image.setParams(g, params); @@ -5563,7 +5563,7 @@ public PImage loadImage(String filename, String extension) { //, Object params) if (extension.equals("jpg") || extension.equals("jpeg") || extension.equals("gif") || extension.equals("png") || extension.equals("unknown")) { - byte bytes[] = loadBytes(filename); + byte[] bytes = loadBytes(filename); if (bytes == null) { return null; } else { @@ -5765,7 +5765,7 @@ protected PImage loadImageTGA(String filename) throws IOException { InputStream is = createInput(filename); if (is == null) return null; - byte header[] = new byte[18]; + byte[] header = new byte[18]; int offset = 0; do { int count = is.read(header, offset, header.length - offset); @@ -5885,7 +5885,7 @@ header[17] image descriptor (packed bits) } else { // header[2] is 10 or 11 int index = 0; - int px[] = outgoing.pixels; + int[] px = outgoing.pixels; while (index < px.length) { int num = is.read(); @@ -7600,12 +7600,12 @@ static public String[] loadStrings(InputStream input) { static public String[] loadStrings(BufferedReader reader) { try { - String lines[] = new String[100]; + String[] lines = new String[100]; int lineCount = 0; String line = null; while ((line = reader.readLine()) != null) { if (lineCount == lines.length) { - String temp[] = new String[lineCount << 1]; + String[] temp = new String[lineCount << 1]; System.arraycopy(lines, 0, temp, 0, lineCount); lines = temp; } @@ -7618,7 +7618,7 @@ static public String[] loadStrings(BufferedReader reader) { } // resize array to appropriate amount for these lines - String output[] = new String[lineCount]; + String[] output = new String[lineCount]; System.arraycopy(lines, 0, output, 0, lineCount); return output; @@ -7919,7 +7919,7 @@ static public void saveBytes(OutputStream output, byte[] data) { * @see PApplet#loadBytes(String) * @see PApplet#saveBytes(String, byte[]) */ - public void saveStrings(String filename, String data[]) { + public void saveStrings(String filename, String[] data) { saveStrings(saveFile(filename), data); } @@ -7927,7 +7927,7 @@ public void saveStrings(String filename, String data[]) { /** * @nowebref */ - static public void saveStrings(File file, String data[]) { + static public void saveStrings(File file, String[] data) { saveStrings(createOutput(file), data); } @@ -8241,7 +8241,7 @@ static public String urlDecode(String str) { * @param list array to sort * @see PApplet#reverse(boolean[]) */ - static public byte[] sort(byte list[]) { + static public byte[] sort(byte[] list) { return sort(list, list.length); } @@ -8255,7 +8255,7 @@ static public byte[] sort(byte[] list, int count) { return outgoing; } - static public char[] sort(char list[]) { + static public char[] sort(char[] list) { return sort(list, list.length); } @@ -8266,7 +8266,7 @@ static public char[] sort(char[] list, int count) { return outgoing; } - static public int[] sort(int list[]) { + static public int[] sort(int[] list) { return sort(list, list.length); } @@ -8277,7 +8277,7 @@ static public int[] sort(int[] list, int count) { return outgoing; } - static public float[] sort(float list[]) { + static public float[] sort(float[] list) { return sort(list, list.length); } @@ -8288,7 +8288,7 @@ static public float[] sort(float[] list, int count) { return outgoing; } - static public String[] sort(String list[]) { + static public String[] sort(String[] list) { return sort(list, list.length); } @@ -8395,85 +8395,85 @@ static public void arraycopy(Object src, Object dst) { * @param list the array to expand * @see PApplet#shorten(boolean[]) */ - static public boolean[] expand(boolean list[]) { + static public boolean[] expand(boolean[] list) { return expand(list, list.length > 0 ? list.length << 1 : 1); } /** * @param newSize new size for the array */ - static public boolean[] expand(boolean list[], int newSize) { - boolean temp[] = new boolean[newSize]; + static public boolean[] expand(boolean[] list, int newSize) { + boolean[] temp = new boolean[newSize]; System.arraycopy(list, 0, temp, 0, Math.min(newSize, list.length)); return temp; } - static public byte[] expand(byte list[]) { + static public byte[] expand(byte[] list) { return expand(list, list.length > 0 ? list.length << 1 : 1); } - static public byte[] expand(byte list[], int newSize) { - byte temp[] = new byte[newSize]; + static public byte[] expand(byte[] list, int newSize) { + byte[] temp = new byte[newSize]; System.arraycopy(list, 0, temp, 0, Math.min(newSize, list.length)); return temp; } - static public char[] expand(char list[]) { + static public char[] expand(char[] list) { return expand(list, list.length > 0 ? list.length << 1 : 1); } - static public char[] expand(char list[], int newSize) { - char temp[] = new char[newSize]; + static public char[] expand(char[] list, int newSize) { + char[] temp = new char[newSize]; System.arraycopy(list, 0, temp, 0, Math.min(newSize, list.length)); return temp; } - static public int[] expand(int list[]) { + static public int[] expand(int[] list) { return expand(list, list.length > 0 ? list.length << 1 : 1); } - static public int[] expand(int list[], int newSize) { - int temp[] = new int[newSize]; + static public int[] expand(int[] list, int newSize) { + int[] temp = new int[newSize]; System.arraycopy(list, 0, temp, 0, Math.min(newSize, list.length)); return temp; } - static public long[] expand(long list[]) { + static public long[] expand(long[] list) { return expand(list, list.length > 0 ? list.length << 1 : 1); } - static public long[] expand(long list[], int newSize) { - long temp[] = new long[newSize]; + static public long[] expand(long[] list, int newSize) { + long[] temp = new long[newSize]; System.arraycopy(list, 0, temp, 0, Math.min(newSize, list.length)); return temp; } - static public float[] expand(float list[]) { + static public float[] expand(float[] list) { return expand(list, list.length > 0 ? list.length << 1 : 1); } - static public float[] expand(float list[], int newSize) { - float temp[] = new float[newSize]; + static public float[] expand(float[] list, int newSize) { + float[] temp = new float[newSize]; System.arraycopy(list, 0, temp, 0, Math.min(newSize, list.length)); return temp; } - static public double[] expand(double list[]) { + static public double[] expand(double[] list) { return expand(list, list.length > 0 ? list.length << 1 : 1); } - static public double[] expand(double list[], int newSize) { - double temp[] = new double[newSize]; + static public double[] expand(double[] list, int newSize) { + double[] temp = new double[newSize]; System.arraycopy(list, 0, temp, 0, Math.min(newSize, list.length)); return temp; } - static public String[] expand(String list[]) { + static public String[] expand(String[] list) { return expand(list, list.length > 0 ? list.length << 1 : 1); } - static public String[] expand(String list[], int newSize) { - String temp[] = new String[newSize]; + static public String[] expand(String[] list, int newSize) { + String[] temp = new String[newSize]; // in case the new size is smaller than list.length System.arraycopy(list, 0, temp, 0, Math.min(newSize, list.length)); return temp; @@ -8517,31 +8517,31 @@ static public Object expand(Object list, int newSize) { * @see PApplet#shorten(boolean[]) * @see PApplet#expand(boolean[]) */ - static public byte[] append(byte array[], byte value) { + static public byte[] append(byte[] array, byte value) { array = expand(array, array.length + 1); array[array.length-1] = value; return array; } - static public char[] append(char array[], char value) { + static public char[] append(char[] array, char value) { array = expand(array, array.length + 1); array[array.length-1] = value; return array; } - static public int[] append(int array[], int value) { + static public int[] append(int[] array, int value) { array = expand(array, array.length + 1); array[array.length-1] = value; return array; } - static public float[] append(float array[], float value) { + static public float[] append(float[] array, float value) { array = expand(array, array.length + 1); array[array.length-1] = value; return array; } - static public String[] append(String array[], String value) { + static public String[] append(String[] array, String value) { array = expand(array, array.length + 1); array[array.length-1] = value; return array; @@ -8571,27 +8571,27 @@ static public Object append(Object array, Object value) { * @see PApplet#append(byte[], byte) * @see PApplet#expand(boolean[]) */ - static public boolean[] shorten(boolean list[]) { + static public boolean[] shorten(boolean[] list) { return subset(list, 0, list.length-1); } - static public byte[] shorten(byte list[]) { + static public byte[] shorten(byte[] list) { return subset(list, 0, list.length-1); } - static public char[] shorten(char list[]) { + static public char[] shorten(char[] list) { return subset(list, 0, list.length-1); } - static public int[] shorten(int list[]) { + static public int[] shorten(int[] list) { return subset(list, 0, list.length-1); } - static public float[] shorten(float list[]) { + static public float[] shorten(float[] list) { return subset(list, 0, list.length-1); } - static public String[] shorten(String list[]) { + static public String[] shorten(String[] list) { return subset(list, 0, list.length-1); } @@ -8621,9 +8621,9 @@ static public Object shorten(Object list) { * @see PApplet#concat(boolean[], boolean[]) * @see PApplet#subset(boolean[], int, int) */ - static final public boolean[] splice(boolean list[], + static final public boolean[] splice(boolean[] list, boolean value, int index) { - boolean outgoing[] = new boolean[list.length + 1]; + boolean[] outgoing = new boolean[list.length + 1]; System.arraycopy(list, 0, outgoing, 0, index); outgoing[index] = value; System.arraycopy(list, index, outgoing, index + 1, @@ -8631,9 +8631,9 @@ static final public boolean[] splice(boolean list[], return outgoing; } - static final public boolean[] splice(boolean list[], - boolean value[], int index) { - boolean outgoing[] = new boolean[list.length + value.length]; + static final public boolean[] splice(boolean[] list, + boolean[] value, int index) { + boolean[] outgoing = new boolean[list.length + value.length]; System.arraycopy(list, 0, outgoing, 0, index); System.arraycopy(value, 0, outgoing, index, value.length); System.arraycopy(list, index, outgoing, index + value.length, @@ -8641,9 +8641,9 @@ static final public boolean[] splice(boolean list[], return outgoing; } - static final public byte[] splice(byte list[], + static final public byte[] splice(byte[] list, byte value, int index) { - byte outgoing[] = new byte[list.length + 1]; + byte[] outgoing = new byte[list.length + 1]; System.arraycopy(list, 0, outgoing, 0, index); outgoing[index] = value; System.arraycopy(list, index, outgoing, index + 1, @@ -8651,9 +8651,9 @@ static final public byte[] splice(byte list[], return outgoing; } - static final public byte[] splice(byte list[], - byte value[], int index) { - byte outgoing[] = new byte[list.length + value.length]; + static final public byte[] splice(byte[] list, + byte[] value, int index) { + byte[] outgoing = new byte[list.length + value.length]; System.arraycopy(list, 0, outgoing, 0, index); System.arraycopy(value, 0, outgoing, index, value.length); System.arraycopy(list, index, outgoing, index + value.length, @@ -8662,9 +8662,9 @@ static final public byte[] splice(byte list[], } - static final public char[] splice(char list[], + static final public char[] splice(char[] list, char value, int index) { - char outgoing[] = new char[list.length + 1]; + char[] outgoing = new char[list.length + 1]; System.arraycopy(list, 0, outgoing, 0, index); outgoing[index] = value; System.arraycopy(list, index, outgoing, index + 1, @@ -8672,9 +8672,9 @@ static final public char[] splice(char list[], return outgoing; } - static final public char[] splice(char list[], - char value[], int index) { - char outgoing[] = new char[list.length + value.length]; + static final public char[] splice(char[] list, + char[] value, int index) { + char[] outgoing = new char[list.length + value.length]; System.arraycopy(list, 0, outgoing, 0, index); System.arraycopy(value, 0, outgoing, index, value.length); System.arraycopy(list, index, outgoing, index + value.length, @@ -8682,9 +8682,9 @@ static final public char[] splice(char list[], return outgoing; } - static final public int[] splice(int list[], + static final public int[] splice(int[] list, int value, int index) { - int outgoing[] = new int[list.length + 1]; + int[] outgoing = new int[list.length + 1]; System.arraycopy(list, 0, outgoing, 0, index); outgoing[index] = value; System.arraycopy(list, index, outgoing, index + 1, @@ -8692,9 +8692,9 @@ static final public int[] splice(int list[], return outgoing; } - static final public int[] splice(int list[], - int value[], int index) { - int outgoing[] = new int[list.length + value.length]; + static final public int[] splice(int[] list, + int[] value, int index) { + int[] outgoing = new int[list.length + value.length]; System.arraycopy(list, 0, outgoing, 0, index); System.arraycopy(value, 0, outgoing, index, value.length); System.arraycopy(list, index, outgoing, index + value.length, @@ -8702,9 +8702,9 @@ static final public int[] splice(int list[], return outgoing; } - static final public float[] splice(float list[], + static final public float[] splice(float[] list, float value, int index) { - float outgoing[] = new float[list.length + 1]; + float[] outgoing = new float[list.length + 1]; System.arraycopy(list, 0, outgoing, 0, index); outgoing[index] = value; System.arraycopy(list, index, outgoing, index + 1, @@ -8712,9 +8712,9 @@ static final public float[] splice(float list[], return outgoing; } - static final public float[] splice(float list[], - float value[], int index) { - float outgoing[] = new float[list.length + value.length]; + static final public float[] splice(float[] list, + float[] value, int index) { + float[] outgoing = new float[list.length + value.length]; System.arraycopy(list, 0, outgoing, 0, index); System.arraycopy(value, 0, outgoing, index, value.length); System.arraycopy(list, index, outgoing, index + value.length, @@ -8722,9 +8722,9 @@ static final public float[] splice(float list[], return outgoing; } - static final public String[] splice(String list[], + static final public String[] splice(String[] list, String value, int index) { - String outgoing[] = new String[list.length + 1]; + String[] outgoing = new String[list.length + 1]; System.arraycopy(list, 0, outgoing, 0, index); outgoing[index] = value; System.arraycopy(list, index, outgoing, index + 1, @@ -8732,9 +8732,9 @@ static final public String[] splice(String list[], return outgoing; } - static final public String[] splice(String list[], - String value[], int index) { - String outgoing[] = new String[list.length + value.length]; + static final public String[] splice(String[] list, + String[] value, int index) { + String[] outgoing = new String[list.length + value.length]; System.arraycopy(list, 0, outgoing, 0, index); System.arraycopy(value, 0, outgoing, index, value.length); System.arraycopy(list, index, outgoing, index + value.length, @@ -8915,43 +8915,43 @@ static public Object subset(Object list, int start, int count) { * @see PApplet#splice(boolean[], boolean, int) * @see PApplet#arrayCopy(Object, int, Object, int, int) */ - static public boolean[] concat(boolean a[], boolean b[]) { - boolean c[] = new boolean[a.length + b.length]; + static public boolean[] concat(boolean[] a, boolean[] b) { + boolean[] c = new boolean[a.length + b.length]; System.arraycopy(a, 0, c, 0, a.length); System.arraycopy(b, 0, c, a.length, b.length); return c; } - static public byte[] concat(byte a[], byte b[]) { - byte c[] = new byte[a.length + b.length]; + static public byte[] concat(byte[] a, byte[] b) { + byte[] c = new byte[a.length + b.length]; System.arraycopy(a, 0, c, 0, a.length); System.arraycopy(b, 0, c, a.length, b.length); return c; } - static public char[] concat(char a[], char b[]) { - char c[] = new char[a.length + b.length]; + static public char[] concat(char[] a, char[] b) { + char[] c = new char[a.length + b.length]; System.arraycopy(a, 0, c, 0, a.length); System.arraycopy(b, 0, c, a.length, b.length); return c; } - static public int[] concat(int a[], int b[]) { - int c[] = new int[a.length + b.length]; + static public int[] concat(int[] a, int[] b) { + int[] c = new int[a.length + b.length]; System.arraycopy(a, 0, c, 0, a.length); System.arraycopy(b, 0, c, a.length, b.length); return c; } - static public float[] concat(float a[], float b[]) { - float c[] = new float[a.length + b.length]; + static public float[] concat(float[] a, float[] b) { + float[] c = new float[a.length + b.length]; System.arraycopy(a, 0, c, 0, a.length); System.arraycopy(b, 0, c, a.length, b.length); return c; } - static public String[] concat(String a[], String b[]) { - String c[] = new String[a.length + b.length]; + static public String[] concat(String[] a, String[] b) { + String[] c = new String[a.length + b.length]; System.arraycopy(a, 0, c, 0, a.length); System.arraycopy(b, 0, c, a.length, b.length); return c; @@ -8980,8 +8980,8 @@ static public Object concat(Object a, Object b) { * @param list booleans[], bytes[], chars[], ints[], floats[], or Strings[] * @see PApplet#sort(String[], int) */ - static public boolean[] reverse(boolean list[]) { - boolean outgoing[] = new boolean[list.length]; + static public boolean[] reverse(boolean[] list) { + boolean[] outgoing = new boolean[list.length]; int length1 = list.length - 1; for (int i = 0; i < list.length; i++) { outgoing[i] = list[length1 - i]; @@ -8989,8 +8989,8 @@ static public boolean[] reverse(boolean list[]) { return outgoing; } - static public byte[] reverse(byte list[]) { - byte outgoing[] = new byte[list.length]; + static public byte[] reverse(byte[] list) { + byte[] outgoing = new byte[list.length]; int length1 = list.length - 1; for (int i = 0; i < list.length; i++) { outgoing[i] = list[length1 - i]; @@ -8998,8 +8998,8 @@ static public byte[] reverse(byte list[]) { return outgoing; } - static public char[] reverse(char list[]) { - char outgoing[] = new char[list.length]; + static public char[] reverse(char[] list) { + char[] outgoing = new char[list.length]; int length1 = list.length - 1; for (int i = 0; i < list.length; i++) { outgoing[i] = list[length1 - i]; @@ -9007,8 +9007,8 @@ static public char[] reverse(char list[]) { return outgoing; } - static public int[] reverse(int list[]) { - int outgoing[] = new int[list.length]; + static public int[] reverse(int[] list) { + int[] outgoing = new int[list.length]; int length1 = list.length - 1; for (int i = 0; i < list.length; i++) { outgoing[i] = list[length1 - i]; @@ -9016,8 +9016,8 @@ static public int[] reverse(int list[]) { return outgoing; } - static public float[] reverse(float list[]) { - float outgoing[] = new float[list.length]; + static public float[] reverse(float[] list) { + float[] outgoing = new float[list.length]; int length1 = list.length - 1; for (int i = 0; i < list.length; i++) { outgoing[i] = list[length1 - i]; @@ -9025,8 +9025,8 @@ static public float[] reverse(float list[]) { return outgoing; } - static public String[] reverse(String list[]) { - String outgoing[] = new String[list.length]; + static public String[] reverse(String[] list) { + String[] outgoing = new String[list.length]; int length1 = list.length - 1; for (int i = 0; i < list.length; i++) { outgoing[i] = list[length1 - i]; @@ -9149,7 +9149,7 @@ static public String[] splitTokens(String value) { */ static public String[] splitTokens(String value, String delim) { StringTokenizer toker = new StringTokenizer(value, delim); - String pieces[] = new String[toker.countTokens()]; + String[] pieces = new String[toker.countTokens()]; int index = 0; while (toker.hasMoreTokens()) { @@ -9199,7 +9199,7 @@ static public String[] split(String value, char delim) { if (value == null) return null; //return split(what, String.valueOf(delim)); // huh - char chars[] = value.toCharArray(); + char[] chars = value.toCharArray(); int splitCount = 0; //1; for (int i = 0; i < chars.length; i++) { if (chars[i] == delim) splitCount++; @@ -9211,12 +9211,12 @@ static public String[] split(String value, char delim) { // on second thought, i don't agree with this, will disable //} if (splitCount == 0) { - String splits[] = new String[1]; + String[] splits = new String[1]; splits[0] = value; return splits; } //int pieceCount = splitCount + 1; - String splits[] = new String[splitCount + 1]; + String[] splits = new String[splitCount + 1]; int splitIndex = 0; int startIndex = 0; for (int i = 0; i < chars.length; i++) { @@ -9457,8 +9457,8 @@ static final public boolean[] parseBoolean(byte what[]) { * to zero will return false, and any other value will return true. * @return array of boolean elements */ - static final public boolean[] parseBoolean(int what[]) { - boolean outgoing[] = new boolean[what.length]; + static final public boolean[] parseBoolean(int[] what) { + boolean[] outgoing = new boolean[what.length]; for (int i = 0; i < what.length; i++) { outgoing[i] = (what[i] != 0); } @@ -9476,8 +9476,8 @@ static final public boolean[] parseBoolean(float what[]) { } */ - static final public boolean[] parseBoolean(String what[]) { - boolean outgoing[] = new boolean[what.length]; + static final public boolean[] parseBoolean(String[] what) { + boolean[] outgoing = new boolean[what.length]; for (int i = 0; i < what.length; i++) { outgoing[i] = Boolean.parseBoolean(what[i]); } @@ -9511,32 +9511,32 @@ static final public byte[] parseByte(String what) { // note: array[] // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - static final public byte[] parseByte(boolean what[]) { - byte outgoing[] = new byte[what.length]; + static final public byte[] parseByte(boolean[] what) { + byte[] outgoing = new byte[what.length]; for (int i = 0; i < what.length; i++) { outgoing[i] = what[i] ? (byte)1 : 0; } return outgoing; } - static final public byte[] parseByte(char what[]) { - byte outgoing[] = new byte[what.length]; + static final public byte[] parseByte(char[] what) { + byte[] outgoing = new byte[what.length]; for (int i = 0; i < what.length; i++) { outgoing[i] = (byte) what[i]; } return outgoing; } - static final public byte[] parseByte(int what[]) { - byte outgoing[] = new byte[what.length]; + static final public byte[] parseByte(int[] what) { + byte[] outgoing = new byte[what.length]; for (int i = 0; i < what.length; i++) { outgoing[i] = (byte) what[i]; } return outgoing; } - static final public byte[] parseByte(float what[]) { - byte outgoing[] = new byte[what.length]; + static final public byte[] parseByte(float[] what) { + byte[] outgoing = new byte[what.length]; for (int i = 0; i < what.length; i++) { outgoing[i] = (byte) what[i]; } @@ -9591,8 +9591,8 @@ static final public char[] parseChar(boolean what[]) { // 0/1 or T/F ? } */ - static final public char[] parseChar(byte what[]) { - char outgoing[] = new char[what.length]; + static final public char[] parseChar(byte[] what) { + char[] outgoing = new char[what.length]; for (int i = 0; i < what.length; i++) { outgoing[i] = (char) (what[i] & 0xff); } @@ -9608,8 +9608,8 @@ static final public char[] parseChar(int what[]) { } /* - static final public char[] parseChar(float what[]) { // nonsensical - char outgoing[] = new char[what.length]; + static final public char[] parseChar(int[] what) { + char[] outgoing = new char[what.length]; for (int i = 0; i < what.length; i++) { outgoing[i] = (char) what[i]; } @@ -9679,32 +9679,32 @@ static final public int parseInt(String what, int otherwise) { // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - static final public int[] parseInt(boolean what[]) { - int list[] = new int[what.length]; + static final public int[] parseInt(boolean[] what) { + int[] list = new int[what.length]; for (int i = 0; i < what.length; i++) { list[i] = what[i] ? 1 : 0; } return list; } - static final public int[] parseInt(byte what[]) { // note this unsigns - int list[] = new int[what.length]; + static final public int[] parseInt(byte[] what) { // note this unsigns + int[] list = new int[what.length]; for (int i = 0; i < what.length; i++) { list[i] = (what[i] & 0xff); } return list; } - static final public int[] parseInt(char what[]) { - int list[] = new int[what.length]; + static final public int[] parseInt(char[] what) { + int[] list = new int[what.length]; for (int i = 0; i < what.length; i++) { list[i] = what[i]; } return list; } - static public int[] parseInt(float what[]) { - int inties[] = new int[what.length]; + static public int[] parseInt(float[] what) { + int[] inties = new int[what.length]; for (int i = 0; i < what.length; i++) { inties[i] = (int)what[i]; } @@ -9720,7 +9720,7 @@ static public int[] parseInt(float what[]) { * * numbers will contain { 1, 300, 44 } */ - static public int[] parseInt(String what[]) { + static public int[] parseInt(String[] what) { return parseInt(what, 0); } @@ -9734,8 +9734,8 @@ static public int[] parseInt(String what[]) { * * numbers will contain { 1, 300, 9999, 44 } */ - static public int[] parseInt(String what[], int missing) { - int output[] = new int[what.length]; + static public int[] parseInt(String[] what, int missing) { + int[] output = new int[what.length]; for (int i = 0; i < what.length; i++) { try { output[i] = Integer.parseInt(what[i]); @@ -9776,46 +9776,28 @@ static final public float parseFloat(String what, float otherwise) { // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - /* - static final public float[] parseFloat(boolean what[]) { - float floaties[] = new float[what.length]; - for (int i = 0; i < what.length; i++) { - floaties[i] = what[i] ? 1 : 0; - } - return floaties; - } - - static final public float[] parseFloat(char what[]) { - float floaties[] = new float[what.length]; - for (int i = 0; i < what.length; i++) { - floaties[i] = (char) what[i]; - } - return floaties; - } - */ - - static final public float[] parseFloat(byte what[]) { - float floaties[] = new float[what.length]; + static final public float[] parseFloat(byte[] what) { + float[] floaties = new float[what.length]; for (int i = 0; i < what.length; i++) { floaties[i] = what[i]; } return floaties; } - static final public float[] parseFloat(int what[]) { - float floaties[] = new float[what.length]; + static final public float[] parseFloat(int[] what) { + float[] floaties = new float[what.length]; for (int i = 0; i < what.length; i++) { floaties[i] = what[i]; } return floaties; } - static final public float[] parseFloat(String what[]) { + static final public float[] parseFloat(String[] what) { return parseFloat(what, Float.NaN); } - static final public float[] parseFloat(String what[], float missing) { - float output[] = new float[what.length]; + static final public float[] parseFloat(String[] what, float missing) { + float[] output = new float[what.length]; for (int i = 0; i < what.length; i++) { try { output[i] = Float.parseFloat(what[i]); @@ -9850,32 +9832,32 @@ static final public String str(float x) { // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - static final public String[] str(boolean x[]) { - String s[] = new String[x.length]; + static final public String[] str(boolean[] x) { + String[] s = new String[x.length]; for (int i = 0; i < x.length; i++) s[i] = String.valueOf(x[i]); return s; } - static final public String[] str(byte x[]) { - String s[] = new String[x.length]; + static final public String[] str(byte[] x) { + String[] s = new String[x.length]; for (int i = 0; i < x.length; i++) s[i] = String.valueOf(x[i]); return s; } - static final public String[] str(char x[]) { - String s[] = new String[x.length]; + static final public String[] str(char[] x) { + String[] s = new String[x.length]; for (int i = 0; i < x.length; i++) s[i] = String.valueOf(x[i]); return s; } - static final public String[] str(int x[]) { - String s[] = new String[x.length]; + static final public String[] str(int[] x) { + String[] s = new String[x.length]; for (int i = 0; i < x.length; i++) s[i] = String.valueOf(x[i]); return s; } - static final public String[] str(float x[]) { - String s[] = new String[x.length]; + static final public String[] str(float[] x) { + String[] s = new String[x.length]; for (int i = 0; i < x.length; i++) s[i] = String.valueOf(x[i]); return s; } @@ -9932,8 +9914,8 @@ static public String[] nf(float[] nums) { * @see int(float) */ - static public String[] nf(int nums[], int digits) { - String formatted[] = new String[nums.length]; + static public String[] nf(int[] nums, int digits) { + String[] formatted = new String[nums.length]; for (int i = 0; i < formatted.length; i++) { formatted[i] = nf(nums[i], digits); } @@ -9976,8 +9958,8 @@ static public String nf(int num, int digits) { * @see PApplet#nfp(float, int, int) * @see PApplet#nfs(float, int, int) */ - static public String[] nfc(int nums[]) { - String formatted[] = new String[nums.length]; + static public String[] nfc(int[] nums) { + String[] formatted = new String[nums.length]; for (int i = 0; i < formatted.length; i++) { formatted[i] = nfc(nums[i]); } @@ -10036,8 +10018,8 @@ static public String nfs(int num, int digits) { /** * @param nums the numbers to format */ - static public String[] nfs(int nums[], int digits) { - String formatted[] = new String[nums.length]; + static public String[] nfs(int[] nums, int digits) { + String[] formatted = new String[nums.length]; for (int i = 0; i < formatted.length; i++) { formatted[i] = nfs(nums[i], digits); } @@ -10074,8 +10056,8 @@ static public String nfp(int num, int digits) { /** * @param nums the numbers to format */ - static public String[] nfp(int nums[], int digits) { - String formatted[] = new String[nums.length]; + static public String[] nfp(int[] nums, int digits) { + String[] formatted = new String[nums.length]; for (int i = 0; i < formatted.length; i++) { formatted[i] = nfp(nums[i], digits); } @@ -10096,8 +10078,8 @@ static public String[] nfp(int nums[], int digits) { * @param left number of digits to the left of the decimal point * @param right number of digits to the right of the decimal point */ - static public String[] nf(float nums[], int left, int right) { - String formatted[] = new String[nums.length]; + static public String[] nf(float[] nums, int left, int right) { + String[] formatted = new String[nums.length]; for (int i = 0; i < formatted.length; i++) { formatted[i] = nf(nums[i], left, right); } @@ -10129,8 +10111,8 @@ static public String nf(float num, int left, int right) { /** * @param right number of digits to the right of the decimal point */ - static public String[] nfc(float nums[], int right) { - String formatted[] = new String[nums.length]; + static public String[] nfc(float[] nums, int right) { + String[] formatted = new String[nums.length]; for (int i = 0; i < formatted.length; i++) { formatted[i] = nfc(nums[i], right); } @@ -10163,8 +10145,8 @@ static public String nfc(float num, int right) { * @param left the number of digits to the left of the decimal point * @param right the number of digits to the right of the decimal point */ - static public String[] nfs(float nums[], int left, int right) { - String formatted[] = new String[nums.length]; + static public String[] nfs(float[] nums, int left, int right) { + String[] formatted = new String[nums.length]; for (int i = 0; i < formatted.length; i++) { formatted[i] = nfs(nums[i], left, right); } @@ -10179,8 +10161,8 @@ static public String nfs(float num, int left, int right) { * @param left the number of digits to the left of the decimal point * @param right the number of digits to the right of the decimal point */ - static public String[] nfp(float nums[], int left, int right) { - String formatted[] = new String[nums.length]; + static public String[] nfp(float[] nums, int left, int right) { + String[] formatted = new String[nums.length]; for (int i = 0; i < formatted.length; i++) { formatted[i] = nfp(nums[i], left, right); } diff --git a/core/src/processing/core/PFont.java b/core/src/processing/core/PFont.java index 33ca7eb404..12ee61a36b 100644 --- a/core/src/processing/core/PFont.java +++ b/core/src/processing/core/PFont.java @@ -204,7 +204,7 @@ public PFont(Font font, boolean smooth) { * @nowebref * @param charset array of all unicode chars that should be included */ - public PFont(Font font, boolean smooth, char charset[]) { + public PFont(Font font, boolean smooth, char[] charset) { // save this so that we can use the native version this.font = font; this.smooth = smooth; @@ -329,7 +329,7 @@ public PFont(Font font, boolean smooth, char charset[]) { * * @nowebref */ - public PFont(Font font, boolean smooth, char charset[], + public PFont(Font font, boolean smooth, char[] charset, boolean stream, int density) { this(font, smooth, charset); this.stream = stream; @@ -865,7 +865,7 @@ public PShape getShape(char ch, float detail) { for (int i = 0; i < EXTRA_CHARS.length; i++) { CHARSET[index++] = EXTRA_CHARS[i]; } - }; + } /** @@ -885,7 +885,7 @@ public PShape getShape(char ch, float detail) { */ static public String[] list() { loadFonts(); - String list[] = new String[fonts.length]; + String[] list = new String[fonts.length]; for (int i = 0; i < list.length; i++) { list[i] = fonts[i].getName(); } diff --git a/core/src/processing/core/PGraphics.java b/core/src/processing/core/PGraphics.java index 032b69928d..0a77d88537 100644 --- a/core/src/processing/core/PGraphics.java +++ b/core/src/processing/core/PGraphics.java @@ -570,7 +570,7 @@ public class PGraphics extends PImage implements PConstants { // vertices public static final int DEFAULT_VERTICES = 512; - protected float vertices[][] = + protected float[][] vertices = new float[DEFAULT_VERTICES][VERTEX_FIELD_COUNT]; protected int vertexCount; // total number of vertices @@ -605,7 +605,7 @@ public class PGraphics extends PImage implements PConstants { // spline vertices - protected float curveVertices[][]; + protected float[][] curveVertices; protected int curveVertexCount; // ........................................................ @@ -618,8 +618,8 @@ public class PGraphics extends PImage implements PConstants { // [toxi 031031] // changed table's precision to 0.5 degree steps // introduced new vars for more flexible code - static final protected float sinLUT[]; - static final protected float cosLUT[]; + static final protected float[] sinLUT; + static final protected float[] cosLUT; static final protected float SINCOS_PRECISION = 0.5f; static final protected int SINCOS_LENGTH = (int) (360f / SINCOS_PRECISION); static { @@ -702,7 +702,9 @@ public class PGraphics extends PImage implements PConstants { // [toxi031031] new & faster sphere code w/ support flexible resolutions // will be set by sphereDetail() or 1st call to sphere() - protected float sphereX[], sphereY[], sphereZ[]; + protected float[] sphereX; + protected float[] sphereY; + protected float[] sphereZ; /// Number of U steps (aka "theta") around longitudinally spanning 2*pi public int sphereDetailU = 0; @@ -1388,7 +1390,7 @@ public void noTexture() { protected void vertexCheck() { if (vertexCount == vertices.length) { - float temp[][] = new float[vertexCount << 1][VERTEX_FIELD_COUNT]; + float[][] temp = new float[vertexCount << 1][VERTEX_FIELD_COUNT]; System.arraycopy(vertices, 0, temp, 0, vertexCount); vertices = temp; } @@ -1480,10 +1482,10 @@ public void vertex(float x, float y, float z) { // http://dev.processing.org/bugs/show_bug.cgi?id=444 if (shape == POLYGON) { if (vertexCount > 0) { - float pvertex[] = vertices[vertexCount-1]; if ((Math.abs(pvertex[X] - x) < EPSILON) && (Math.abs(pvertex[Y] - y) < EPSILON) && (Math.abs(pvertex[Z] - z) < EPSILON)) { + float[] pvertex = vertices[vertexCount-1]; // this vertex is identical, don't add it, // because it will anger the triangulator return; @@ -4551,7 +4553,7 @@ public float textWidth(char[] chars, int start, int length) { * Unlike the previous version that was inside PFont, this will * return the size not of a 1 pixel font, but the actual current size. */ - protected float textWidthImpl(char buffer[], int start, int stop) { + protected float textWidthImpl(char[] buffer, int start, int stop) { float wide = 0; for (int i = start; i < stop; i++) { // could add kerning here, but it just ain't implemented @@ -5019,7 +5021,7 @@ public void text(float num, float x, float y, float z) { * Handles placement of a text line, then calls textLineImpl * to actually render at the specific point. */ - protected void textLineAlignImpl(char buffer[], int start, int stop, + protected void textLineAlignImpl(char[] buffer, int start, int stop, float x, float y) { if (textAlign == CENTER) { x -= textWidthImpl(buffer, start, stop) / 2f; @@ -5035,7 +5037,7 @@ protected void textLineAlignImpl(char buffer[], int start, int stop, /** * Implementation of actual drawing for a line of text. */ - protected void textLineImpl(char buffer[], int start, int stop, + protected void textLineImpl(char[] buffer, int start, int stop, float x, float y) { for (int index = start; index < stop; index++) { textCharImpl(buffer[index], x, y); diff --git a/core/src/processing/core/PImage.java b/core/src/processing/core/PImage.java index e21520d58f..d83b1da5d0 100644 --- a/core/src/processing/core/PImage.java +++ b/core/src/processing/core/PImage.java @@ -940,7 +940,7 @@ protected void setImpl(PImage sourceImage, * @param maskArray array of integers used as the alpha channel, needs to be * the same length as the image's pixel array. */ - public void mask(int maskArray[]) { // ignore + public void mask(int[] maskArray) { // ignore loadPixels(); // don't execute if mask image is different size if (maskArray.length != pixels.length) { @@ -1239,7 +1239,7 @@ protected void buildBlurKernel(float r) { protected void blurAlpha(float r) { int sum, cb; int read, ri, ym, ymi, bk0; - int b2[] = new int[pixels.length]; + int[] b2 = new int[pixels.length]; int yi = 0; buildBlurKernel(r); @@ -1310,9 +1310,9 @@ protected void blurAlpha(float r) { protected void blurRGB(float r) { int sum, cr, cg, cb; //, k; int /*pixel,*/ read, ri, /*roff,*/ ym, ymi, /*riw,*/ bk0; - int r2[] = new int[pixels.length]; - int g2[] = new int[pixels.length]; - int b2[] = new int[pixels.length]; + int[] r2 = new int[pixels.length]; + int[] g2 = new int[pixels.length]; + int[] b2 = new int[pixels.length]; int yi = 0; buildBlurKernel(r); @@ -1393,10 +1393,10 @@ protected void blurARGB(float r) { int sum, cr, cg, cb, ca; int /*pixel,*/ read, ri, /*roff,*/ ym, ymi, /*riw,*/ bk0; int wh = pixels.length; - int r2[] = new int[wh]; - int g2[] = new int[wh]; - int b2[] = new int[wh]; - int a2[] = new int[wh]; + int[] r2 = new int[wh]; + int[] g2 = new int[wh]; + int[] b2 = new int[wh]; + int[] a2 = new int[wh]; int yi = 0; buildBlurKernel(r); @@ -2948,7 +2948,7 @@ private static int blend_burn(int dst, int src) { // FILE I/O - static byte TIFF_HEADER[] = { + static byte[] TIFF_HEADER = { 77, 77, 0, 42, 0, 0, 0, 8, 0, 9, 0, -2, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 1, 2, 0, 3, 0, 0, 0, 3, 0, 0, 0, 122, 1, 6, 0, 3, 0, @@ -2961,7 +2961,7 @@ private static int blend_burn(int dst, int src) { static final String TIFF_ERROR = "Error: Processing can only read its own TIFF files."; - static protected PImage loadTIFF(byte tiff[]) { + static protected PImage loadTIFF(byte[] tiff) { if ((tiff[42] != tiff[102]) || // width/height in both places (tiff[43] != tiff[103])) { System.err.println(TIFF_ERROR); @@ -3018,7 +3018,7 @@ protected boolean saveTIFF(OutputStream output) { } */ try { - byte tiff[] = new byte[768]; + byte[] tiff = new byte[768]; System.arraycopy(TIFF_HEADER, 0, tiff, 0, TIFF_HEADER.length); tiff[30] = (byte) ((pixelWidth >> 8) & 0xff); @@ -3069,7 +3069,7 @@ protected boolean saveTIFF(OutputStream output) { * specification */ protected boolean saveTGA(OutputStream output) { - byte header[] = new byte[18]; + byte[] header = new byte[18]; if (format == ALPHA) { // save ALPHA images as 8bit grayscale header[2] = 0x0B; diff --git a/core/src/processing/core/PMatrix2D.java b/core/src/processing/core/PMatrix2D.java index 38f82bdfd3..c30a3504e3 100644 --- a/core/src/processing/core/PMatrix2D.java +++ b/core/src/processing/core/PMatrix2D.java @@ -381,7 +381,7 @@ public PVector mult(PVector source, PVector target) { * If out is null or not length four, a new float array will be returned. * The values for vec and out can be the same (though that's less efficient). */ - public float[] mult(float vec[], float out[]) { + public float[] mult(float[] vec, float[] out) { if (out == null || out.length != 2) { out = new float[2]; } diff --git a/core/src/processing/core/PShapeOBJ.java b/core/src/processing/core/PShapeOBJ.java index a46e6ab8a8..5ae8c9d1e9 100644 --- a/core/src/processing/core/PShapeOBJ.java +++ b/core/src/processing/core/PShapeOBJ.java @@ -327,7 +327,7 @@ static protected void parseMTL(PApplet parent, String mtlfn, String path, while ((line = reader.readLine()) != null) { // Parse the line line = line.trim(); - String parts[] = line.split("\\s+"); + String[] parts = line.split("\\s+"); if (parts.length > 0) { // Extract the material data. if (parts[0].equals("newmtl")) { diff --git a/core/src/processing/core/PShapeSVG.java b/core/src/processing/core/PShapeSVG.java index d74253af6e..f572406ebc 100644 --- a/core/src/processing/core/PShapeSVG.java +++ b/core/src/processing/core/PShapeSVG.java @@ -1499,7 +1499,7 @@ static public class Gradient extends PShapeSVG { public Gradient(PShapeSVG parent, XML properties) { super(parent, properties, true); - XML elements[] = properties.getChildren(); + XML[] elements = properties.getChildren(); offset = new float[elements.length]; color = new int[elements.length]; @@ -1555,7 +1555,7 @@ public LinearGradient(PShapeSVG parent, XML properties) { properties.getString("gradientTransform"); if (transformStr != null) { - float t[] = parseTransform(transformStr).get(null); + float[] t = parseTransform(transformStr).get(null); this.transform = new AffineTransform(t[0], t[3], t[1], t[4], t[2], t[5]); Point2D t1 = transform.transform(new Point2D.Float(x1, y1), null); @@ -1587,7 +1587,7 @@ public RadialGradient(PShapeSVG parent, XML properties) { properties.getString("gradientTransform"); if (transformStr != null) { - float t[] = parseTransform(transformStr).get(null); + float[] t = parseTransform(transformStr).get(null); this.transform = new AffineTransform(t[0], t[3], t[1], t[4], t[2], t[5]); Point2D t1 = transform.transform(new Point2D.Float(cx, cy), null); diff --git a/core/src/processing/data/Table.java b/core/src/processing/data/Table.java index 4d18651cc7..e0684b4c1e 100644 --- a/core/src/processing/data/Table.java +++ b/core/src/processing/data/Table.java @@ -1712,19 +1712,19 @@ protected void loadBinary(InputStream is) throws IOException { columns[column] = new int[rowCount]; break; case LONG: - columns[column] = new long[rowCount];; + columns[column] = new long[rowCount]; break; case FLOAT: - columns[column] = new float[rowCount];; + columns[column] = new float[rowCount]; break; case DOUBLE: - columns[column] = new double[rowCount];; + columns[column] = new double[rowCount]; break; case STRING: - columns[column] = new String[rowCount];; + columns[column] = new String[rowCount]; break; case CATEGORY: - columns[column] = new int[rowCount];; + columns[column] = new int[rowCount]; break; default: throw new IllegalArgumentException(newType + " is not a valid column type."); diff --git a/core/src/processing/javafx/PGraphicsFX2D.java b/core/src/processing/javafx/PGraphicsFX2D.java index 74758ceb7b..7868c7fe0f 100644 --- a/core/src/processing/javafx/PGraphicsFX2D.java +++ b/core/src/processing/javafx/PGraphicsFX2D.java @@ -67,7 +67,7 @@ public class PGraphicsFX2D extends PGraphics { /// break the shape at the next vertex (next vertex() call is a moveto()) boolean breakShape; - private float pathCoordsBuffer[] = new float[6]; + private float[] pathCoordsBuffer = new float[6]; /// coordinates for internal curve calculation float[] curveCoordX; @@ -76,7 +76,7 @@ public class PGraphicsFX2D extends PGraphics { float[] curveDrawY; int transformCount; - Affine transformStack[] = new Affine[MATRIX_STACK_DEPTH]; + Affine[] transformStack = new Affine[MATRIX_STACK_DEPTH]; // Line2D.Float line = new Line2D.Float(); // Ellipse2D.Float ellipse = new Ellipse2D.Float(); @@ -239,7 +239,7 @@ public void texture(PImage image) { @Override public void vertex(float x, float y) { if (vertexCount == vertices.length) { - float temp[][] = new float[vertexCount<<1][VERTEX_FIELD_COUNT]; + float[][] temp = new float[vertexCount<<1][VERTEX_FIELD_COUNT]; System.arraycopy(vertices, 0, temp, 0, vertexCount); vertices = temp; //message(CHATTER, "allocating more vertices " + vertices.length); diff --git a/core/src/processing/opengl/LinePath.java b/core/src/processing/opengl/LinePath.java index a3705df0fc..03c1d69d57 100644 --- a/core/src/processing/opengl/LinePath.java +++ b/core/src/processing/opengl/LinePath.java @@ -324,7 +324,7 @@ public final void reset() { static public class PathIterator { - float floatCoords[]; + float[] floatCoords; int typeIdx; @@ -334,7 +334,7 @@ static public class PathIterator { LinePath path; - static final int curvecoords[] = { 2, 2, 0 }; + static final int[] curvecoords = { 2, 2, 0 }; PathIterator(LinePath p2df) { this.path = p2df; @@ -470,7 +470,7 @@ private static void strokeTo(LinePath src, float width, int caps, int join, private static void pathTo(PathIterator pi, LineStroker lsink) { - float coords[] = new float[6]; + float[] coords = new float[6]; while (!pi.isDone()) { int color; switch (pi.currentSegment(coords)) { diff --git a/core/src/processing/opengl/PGL.java b/core/src/processing/opengl/PGL.java index ecfbb1715c..d57eb91269 100644 --- a/core/src/processing/opengl/PGL.java +++ b/core/src/processing/opengl/PGL.java @@ -475,7 +475,7 @@ protected int getDefaultReadBuffer() { } - protected boolean isFBOBacked() {; + protected boolean isFBOBacked() { return fboLayerEnabled; } @@ -2127,7 +2127,7 @@ protected int[] getGLVersion() { String[] parts = version.split(" "); for (int i = 0; i < parts.length; i++) { if (0 < parts[i].indexOf(".")) { - String nums[] = parts[i].split("\\."); + String[] nums = parts[i].split("\\."); try { res[0] = Integer.parseInt(nums[0]); } catch (NumberFormatException e) { } diff --git a/core/src/processing/opengl/PGraphicsOpenGL.java b/core/src/processing/opengl/PGraphicsOpenGL.java index 7801326ecd..b4f145eda6 100644 --- a/core/src/processing/opengl/PGraphicsOpenGL.java +++ b/core/src/processing/opengl/PGraphicsOpenGL.java @@ -2365,8 +2365,8 @@ protected void flushPixels() { protected void flushPolys() { boolean customShader = polyShader != null; - boolean needNormals = customShader ? polyShader.accessNormals() : false; - boolean needTexCoords = customShader ? polyShader.accessTexCoords() : false; + boolean needNormals = customShader && polyShader.accessNormals(); + boolean needTexCoords = customShader && polyShader.accessTexCoords(); updatePolyBuffers(lights, texCache.hasTextures, needNormals, needTexCoords); @@ -2438,8 +2438,8 @@ protected void flushPolys() { protected void flushSortedPolys() { boolean customShader = polyShader != null; - boolean needNormals = customShader ? polyShader.accessNormals() : false; - boolean needTexCoords = customShader ? polyShader.accessTexCoords() : false; + boolean needNormals = customShader && polyShader.accessNormals(); + boolean needTexCoords = customShader && polyShader.accessTexCoords(); sorter.sort(tessGeo); @@ -3485,7 +3485,7 @@ public float textDescent() { @Override - protected float textWidthImpl(char buffer[], int start, int stop) { + protected float textWidthImpl(char[] buffer, int start, int stop) { if (textFont == null) defaultFontOrDeath("textWidth"); Object font = textFont.getNative(); float twidth = 0; @@ -3510,7 +3510,7 @@ protected void handleTextSize(float size) { * Implementation of actual drawing for a line of text. */ @Override - protected void textLineImpl(char buffer[], int start, int stop, + protected void textLineImpl(char[] buffer, int start, int stop, float x, float y) { if (textMode == SHAPE && textFont.getNative() == null) { @@ -3654,7 +3654,7 @@ protected void textCharShapeImpl(char ch, float x, float y) { PGL.FontOutline outline = pgl.createFontOutline(ch, textFont.getNative()); // six element array received from the Java2D path iterator - float textPoints[] = new float[6]; + float[] textPoints = new float[6]; float lastX = 0; float lastY = 0; @@ -7899,61 +7899,61 @@ int getVertexSum(PVector v) { // Expand arrays void expandVertices(int n) { - float temp[] = new float[3 * n]; + float[] temp = new float[3 * n]; PApplet.arrayCopy(vertices, 0, temp, 0, 3 * vertexCount); vertices = temp; } void expandColors(int n) { - int temp[] = new int[n]; + int[] temp = new int[n]; PApplet.arrayCopy(colors, 0, temp, 0, vertexCount); colors = temp; } void expandNormals(int n) { - float temp[] = new float[3 * n]; + float[] temp = new float[3 * n]; PApplet.arrayCopy(normals, 0, temp, 0, 3 * vertexCount); normals = temp; } void expandTexCoords(int n) { - float temp[] = new float[2 * n]; + float[] temp = new float[2 * n]; PApplet.arrayCopy(texcoords, 0, temp, 0, 2 * vertexCount); texcoords = temp; } void expandStrokeColors(int n) { - int temp[] = new int[n]; + int[] temp = new int[n]; PApplet.arrayCopy(strokeColors, 0, temp, 0, vertexCount); strokeColors = temp; } void expandStrokeWeights(int n) { - float temp[] = new float[n]; + float[] temp = new float[n]; PApplet.arrayCopy(strokeWeights, 0, temp, 0, vertexCount); strokeWeights = temp; } void expandAmbient(int n) { - int temp[] = new int[n]; + int[] temp = new int[n]; PApplet.arrayCopy(ambient, 0, temp, 0, vertexCount); ambient = temp; } void expandSpecular(int n) { - int temp[] = new int[n]; + int[] temp = new int[n]; PApplet.arrayCopy(specular, 0, temp, 0, vertexCount); specular = temp; } void expandEmissive(int n) { - int temp[] = new int[n]; + int[] temp = new int[n]; PApplet.arrayCopy(emissive, 0, temp, 0, vertexCount); emissive = temp; } void expandShininess(int n) { - float temp[] = new float[n]; + float[] temp = new float[n]; PApplet.arrayCopy(shininess, 0, temp, 0, vertexCount); shininess = temp; } @@ -7973,33 +7973,33 @@ void expandAttribs(int n) { void expandFloatAttrib(VertexAttribute attrib, int n) { float[] values = fattribs.get(attrib.name); - float temp[] = new float[attrib.size * n]; + float[] temp = new float[attrib.size * n]; PApplet.arrayCopy(values, 0, temp, 0, attrib.size * vertexCount); fattribs.put(attrib.name, temp); } void expandIntAttrib(VertexAttribute attrib, int n) { int[] values = iattribs.get(attrib.name); - int temp[] = new int[attrib.size * n]; + int[] temp = new int[attrib.size * n]; PApplet.arrayCopy(values, 0, temp, 0, attrib.size * vertexCount); iattribs.put(attrib.name, temp); } void expandBoolAttrib(VertexAttribute attrib, int n) { byte[] values = battribs.get(attrib.name); - byte temp[] = new byte[attrib.size * n]; + byte[] temp = new byte[attrib.size * n]; PApplet.arrayCopy(values, 0, temp, 0, attrib.size * vertexCount); battribs.put(attrib.name, temp); } void expandCodes(int n) { - int temp[] = new int[n]; + int[] temp = new int[n]; PApplet.arrayCopy(codes, 0, temp, 0, codeCount); codes = temp; } void expandEdges(int n) { - int temp[][] = new int[n][3]; + int[][] temp = new int[n][3]; PApplet.arrayCopy(edges, 0, temp, 0, edgeCount); edges = temp; } @@ -8033,73 +8033,73 @@ void trim() { } void trimVertices() { - float temp[] = new float[3 * vertexCount]; + float[] temp = new float[3 * vertexCount]; PApplet.arrayCopy(vertices, 0, temp, 0, 3 * vertexCount); vertices = temp; } void trimColors() { - int temp[] = new int[vertexCount]; + int[] temp = new int[vertexCount]; PApplet.arrayCopy(colors, 0, temp, 0, vertexCount); colors = temp; } void trimNormals() { - float temp[] = new float[3 * vertexCount]; + float[] temp = new float[3 * vertexCount]; PApplet.arrayCopy(normals, 0, temp, 0, 3 * vertexCount); normals = temp; } void trimTexCoords() { - float temp[] = new float[2 * vertexCount]; + float[] temp = new float[2 * vertexCount]; PApplet.arrayCopy(texcoords, 0, temp, 0, 2 * vertexCount); texcoords = temp; } void trimStrokeColors() { - int temp[] = new int[vertexCount]; + int[] temp = new int[vertexCount]; PApplet.arrayCopy(strokeColors, 0, temp, 0, vertexCount); strokeColors = temp; } void trimStrokeWeights() { - float temp[] = new float[vertexCount]; + float[] temp = new float[vertexCount]; PApplet.arrayCopy(strokeWeights, 0, temp, 0, vertexCount); strokeWeights = temp; } void trimAmbient() { - int temp[] = new int[vertexCount]; + int[] temp = new int[vertexCount]; PApplet.arrayCopy(ambient, 0, temp, 0, vertexCount); ambient = temp; } void trimSpecular() { - int temp[] = new int[vertexCount]; + int[] temp = new int[vertexCount]; PApplet.arrayCopy(specular, 0, temp, 0, vertexCount); specular = temp; } void trimEmissive() { - int temp[] = new int[vertexCount]; + int[] temp = new int[vertexCount]; PApplet.arrayCopy(emissive, 0, temp, 0, vertexCount); emissive = temp; } void trimShininess() { - float temp[] = new float[vertexCount]; + float[] temp = new float[vertexCount]; PApplet.arrayCopy(shininess, 0, temp, 0, vertexCount); shininess = temp; } void trimCodes() { - int temp[] = new int[codeCount]; + int[] temp = new int[codeCount]; PApplet.arrayCopy(codes, 0, temp, 0, codeCount); codes = temp; } void trimEdges() { - int temp[][] = new int[edgeCount][3]; + int[][] temp = new int[edgeCount][3]; PApplet.arrayCopy(edges, 0, temp, 0, edgeCount); edges = temp; } @@ -8119,21 +8119,21 @@ void trimAttribs() { void trimFloatAttrib(VertexAttribute attrib) { float[] values = fattribs.get(attrib.name); - float temp[] = new float[attrib.size * vertexCount]; + float[] temp = new float[attrib.size * vertexCount]; PApplet.arrayCopy(values, 0, temp, 0, attrib.size * vertexCount); fattribs.put(attrib.name, temp); } void trimIntAttrib(VertexAttribute attrib) { int[] values = iattribs.get(attrib.name); - int temp[] = new int[attrib.size * vertexCount]; + int[] temp = new int[attrib.size * vertexCount]; PApplet.arrayCopy(values, 0, temp, 0, attrib.size * vertexCount); iattribs.put(attrib.name, temp); } void trimBoolAttrib(VertexAttribute attrib) { byte[] values = battribs.get(attrib.name); - byte temp[] = new byte[attrib.size * vertexCount]; + byte[] temp = new byte[attrib.size * vertexCount]; PApplet.arrayCopy(values, 0, temp, 0, attrib.size * vertexCount); battribs.put(attrib.name, temp); } @@ -9675,56 +9675,56 @@ protected void updatePointIndicesBuffer(int offset, int size) { // Expand arrays void expandPolyVertices(int n) { - float temp[] = new float[4 * n]; + float[] temp = new float[4 * n]; PApplet.arrayCopy(polyVertices, 0, temp, 0, 4 * polyVertexCount); polyVertices = temp; polyVerticesBuffer = PGL.allocateFloatBuffer(polyVertices); } void expandPolyColors(int n) { - int temp[] = new int[n]; + int[] temp = new int[n]; PApplet.arrayCopy(polyColors, 0, temp, 0, polyVertexCount); polyColors = temp; polyColorsBuffer = PGL.allocateIntBuffer(polyColors); } void expandPolyNormals(int n) { - float temp[] = new float[3 * n]; + float[] temp = new float[3 * n]; PApplet.arrayCopy(polyNormals, 0, temp, 0, 3 * polyVertexCount); polyNormals = temp; polyNormalsBuffer = PGL.allocateFloatBuffer(polyNormals); } void expandPolyTexCoords(int n) { - float temp[] = new float[2 * n]; + float[] temp = new float[2 * n]; PApplet.arrayCopy(polyTexCoords, 0, temp, 0, 2 * polyVertexCount); polyTexCoords = temp; polyTexCoordsBuffer = PGL.allocateFloatBuffer(polyTexCoords); } void expandPolyAmbient(int n) { - int temp[] = new int[n]; + int[] temp = new int[n]; PApplet.arrayCopy(polyAmbient, 0, temp, 0, polyVertexCount); polyAmbient = temp; polyAmbientBuffer = PGL.allocateIntBuffer(polyAmbient); } void expandPolySpecular(int n) { - int temp[] = new int[n]; + int[] temp = new int[n]; PApplet.arrayCopy(polySpecular, 0, temp, 0, polyVertexCount); polySpecular = temp; polySpecularBuffer = PGL.allocateIntBuffer(polySpecular); } void expandPolyEmissive(int n) { - int temp[] = new int[n]; + int[] temp = new int[n]; PApplet.arrayCopy(polyEmissive, 0, temp, 0, polyVertexCount); polyEmissive = temp; polyEmissiveBuffer = PGL.allocateIntBuffer(polyEmissive); } void expandPolyShininess(int n) { - float temp[] = new float[n]; + float[] temp = new float[n]; PApplet.arrayCopy(polyShininess, 0, temp, 0, polyVertexCount); polyShininess = temp; polyShininessBuffer = PGL.allocateFloatBuffer(polyShininess); @@ -9745,7 +9745,7 @@ void expandAttributes(int n) { void expandFloatAttribute(VertexAttribute attrib, int n) { float[] array = fpolyAttribs.get(attrib.name); - float temp[] = new float[attrib.tessSize * n]; + float[] temp = new float[attrib.tessSize * n]; PApplet.arrayCopy(array, 0, temp, 0, attrib.tessSize * polyVertexCount); fpolyAttribs.put(attrib.name, temp); polyAttribBuffers.put(attrib.name, PGL.allocateFloatBuffer(temp)); @@ -9753,7 +9753,7 @@ void expandFloatAttribute(VertexAttribute attrib, int n) { void expandIntAttribute(VertexAttribute attrib, int n) { int[] array = ipolyAttribs.get(attrib.name); - int temp[] = new int[attrib.tessSize * n]; + int[] temp = new int[attrib.tessSize * n]; PApplet.arrayCopy(array, 0, temp, 0, attrib.tessSize * polyVertexCount); ipolyAttribs.put(attrib.name, temp); polyAttribBuffers.put(attrib.name, PGL.allocateIntBuffer(temp)); @@ -9761,70 +9761,70 @@ void expandIntAttribute(VertexAttribute attrib, int n) { void expandBoolAttribute(VertexAttribute attrib, int n) { byte[] array = bpolyAttribs.get(attrib.name); - byte temp[] = new byte[attrib.tessSize * n]; + byte[] temp = new byte[attrib.tessSize * n]; PApplet.arrayCopy(array, 0, temp, 0, attrib.tessSize * polyVertexCount); bpolyAttribs.put(attrib.name, temp); polyAttribBuffers.put(attrib.name, PGL.allocateByteBuffer(temp)); } void expandPolyIndices(int n) { - short temp[] = new short[n]; + short[] temp = new short[n]; PApplet.arrayCopy(polyIndices, 0, temp, 0, polyIndexCount); polyIndices = temp; polyIndicesBuffer = PGL.allocateShortBuffer(polyIndices); } void expandLineVertices(int n) { - float temp[] = new float[4 * n]; + float[] temp = new float[4 * n]; PApplet.arrayCopy(lineVertices, 0, temp, 0, 4 * lineVertexCount); lineVertices = temp; lineVerticesBuffer = PGL.allocateFloatBuffer(lineVertices); } void expandLineColors(int n) { - int temp[] = new int[n]; + int[] temp = new int[n]; PApplet.arrayCopy(lineColors, 0, temp, 0, lineVertexCount); lineColors = temp; lineColorsBuffer = PGL.allocateIntBuffer(lineColors); } void expandLineDirections(int n) { - float temp[] = new float[4 * n]; + float[] temp = new float[4 * n]; PApplet.arrayCopy(lineDirections, 0, temp, 0, 4 * lineVertexCount); lineDirections = temp; lineDirectionsBuffer = PGL.allocateFloatBuffer(lineDirections); } void expandLineIndices(int n) { - short temp[] = new short[n]; + short[] temp = new short[n]; PApplet.arrayCopy(lineIndices, 0, temp, 0, lineIndexCount); lineIndices = temp; lineIndicesBuffer = PGL.allocateShortBuffer(lineIndices); } void expandPointVertices(int n) { - float temp[] = new float[4 * n]; + float[] temp = new float[4 * n]; PApplet.arrayCopy(pointVertices, 0, temp, 0, 4 * pointVertexCount); pointVertices = temp; pointVerticesBuffer = PGL.allocateFloatBuffer(pointVertices); } void expandPointColors(int n) { - int temp[] = new int[n]; + int[] temp = new int[n]; PApplet.arrayCopy(pointColors, 0, temp, 0, pointVertexCount); pointColors = temp; pointColorsBuffer = PGL.allocateIntBuffer(pointColors); } void expandPointOffsets(int n) { - float temp[] = new float[2 * n]; + float[] temp = new float[2 * n]; PApplet.arrayCopy(pointOffsets, 0, temp, 0, 2 * pointVertexCount); pointOffsets = temp; pointOffsetsBuffer = PGL.allocateFloatBuffer(pointOffsets); } void expandPointIndices(int n) { - short temp[] = new short[n]; + short[] temp = new short[n]; PApplet.arrayCopy(pointIndices, 0, temp, 0, pointIndexCount); pointIndices = temp; pointIndicesBuffer = PGL.allocateShortBuffer(pointIndices); @@ -9873,56 +9873,56 @@ void trim() { } void trimPolyVertices() { - float temp[] = new float[4 * polyVertexCount]; + float[] temp = new float[4 * polyVertexCount]; PApplet.arrayCopy(polyVertices, 0, temp, 0, 4 * polyVertexCount); polyVertices = temp; polyVerticesBuffer = PGL.allocateFloatBuffer(polyVertices); } void trimPolyColors() { - int temp[] = new int[polyVertexCount]; + int[] temp = new int[polyVertexCount]; PApplet.arrayCopy(polyColors, 0, temp, 0, polyVertexCount); polyColors = temp; polyColorsBuffer = PGL.allocateIntBuffer(polyColors); } void trimPolyNormals() { - float temp[] = new float[3 * polyVertexCount]; + float[] temp = new float[3 * polyVertexCount]; PApplet.arrayCopy(polyNormals, 0, temp, 0, 3 * polyVertexCount); polyNormals = temp; polyNormalsBuffer = PGL.allocateFloatBuffer(polyNormals); } void trimPolyTexCoords() { - float temp[] = new float[2 * polyVertexCount]; + float[] temp = new float[2 * polyVertexCount]; PApplet.arrayCopy(polyTexCoords, 0, temp, 0, 2 * polyVertexCount); polyTexCoords = temp; polyTexCoordsBuffer = PGL.allocateFloatBuffer(polyTexCoords); } void trimPolyAmbient() { - int temp[] = new int[polyVertexCount]; + int[] temp = new int[polyVertexCount]; PApplet.arrayCopy(polyAmbient, 0, temp, 0, polyVertexCount); polyAmbient = temp; polyAmbientBuffer = PGL.allocateIntBuffer(polyAmbient); } void trimPolySpecular() { - int temp[] = new int[polyVertexCount]; + int[] temp = new int[polyVertexCount]; PApplet.arrayCopy(polySpecular, 0, temp, 0, polyVertexCount); polySpecular = temp; polySpecularBuffer = PGL.allocateIntBuffer(polySpecular); } void trimPolyEmissive() { - int temp[] = new int[polyVertexCount]; + int[] temp = new int[polyVertexCount]; PApplet.arrayCopy(polyEmissive, 0, temp, 0, polyVertexCount); polyEmissive = temp; polyEmissiveBuffer = PGL.allocateIntBuffer(polyEmissive); } void trimPolyShininess() { - float temp[] = new float[polyVertexCount]; + float[] temp = new float[polyVertexCount]; PApplet.arrayCopy(polyShininess, 0, temp, 0, polyVertexCount); polyShininess = temp; polyShininessBuffer = PGL.allocateFloatBuffer(polyShininess); @@ -9943,7 +9943,7 @@ void trimPolyAttributes() { void trimFloatAttribute(VertexAttribute attrib) { float[] array = fpolyAttribs.get(attrib.name); - float temp[] = new float[attrib.tessSize * polyVertexCount]; + float[] temp = new float[attrib.tessSize * polyVertexCount]; PApplet.arrayCopy(array, 0, temp, 0, attrib.tessSize * polyVertexCount); fpolyAttribs.put(attrib.name, temp); polyAttribBuffers.put(attrib.name, PGL.allocateFloatBuffer(temp)); @@ -9951,7 +9951,7 @@ void trimFloatAttribute(VertexAttribute attrib) { void trimIntAttribute(VertexAttribute attrib) { int[] array = ipolyAttribs.get(attrib.name); - int temp[] = new int[attrib.tessSize * polyVertexCount]; + int[] temp = new int[attrib.tessSize * polyVertexCount]; PApplet.arrayCopy(array, 0, temp, 0, attrib.tessSize * polyVertexCount); ipolyAttribs.put(attrib.name, temp); polyAttribBuffers.put(attrib.name, PGL.allocateIntBuffer(temp)); @@ -9959,70 +9959,70 @@ void trimIntAttribute(VertexAttribute attrib) { void trimBoolAttribute(VertexAttribute attrib) { byte[] array = bpolyAttribs.get(attrib.name); - byte temp[] = new byte[attrib.tessSize * polyVertexCount]; + byte[] temp = new byte[attrib.tessSize * polyVertexCount]; PApplet.arrayCopy(array, 0, temp, 0, attrib.tessSize * polyVertexCount); bpolyAttribs.put(attrib.name, temp); polyAttribBuffers.put(attrib.name, PGL.allocateByteBuffer(temp)); } void trimPolyIndices() { - short temp[] = new short[polyIndexCount]; + short[] temp = new short[polyIndexCount]; PApplet.arrayCopy(polyIndices, 0, temp, 0, polyIndexCount); polyIndices = temp; polyIndicesBuffer = PGL.allocateShortBuffer(polyIndices); } void trimLineVertices() { - float temp[] = new float[4 * lineVertexCount]; + float[] temp = new float[4 * lineVertexCount]; PApplet.arrayCopy(lineVertices, 0, temp, 0, 4 * lineVertexCount); lineVertices = temp; lineVerticesBuffer = PGL.allocateFloatBuffer(lineVertices); } void trimLineColors() { - int temp[] = new int[lineVertexCount]; + int[] temp = new int[lineVertexCount]; PApplet.arrayCopy(lineColors, 0, temp, 0, lineVertexCount); lineColors = temp; lineColorsBuffer = PGL.allocateIntBuffer(lineColors); } void trimLineDirections() { - float temp[] = new float[4 * lineVertexCount]; + float[] temp = new float[4 * lineVertexCount]; PApplet.arrayCopy(lineDirections, 0, temp, 0, 4 * lineVertexCount); lineDirections = temp; lineDirectionsBuffer = PGL.allocateFloatBuffer(lineDirections); } void trimLineIndices() { - short temp[] = new short[lineIndexCount]; + short[] temp = new short[lineIndexCount]; PApplet.arrayCopy(lineIndices, 0, temp, 0, lineIndexCount); lineIndices = temp; lineIndicesBuffer = PGL.allocateShortBuffer(lineIndices); } void trimPointVertices() { - float temp[] = new float[4 * pointVertexCount]; + float[] temp = new float[4 * pointVertexCount]; PApplet.arrayCopy(pointVertices, 0, temp, 0, 4 * pointVertexCount); pointVertices = temp; pointVerticesBuffer = PGL.allocateFloatBuffer(pointVertices); } void trimPointColors() { - int temp[] = new int[pointVertexCount]; + int[] temp = new int[pointVertexCount]; PApplet.arrayCopy(pointColors, 0, temp, 0, pointVertexCount); pointColors = temp; pointColorsBuffer = PGL.allocateIntBuffer(pointColors); } void trimPointOffsets() { - float temp[] = new float[2 * pointVertexCount]; + float[] temp = new float[2 * pointVertexCount]; PApplet.arrayCopy(pointOffsets, 0, temp, 0, 2 * pointVertexCount); pointOffsets = temp; pointOffsetsBuffer = PGL.allocateFloatBuffer(pointOffsets); } void trimPointIndices() { - short temp[] = new short[pointIndexCount]; + short[] temp = new short[pointIndexCount]; PApplet.arrayCopy(pointIndices, 0, temp, 0, pointIndexCount); pointIndices = temp; pointIndicesBuffer = PGL.allocateShortBuffer(pointIndices); @@ -12448,7 +12448,7 @@ void addDupIndex(int idx) { if (dupIndices.length == dupCount) { int n = dupCount << 1; - int temp[] = new int[n]; + int[] temp = new int[n]; PApplet.arrayCopy(dupIndices, 0, temp, 0, dupCount); dupIndices = temp; } @@ -12495,7 +12495,7 @@ void setRawSize(int size) { } void expandRawIndices(int n) { - int temp[] = new int[n]; + int[] temp = new int[n]; PApplet.arrayCopy(rawIndices, 0, temp, 0, rawSize); rawIndices = temp; } @@ -12940,15 +12940,15 @@ void addStrokeVertex(float x, float y, float z, int c, float w) { if (pathVertexCount == pathVertices.length / 3) { int newSize = pathVertexCount << 1; - float vtemp[] = new float[3 * newSize]; + float[] vtemp = new float[3 * newSize]; PApplet.arrayCopy(pathVertices, 0, vtemp, 0, 3 * pathVertexCount); pathVertices = vtemp; - int ctemp[] = new int[newSize]; + int[] ctemp = new int[newSize]; PApplet.arrayCopy(pathColors, 0, ctemp, 0, pathVertexCount); pathColors = ctemp; - float wtemp[] = new float[newSize]; + float[] wtemp = new float[newSize]; PApplet.arrayCopy(pathWeights, 0, wtemp, 0, pathVertexCount); pathWeights = wtemp; } diff --git a/core/src/processing/opengl/PJOGL.java b/core/src/processing/opengl/PJOGL.java index c164c23b1f..9c057313a0 100644 --- a/core/src/processing/opengl/PJOGL.java +++ b/core/src/processing/opengl/PJOGL.java @@ -722,7 +722,7 @@ protected class FontOutline implements PGL.FontOutline { PathIterator iter; public FontOutline(char ch, Font font) { - char textArray[] = new char[] { ch }; + char[] textArray = new char[] { ch }; FontRenderContext frc = getFontRenderContext(font); GlyphVector gv = font.createGlyphVector(frc, textArray); Shape shp = gv.getOutline(); @@ -733,7 +733,7 @@ public boolean isDone() { return iter.isDone(); } - public int currentSegment(float coords[]) { + public int currentSegment(float[] coords) { return iter.currentSegment(coords); } From 78eb6c0ae7a420cef07aff4a49929a81db2adf97 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Sat, 18 Jan 2020 07:45:16 -0500 Subject: [PATCH 36/69] note about merged PR --- todo.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/todo.txt b/todo.txt index cd2ec96414..caf4e3b087 100644 --- a/todo.txt +++ b/todo.txt @@ -4,6 +4,8 @@ contribs X rename-variable menu allows Java identifiers X https://github.com/processing/processing/issues/5828 X https://github.com/processing/processing/pull/5906 +X Replace C/C++ style array declarations with Java style array declarations +X https://github.com/processing/processing/pull/5981 from Casey From 4bb41d9851f24584c064d75e759e6ac3b0f65928 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Sat, 18 Jan 2020 13:46:58 -0500 Subject: [PATCH 37/69] fix regression in apparently untested #5981 --- core/src/processing/core/PGraphics.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/processing/core/PGraphics.java b/core/src/processing/core/PGraphics.java index 697ccb5581..266cf43bdc 100644 --- a/core/src/processing/core/PGraphics.java +++ b/core/src/processing/core/PGraphics.java @@ -1482,10 +1482,10 @@ public void vertex(float x, float y, float z) { // http://dev.processing.org/bugs/show_bug.cgi?id=444 if (shape == POLYGON) { if (vertexCount > 0) { + float[] pvertex = vertices[vertexCount-1]; if ((Math.abs(pvertex[X] - x) < EPSILON) && (Math.abs(pvertex[Y] - y) < EPSILON) && (Math.abs(pvertex[Z] - z) < EPSILON)) { - float[] pvertex = vertices[vertexCount-1]; // this vertex is identical, don't add it, // because it will anger the triangulator return; From 3952f6f7247dba50920662da3276e91166426fb7 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Tue, 31 Mar 2020 13:49:08 -0400 Subject: [PATCH 38/69] new Eclipse rewriting settings files --- app/.settings/org.eclipse.jdt.core.prefs | 101 +++++++++++++++++- app/.settings/org.eclipse.jdt.ui.prefs | 2 +- core/.settings/org.eclipse.jdt.core.prefs | 101 +++++++++++++++++- core/.settings/org.eclipse.jdt.ui.prefs | 2 +- .../net/.settings/org.eclipse.jdt.core.prefs | 101 +++++++++++++++++- .../net/.settings/org.eclipse.jdt.ui.prefs | 2 +- .../pdf/.settings/org.eclipse.jdt.core.prefs | 101 +++++++++++++++++- .../pdf/.settings/org.eclipse.jdt.ui.prefs | 2 +- 8 files changed, 388 insertions(+), 24 deletions(-) diff --git a/app/.settings/org.eclipse.jdt.core.prefs b/app/.settings/org.eclipse.jdt.core.prefs index 9910337705..af36b24305 100644 --- a/app/.settings/org.eclipse.jdt.core.prefs +++ b/app/.settings/org.eclipse.jdt.core.prefs @@ -94,7 +94,12 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false +org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false +org.eclipse.jdt.core.formatter.align_with_spaces=false +org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=18 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 @@ -103,24 +108,39 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=18 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 org.eclipse.jdt.core.formatter.alignment_for_assignment=0 org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16 org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16 org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain=0 org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=36 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 +org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16 org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_module_statements=16 org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=18 org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=18 +org.eclipse.jdt.core.formatter.alignment_for_relational_operator=0 org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_shift_operator=0 +org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16 org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 +org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration=0 org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method=1 org.eclipse.jdt.core.formatter.blank_lines_before_field=1 org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 @@ -129,6 +149,7 @@ org.eclipse.jdt.core.formatter.blank_lines_before_method=1 org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 org.eclipse.jdt.core.formatter.blank_lines_before_package=0 org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch=0 org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line @@ -138,32 +159,38 @@ org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=false +org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=false org.eclipse.jdt.core.formatter.comment.format_block_comments=true org.eclipse.jdt.core.formatter.comment.format_header=false org.eclipse.jdt.core.formatter.comment.format_html=true org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true -org.eclipse.jdt.core.formatter.comment.format_line_comments=false +org.eclipse.jdt.core.formatter.comment.format_line_comments=true org.eclipse.jdt.core.formatter.comment.format_source_code=true org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.indent_tag_description=false org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags=do not insert org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert org.eclipse.jdt.core.formatter.comment.line_length=80 org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false org.eclipse.jdt.core.formatter.compact_else_if=true -org.eclipse.jdt.core.formatter.continuation_indentation=1 -org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1 +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true @@ -176,6 +203,7 @@ org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false org.eclipse.jdt.core.formatter.indentation.size=2 org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert @@ -185,6 +213,7 @@ org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert @@ -198,11 +227,15 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default=insert org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert @@ -229,9 +262,14 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declar org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_not_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert @@ -256,13 +294,20 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case=insert +org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default=insert org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert @@ -306,9 +351,13 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_decla org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert @@ -345,9 +394,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert @@ -359,20 +411,59 @@ org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_decla org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert org.eclipse.jdt.core.formatter.join_lines_in_comments=true org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_code_block_on_one_line=one_line_never org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line=one_line_never org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_method_body_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line=false +org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line=one_line_never org.eclipse.jdt.core.formatter.lineSplit=80 org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false -org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block=0 org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block=0 org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true org.eclipse.jdt.core.formatter.tabulation.char=space org.eclipse.jdt.core.formatter.tabulation.size=2 +org.eclipse.jdt.core.formatter.text_block_indentation=0 org.eclipse.jdt.core.formatter.use_on_off_tags=false org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true +org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true +org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true +org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true +org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_before_relational_operator=true +org.eclipse.jdt.core.formatter.wrap_before_shift_operator=true +org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true diff --git a/app/.settings/org.eclipse.jdt.ui.prefs b/app/.settings/org.eclipse.jdt.ui.prefs index 7f5ba1ed84..66aaa0890e 100644 --- a/app/.settings/org.eclipse.jdt.ui.prefs +++ b/app/.settings/org.eclipse.jdt.ui.prefs @@ -1,3 +1,3 @@ eclipse.preferences.version=1 formatter_profile=_processing -formatter_settings_version=12 +formatter_settings_version=18 diff --git a/core/.settings/org.eclipse.jdt.core.prefs b/core/.settings/org.eclipse.jdt.core.prefs index 6c6ce4e4e9..f57dd085ab 100644 --- a/core/.settings/org.eclipse.jdt.core.prefs +++ b/core/.settings/org.eclipse.jdt.core.prefs @@ -98,7 +98,12 @@ org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false +org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false +org.eclipse.jdt.core.formatter.align_with_spaces=false +org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=18 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 @@ -107,24 +112,39 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=18 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 org.eclipse.jdt.core.formatter.alignment_for_assignment=0 org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16 org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16 org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain=0 org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=36 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 +org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16 org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_module_statements=16 org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=18 org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=18 +org.eclipse.jdt.core.formatter.alignment_for_relational_operator=0 org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_shift_operator=0 +org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16 org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 +org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration=0 org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method=1 org.eclipse.jdt.core.formatter.blank_lines_before_field=1 org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 @@ -133,6 +153,7 @@ org.eclipse.jdt.core.formatter.blank_lines_before_method=1 org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 org.eclipse.jdt.core.formatter.blank_lines_before_package=0 org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch=0 org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line @@ -142,32 +163,38 @@ org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=false +org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=false org.eclipse.jdt.core.formatter.comment.format_block_comments=true org.eclipse.jdt.core.formatter.comment.format_header=false org.eclipse.jdt.core.formatter.comment.format_html=true org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true -org.eclipse.jdt.core.formatter.comment.format_line_comments=false +org.eclipse.jdt.core.formatter.comment.format_line_comments=true org.eclipse.jdt.core.formatter.comment.format_source_code=true org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.indent_tag_description=false org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags=do not insert org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert org.eclipse.jdt.core.formatter.comment.line_length=80 org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false org.eclipse.jdt.core.formatter.compact_else_if=true -org.eclipse.jdt.core.formatter.continuation_indentation=1 -org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1 +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true @@ -180,6 +207,7 @@ org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false org.eclipse.jdt.core.formatter.indentation.size=2 org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert @@ -189,6 +217,7 @@ org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert @@ -202,11 +231,15 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default=insert org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert @@ -233,9 +266,14 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declar org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_not_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert @@ -260,13 +298,20 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case=insert +org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default=insert org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert @@ -310,9 +355,13 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_decla org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert @@ -349,9 +398,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert @@ -363,20 +415,59 @@ org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_decla org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert org.eclipse.jdt.core.formatter.join_lines_in_comments=true org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_code_block_on_one_line=one_line_never org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line=one_line_never org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_method_body_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line=false +org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line=one_line_never org.eclipse.jdt.core.formatter.lineSplit=80 org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false -org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block=0 org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block=0 org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true org.eclipse.jdt.core.formatter.tabulation.char=space org.eclipse.jdt.core.formatter.tabulation.size=2 +org.eclipse.jdt.core.formatter.text_block_indentation=0 org.eclipse.jdt.core.formatter.use_on_off_tags=false org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true +org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true +org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true +org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true +org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_before_relational_operator=true +org.eclipse.jdt.core.formatter.wrap_before_shift_operator=true +org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true diff --git a/core/.settings/org.eclipse.jdt.ui.prefs b/core/.settings/org.eclipse.jdt.ui.prefs index 2e87119d6c..1286aca0bb 100644 --- a/core/.settings/org.eclipse.jdt.ui.prefs +++ b/core/.settings/org.eclipse.jdt.ui.prefs @@ -1,7 +1,7 @@ eclipse.preferences.version=1 editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true formatter_profile=_processing -formatter_settings_version=12 +formatter_settings_version=18 org.eclipse.jdt.ui.text.custom_code_templates= sp_cleanup.add_default_serial_version_id=true sp_cleanup.add_generated_serial_version_id=false diff --git a/java/libraries/net/.settings/org.eclipse.jdt.core.prefs b/java/libraries/net/.settings/org.eclipse.jdt.core.prefs index f256b10aad..ac3ca93e5c 100644 --- a/java/libraries/net/.settings/org.eclipse.jdt.core.prefs +++ b/java/libraries/net/.settings/org.eclipse.jdt.core.prefs @@ -11,7 +11,12 @@ org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.release=disabled org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false +org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false +org.eclipse.jdt.core.formatter.align_with_spaces=false +org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=18 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 @@ -20,24 +25,39 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=18 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 org.eclipse.jdt.core.formatter.alignment_for_assignment=0 org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16 org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16 org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain=0 org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=36 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 +org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16 org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_module_statements=16 org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=18 org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=18 +org.eclipse.jdt.core.formatter.alignment_for_relational_operator=0 org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_shift_operator=0 +org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16 org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 +org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration=0 org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method=1 org.eclipse.jdt.core.formatter.blank_lines_before_field=1 org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 @@ -46,6 +66,7 @@ org.eclipse.jdt.core.formatter.blank_lines_before_method=1 org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 org.eclipse.jdt.core.formatter.blank_lines_before_package=0 org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch=0 org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line @@ -55,34 +76,40 @@ org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=false +org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=false org.eclipse.jdt.core.formatter.comment.format_block_comments=true org.eclipse.jdt.core.formatter.comment.format_comments=true org.eclipse.jdt.core.formatter.comment.format_header=false org.eclipse.jdt.core.formatter.comment.format_html=true org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true -org.eclipse.jdt.core.formatter.comment.format_line_comments=false +org.eclipse.jdt.core.formatter.comment.format_line_comments=true org.eclipse.jdt.core.formatter.comment.format_source_code=true org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.indent_tag_description=false org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags=do not insert org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert org.eclipse.jdt.core.formatter.comment.line_length=80 org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false org.eclipse.jdt.core.formatter.compact_else_if=true -org.eclipse.jdt.core.formatter.continuation_indentation=1 -org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1 +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true @@ -95,6 +122,7 @@ org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false org.eclipse.jdt.core.formatter.indentation.size=2 org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert @@ -104,6 +132,7 @@ org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert @@ -117,11 +146,15 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default=insert org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert @@ -148,9 +181,14 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declar org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_not_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert @@ -175,13 +213,20 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case=insert +org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default=insert org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert @@ -225,9 +270,13 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_decla org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert @@ -264,9 +313,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert @@ -278,20 +330,59 @@ org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_decla org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert org.eclipse.jdt.core.formatter.join_lines_in_comments=true org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_code_block_on_one_line=one_line_never org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line=one_line_never org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_method_body_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line=false +org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line=one_line_never org.eclipse.jdt.core.formatter.lineSplit=80 org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false -org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block=0 org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block=0 org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true org.eclipse.jdt.core.formatter.tabulation.char=space org.eclipse.jdt.core.formatter.tabulation.size=2 +org.eclipse.jdt.core.formatter.text_block_indentation=0 org.eclipse.jdt.core.formatter.use_on_off_tags=false org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true +org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true +org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true +org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true +org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_before_relational_operator=true +org.eclipse.jdt.core.formatter.wrap_before_shift_operator=true +org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true diff --git a/java/libraries/net/.settings/org.eclipse.jdt.ui.prefs b/java/libraries/net/.settings/org.eclipse.jdt.ui.prefs index 7f5ba1ed84..66aaa0890e 100644 --- a/java/libraries/net/.settings/org.eclipse.jdt.ui.prefs +++ b/java/libraries/net/.settings/org.eclipse.jdt.ui.prefs @@ -1,3 +1,3 @@ eclipse.preferences.version=1 formatter_profile=_processing -formatter_settings_version=12 +formatter_settings_version=18 diff --git a/java/libraries/pdf/.settings/org.eclipse.jdt.core.prefs b/java/libraries/pdf/.settings/org.eclipse.jdt.core.prefs index 160529e9d0..02a284792f 100644 --- a/java/libraries/pdf/.settings/org.eclipse.jdt.core.prefs +++ b/java/libraries/pdf/.settings/org.eclipse.jdt.core.prefs @@ -11,7 +11,12 @@ org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.release=disabled org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false +org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false +org.eclipse.jdt.core.formatter.align_with_spaces=false +org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=18 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 @@ -20,24 +25,39 @@ org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=18 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 org.eclipse.jdt.core.formatter.alignment_for_assignment=0 org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16 org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16 org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain=0 org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=36 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 +org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16 org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_module_statements=16 org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16 +org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=18 org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=18 +org.eclipse.jdt.core.formatter.alignment_for_relational_operator=0 org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_shift_operator=0 +org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16 org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 +org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration=0 org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method=1 org.eclipse.jdt.core.formatter.blank_lines_before_field=1 org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 @@ -46,6 +66,7 @@ org.eclipse.jdt.core.formatter.blank_lines_before_method=1 org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 org.eclipse.jdt.core.formatter.blank_lines_before_package=0 org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch=0 org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line @@ -55,32 +76,38 @@ org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=false +org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=false org.eclipse.jdt.core.formatter.comment.format_block_comments=true org.eclipse.jdt.core.formatter.comment.format_header=false org.eclipse.jdt.core.formatter.comment.format_html=true org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true -org.eclipse.jdt.core.formatter.comment.format_line_comments=false +org.eclipse.jdt.core.formatter.comment.format_line_comments=true org.eclipse.jdt.core.formatter.comment.format_source_code=true org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.indent_tag_description=false org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags=do not insert org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert org.eclipse.jdt.core.formatter.comment.line_length=80 org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false org.eclipse.jdt.core.formatter.compact_else_if=true -org.eclipse.jdt.core.formatter.continuation_indentation=1 -org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1 +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true @@ -92,6 +119,7 @@ org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false org.eclipse.jdt.core.formatter.indentation.size=2 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert @@ -101,6 +129,7 @@ org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert @@ -114,11 +143,15 @@ org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default=insert org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert @@ -145,9 +178,14 @@ org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declar org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_not_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert @@ -172,13 +210,20 @@ org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case=insert +org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default=insert org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert @@ -222,9 +267,13 @@ org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_decla org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert @@ -261,9 +310,12 @@ org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not inser org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert @@ -275,20 +327,59 @@ org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_decla org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert org.eclipse.jdt.core.formatter.join_lines_in_comments=true org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_code_block_on_one_line=one_line_never org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line=one_line_never org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_method_body_on_one_line=one_line_never +org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false +org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line=false +org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line=one_line_never org.eclipse.jdt.core.formatter.lineSplit=80 org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false -org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block=0 org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block=0 org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true org.eclipse.jdt.core.formatter.tabulation.char=space org.eclipse.jdt.core.formatter.tabulation.size=2 +org.eclipse.jdt.core.formatter.text_block_indentation=0 org.eclipse.jdt.core.formatter.use_on_off_tags=false org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true +org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true +org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true +org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true +org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_before_relational_operator=true +org.eclipse.jdt.core.formatter.wrap_before_shift_operator=true +org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true diff --git a/java/libraries/pdf/.settings/org.eclipse.jdt.ui.prefs b/java/libraries/pdf/.settings/org.eclipse.jdt.ui.prefs index 0d6ea5b9dd..24dec57837 100644 --- a/java/libraries/pdf/.settings/org.eclipse.jdt.ui.prefs +++ b/java/libraries/pdf/.settings/org.eclipse.jdt.ui.prefs @@ -1,4 +1,4 @@ eclipse.preferences.version=1 formatter_profile=_processing -formatter_settings_version=12 +formatter_settings_version=18 org.eclipse.jdt.ui.text.custom_code_templates= From 8e86389c7e017d0e4d61f81fb942c25e3ed348c7 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Sun, 26 Apr 2020 21:20:42 -0400 Subject: [PATCH 39/69] deal with a few warnings --- app/src/processing/app/ui/PreferencesFrame.java | 1 - core/src/processing/core/PVector.java | 2 -- java/src/processing/mode/java/preproc/TokenUtil.java | 3 +-- 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/app/src/processing/app/ui/PreferencesFrame.java b/app/src/processing/app/ui/PreferencesFrame.java index 91c077b537..d4684b2e24 100644 --- a/app/src/processing/app/ui/PreferencesFrame.java +++ b/app/src/processing/app/ui/PreferencesFrame.java @@ -37,7 +37,6 @@ import processing.app.Messages; import processing.app.Platform; import processing.app.Preferences; -import processing.app.ui.ColorChooser; import processing.core.*; diff --git a/core/src/processing/core/PVector.java b/core/src/processing/core/PVector.java index 51d461f409..9c0b65e841 100644 --- a/core/src/processing/core/PVector.java +++ b/core/src/processing/core/PVector.java @@ -26,8 +26,6 @@ import java.io.Serializable; -import processing.core.PApplet; -import processing.core.PConstants; /** * ( begin auto-generated from PVector.xml ) diff --git a/java/src/processing/mode/java/preproc/TokenUtil.java b/java/src/processing/mode/java/preproc/TokenUtil.java index e6c4721eab..71e418dd9c 100644 --- a/java/src/processing/mode/java/preproc/TokenUtil.java +++ b/java/src/processing/mode/java/preproc/TokenUtil.java @@ -2,10 +2,9 @@ import java.lang.reflect.Field; import antlr.collections.AST; -import processing.mode.java.preproc.PdeTokenTypes; /** - * + * * @author Jonathan Feinberg <jdf@pobox.com> * */ From 17c8001a948a2be9f5816cda49feac9473aeb0b7 Mon Sep 17 00:00:00 2001 From: Jeremy Douglass Date: Thu, 28 May 2020 18:07:13 -0700 Subject: [PATCH 40/69] update issue template -- correct forum link --- ISSUE_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md index 01a24196ca..a4f3e3258b 100644 --- a/ISSUE_TEMPLATE.md +++ b/ISSUE_TEMPLATE.md @@ -1,4 +1,4 @@ - + From 730d99dad14f35a012f38ae4497ef25588973d83 Mon Sep 17 00:00:00 2001 From: Casey Reas Date: Fri, 12 Jun 2020 11:54:48 -0700 Subject: [PATCH 41/69] Add Sponsor button to repository --- .github/FUNDING.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000000..f8c6bc52bc --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +github: processing From 59e0b7f35bdf3c63d3c21c53207749ebd4f86b48 Mon Sep 17 00:00:00 2001 From: Casey Reas Date: Fri, 12 Jun 2020 12:11:47 -0700 Subject: [PATCH 42/69] Update Sponsor button, external link to Foundation --- .github/FUNDING.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index f8c6bc52bc..2cf28e94b0 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1 +1,2 @@ github: processing +custom: https://processingfoundation.org/support From 78f7c30076de3f9a24536913249009be7e543a6b Mon Sep 17 00:00:00 2001 From: Casey Reas Date: Fri, 12 Jun 2020 15:05:49 -0700 Subject: [PATCH 43/69] Update FUNDING.yml --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 2cf28e94b0..41534ed7ba 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1,2 @@ github: processing -custom: https://processingfoundation.org/support +custom: https://processingfoundation.org From 4cc297c66908899cd29480c202536ecf749854e8 Mon Sep 17 00:00:00 2001 From: Casey Reas Date: Mon, 15 Jun 2020 14:01:50 -0700 Subject: [PATCH 44/69] Update parameter reference for curveTangent() --- core/src/processing/core/PGraphics.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/processing/core/PGraphics.java b/core/src/processing/core/PGraphics.java index 266cf43bdc..d9b4be5192 100644 --- a/core/src/processing/core/PGraphics.java +++ b/core/src/processing/core/PGraphics.java @@ -3470,10 +3470,10 @@ public float curvePoint(float a, float b, float c, float d, float t) { * Code thanks to Dave Bollinger (Bug #715) * * @webref shape:curves - * @param a coordinate of first point on the curve - * @param b coordinate of first control point - * @param c coordinate of second control point - * @param d coordinate of second point on the curve + * @param a coordinate of first control point on the curve + * @param b coordinate of first point + * @param c coordinate of first point + * @param d coordinate of second control point on the curve * @param t value between 0 and 1 * @see PGraphics#curve(float, float, float, float, float, float, float, float, float, float, float, float) * @see PGraphics#curveVertex(float, float) From 2492d778c1c474aa23886390b561c58677cf3a78 Mon Sep 17 00:00:00 2001 From: Hugo Vale Pereira Date: Sat, 5 Sep 2020 19:48:10 +0100 Subject: [PATCH 45/69] getShape() - Type of vertex was wrong for Cubic When 'detail' is set to 0, it was causing getShape to break with OTF fonts that use cubic bezier paths. By mistake, a 3D quadratic was being drawn instead of a proper cubic bezier. --- core/src/processing/core/PFont.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/processing/core/PFont.java b/core/src/processing/core/PFont.java index 12ee61a36b..5c8d38c4b5 100644 --- a/core/src/processing/core/PFont.java +++ b/core/src/processing/core/PFont.java @@ -782,7 +782,7 @@ public PShape getShape(char ch, float detail) { case PathIterator.SEG_CUBICTO: // 3 points // System.out.println("cubicto"); // PApplet.println(iterPoints); - s.quadraticVertex(iterPoints[0], iterPoints[1], + s.bezierVertex(iterPoints[0], iterPoints[1], iterPoints[2], iterPoints[3], iterPoints[4], iterPoints[5]); break; From 4fe0cce37c896f472e936cb1506cba175a654cd3 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Mon, 14 Sep 2020 17:33:41 -0400 Subject: [PATCH 46/69] fix white space --- build/jre/build.xml | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/build/jre/build.xml b/build/jre/build.xml index db3c84e6e7..c12776eff2 100644 --- a/build/jre/build.xml +++ b/build/jre/build.xml @@ -5,43 +5,43 @@ - + + it allows us to build the PDE with only a JRE on Windows and Linux. + So that the core can be built independently of the PDE, + use javac (the "modern" compiler) if ecj is not present. --> - + + target="1.8" + srcdir="src" + destdir="bin" + debug="true" + includeantruntime="true" + nowarn="true"> - + - + - - + - + From 89a080814895234b54201c0240625e47a5b369cf Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Mon, 14 Sep 2020 20:11:06 -0400 Subject: [PATCH 47/69] trying out a cached copy of the JRE to address #5827 and others --- build/jre/src/Downloader.java | 10 +++++++++- todo.txt | 5 +++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/build/jre/src/Downloader.java b/build/jre/src/Downloader.java index b25fb58b8d..0eab58acee 100644 --- a/build/jre/src/Downloader.java +++ b/build/jre/src/Downloader.java @@ -8,8 +8,13 @@ /** * Ant Task for downloading the latest JRE or JDK from Oracle. + * This was used to set a cookie properly to retrieve a JRE. + * Nowadays the older versions have been removed from Oracle's site, + * so this is hard wired it to use download.processing.org instead. */ public class Downloader extends Task { + static final boolean ORACLE_SUCKS = true; // that's final + static final String COOKIE = "oraclelicense=accept-securebackup-cookie"; @@ -82,7 +87,6 @@ public void execute() throws BuildException { throw new BuildException("Starting with 8u121, a hash is required, see https://gist.github.com/P7h/9741922"); } - //download(path, jdk, platform, bits, version, update, build); try { download(); } catch (IOException e) { @@ -111,6 +115,10 @@ void download() throws IOException { url += hash + "/"; } + if (ORACLE_SUCKS) { + url = "https://download.processing.org/java/"; + } + // Finally, add the filename to the end url += filename; diff --git a/todo.txt b/todo.txt index caf4e3b087..62e8655b1f 100644 --- a/todo.txt +++ b/todo.txt @@ -1,4 +1,9 @@ 0271 (3.5.5 unlikely) +_ get the jre download to work by using a local copy +X https://github.com/processing/processing/issues/5827 +X https://github.com/processing/processing/issues/5860 +_ https://github.com/processing/processing/issues/5942 +_ https://github.com/processing/processing/issues/6089 contribs X rename-variable menu allows Java identifiers From 65c167b0a1ad5db716387cd829fc1bfd0b2c9d4f Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Mon, 14 Sep 2020 20:34:57 -0400 Subject: [PATCH 48/69] get the jre download to work by using a cached copy --- todo.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/todo.txt b/todo.txt index 62e8655b1f..e6fa460dd0 100644 --- a/todo.txt +++ b/todo.txt @@ -1,9 +1,9 @@ 0271 (3.5.5 unlikely) -_ get the jre download to work by using a local copy +X get the jre download to work by using a cached copy X https://github.com/processing/processing/issues/5827 X https://github.com/processing/processing/issues/5860 -_ https://github.com/processing/processing/issues/5942 -_ https://github.com/processing/processing/issues/6089 +X https://github.com/processing/processing/issues/5942 +X https://github.com/processing/processing/issues/6089 contribs X rename-variable menu allows Java identifiers From 55a18f6347e6cb232157aad25b87746acb60802b Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Mon, 21 Sep 2020 18:22:41 -0400 Subject: [PATCH 49/69] handle Terminal.app move in macOS Catalina (fixes #6091) --- build/build.xml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/build/build.xml b/build/build.xml index c7061c2c3d..5b944c08b8 100644 --- a/build/build.xml +++ b/build/build.xml @@ -694,9 +694,20 @@ + + + + + + + - + From 36b3990ce3df4b5a8bc40e6e428532bc5aeca3d8 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Tue, 22 Sep 2020 13:52:17 -0400 Subject: [PATCH 50/69] whitespace change --- core/src/processing/core/PApplet.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/processing/core/PApplet.java b/core/src/processing/core/PApplet.java index b935d3c5f3..c43fbca8cb 100644 --- a/core/src/processing/core/PApplet.java +++ b/core/src/processing/core/PApplet.java @@ -12596,10 +12596,10 @@ public float curvePoint(float a, float b, float c, float d, float t) { * Code thanks to Dave Bollinger (Bug #715) * * @webref shape:curves - * @param a coordinate of first point on the curve - * @param b coordinate of first control point - * @param c coordinate of second control point - * @param d coordinate of second point on the curve + * @param a coordinate of first control point on the curve + * @param b coordinate of first point + * @param c coordinate of first point + * @param d coordinate of second control point on the curve * @param t value between 0 and 1 * @see PGraphics#curve(float, float, float, float, float, float, float, float, float, float, float, float) * @see PGraphics#curveVertex(float, float) From 4a8e20688cdac7683cd4e2450a823237ceca5715 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Tue, 22 Sep 2020 13:52:29 -0400 Subject: [PATCH 51/69] add a note about #6092 --- core/todo.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/todo.txt b/core/todo.txt index c15593393c..8055db170c 100644 --- a/core/todo.txt +++ b/core/todo.txt @@ -1,5 +1,9 @@ 0271 (3.5.5 unlikely) +contribs +X getShape() - Type of vertex was wrong for Cubic +X https://github.com/processing/processing/pull/6092 + _ size() issues on Mojave? _ https://github.com/processing/processing/issues/5791 From e3d8304932e23711547725fd340418c09fb39513 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Tue, 22 Sep 2020 13:53:20 -0400 Subject: [PATCH 52/69] I could swear I already removed these unused imports --- app/src/processing/app/platform/LinuxPlatform.java | 1 - app/src/processing/app/platform/MacPlatform.java | 1 - app/src/processing/app/ui/ErrorTable.java | 1 - app/src/processing/app/ui/MarkerColumn.java | 1 - java/src/processing/mode/java/preproc/PdeEmitter.java | 3 +-- 5 files changed, 1 insertion(+), 6 deletions(-) diff --git a/app/src/processing/app/platform/LinuxPlatform.java b/app/src/processing/app/platform/LinuxPlatform.java index fe3d7ce859..7bc7297246 100644 --- a/app/src/processing/app/platform/LinuxPlatform.java +++ b/app/src/processing/app/platform/LinuxPlatform.java @@ -29,7 +29,6 @@ import processing.app.Base; import processing.app.Messages; import processing.app.Preferences; -import processing.app.platform.DefaultPlatform; import processing.core.PApplet; diff --git a/app/src/processing/app/platform/MacPlatform.java b/app/src/processing/app/platform/MacPlatform.java index b3fd404d97..02474a3942 100644 --- a/app/src/processing/app/platform/MacPlatform.java +++ b/app/src/processing/app/platform/MacPlatform.java @@ -32,7 +32,6 @@ import processing.app.Base; import processing.app.Messages; -import processing.app.platform.DefaultPlatform; /** diff --git a/app/src/processing/app/ui/ErrorTable.java b/app/src/processing/app/ui/ErrorTable.java index f033dfc5b0..8abfdf77a0 100644 --- a/app/src/processing/app/ui/ErrorTable.java +++ b/app/src/processing/app/ui/ErrorTable.java @@ -41,7 +41,6 @@ import processing.app.Language; import processing.app.Mode; import processing.app.Problem; -import processing.app.ui.Editor; public class ErrorTable extends JTable { diff --git a/app/src/processing/app/ui/MarkerColumn.java b/app/src/processing/app/ui/MarkerColumn.java index 7169d92ec5..8d6371fbd5 100644 --- a/app/src/processing/app/ui/MarkerColumn.java +++ b/app/src/processing/app/ui/MarkerColumn.java @@ -39,7 +39,6 @@ import processing.app.Sketch; import processing.app.SketchCode; import processing.app.syntax.PdeTextArea; -import processing.app.ui.Editor; import processing.core.PApplet; diff --git a/java/src/processing/mode/java/preproc/PdeEmitter.java b/java/src/processing/mode/java/preproc/PdeEmitter.java index c2b5a4ed15..1f1adca228 100644 --- a/java/src/processing/mode/java/preproc/PdeEmitter.java +++ b/java/src/processing/mode/java/preproc/PdeEmitter.java @@ -8,7 +8,6 @@ import java.util.Stack; import processing.app.Preferences; import processing.app.SketchException; -import processing.mode.java.preproc.PdeTokenTypes; import antlr.CommonASTWithHiddenTokens; import antlr.CommonHiddenStreamToken; import antlr.collections.AST; @@ -35,7 +34,7 @@ public class PdeEmitter implements PdeTokenTypes { private final PrintWriter out; private final PrintStream debug = System.err; - private final Stack stack = new Stack(); + private final Stack stack = new Stack<>(); private final static int ROOT_ID = 0; public PdeEmitter(final PdePreprocessor pdePreprocessor, final PrintWriter out) { From 82269447441177f3a279e63b5513a8dc2508484a Mon Sep 17 00:00:00 2001 From: Alexandre B A Villares <3694604+villares@users.noreply.github.com> Date: Thu, 24 Sep 2020 11:08:51 -0300 Subject: [PATCH 53/69] Fixes color selector menu name in PDE_pt.properties MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There is no "Côr" in Portuguese, the word is "Cor" (color) https://dictionary.cambridge.org/dictionary/portuguese-english/cor --- build/shared/lib/languages/PDE_pt.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/shared/lib/languages/PDE_pt.properties b/build/shared/lib/languages/PDE_pt.properties index fbf823c3b3..607188f697 100644 --- a/build/shared/lib/languages/PDE_pt.properties +++ b/build/shared/lib/languages/PDE_pt.properties @@ -67,7 +67,7 @@ menu.sketch.add_file = Adicionar Ficheiro... # | File | Edit | Sketch | Debug | Tools | Help | # | Tools | menu.tools = Ferramentas -menu.tools.color_selector = Selector de Côr... +menu.tools.color_selector = Selector de Cor... menu.tools.create_font = Criar Fonte... menu.tools.archive_sketch = Arquivar Sketch menu.tools.fix_the_serial_lbrary = Corrijir a Biblioteca Serial From cd96fc639bfb8568d801ad33f6e3fe3a0c7e4697 Mon Sep 17 00:00:00 2001 From: Alexandre B A Villares <3694604+villares@users.noreply.github.com> Date: Thu, 24 Sep 2020 11:22:48 -0300 Subject: [PATCH 54/69] Small fixes for PDE_pt.properties MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Guardr -> Guardar Yah, não. -> Ah, não. Nenhuns ficheiros -> Nenhum dos ficheiros erro a descarregar -> erro ao descarregar --- build/shared/lib/languages/PDE_pt.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/build/shared/lib/languages/PDE_pt.properties b/build/shared/lib/languages/PDE_pt.properties index fbf823c3b3..f379459e79 100644 --- a/build/shared/lib/languages/PDE_pt.properties +++ b/build/shared/lib/languages/PDE_pt.properties @@ -204,7 +204,7 @@ toolbar.stop = Parar # --- toolbar.new = Novo toolbar.open = Abrir -toolbar.save = Guardr +toolbar.save = Guardar # toolbar.export_application = Exportar Aplicação toolbar.add_mode = Adicionar modo... @@ -218,14 +218,14 @@ editor.header.rename = Renomear editor.header.delete = Apagar editor.header.previous_tab = Aba Anterior editor.header.next_tab = Aba Seguinte -editor.header.delete.warning.title = Yah, não. -editor.header.delete.warning.text = Não pode apagar a última aba do último sketch aberto. +editor.header.delete.warning.title = Ah, não. +editor.header.delete.warning.text = Não se pode apagar a última aba do último sketch aberto. editor.status.autoformat.no_changes = Não foram necessárias alterações para a Auto Formatação. editor.status.autoformat.finished = Auto Formatação completa. editor.status.find_reference.select_word_first = Primeiro escolha uma palavra para procurar na referência. editor.status.find_reference.not_available = Não existe refrência disponivel para "%s". -editor.status.drag_and_drop.files_added.0 = Nenhuns ficheiros foram adicionados ao sketch. +editor.status.drag_and_drop.files_added.0 = Nenhum dos ficheiros foram adicionados ao sketch. editor.status.drag_and_drop.files_added.1 = Um ficheiro adicionado ao sketch. editor.status.drag_and_drop.files_added.n = %d ficheiros adicionados ao sketch. editor.status.saving = A Guardar... @@ -247,5 +247,5 @@ contrib.remove = Refazer contrib.install = Instalar contrib.progress.starting = A iniciar contrib.progress.downloading = A descarregar -contrib.download_error = Ocorreu um erro a descarregar a contribuição. +contrib.download_error = Ocorreu um erro ao descarregar a contribuição. contrib.unsupported_operating_system = O seu sistema operativo não parece ser suportado. Deve visitar a biblioteca %s para mais informação. From 9855c3f7c62147e0a0efb9882b6e508b1cfc854f Mon Sep 17 00:00:00 2001 From: Dee Yeum <36423861+ChefYeum@users.noreply.github.com> Date: Wed, 20 Jan 2021 23:33:33 +0900 Subject: [PATCH 55/69] bothers me --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 91a56142b9..be601ccf9c 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ __That [processing-bugs](https://github.com/processing-bugs) fella is suspicious The issues list has been imported from Google Code, so there are many spurious references amongst them since the numbering changed. Basically, any time you see references to changes made by [processing-bugs](https://github.com/processing-bugs), it may be somewhat suspect. -Over time this will clean itself up as bugs are fixed and new issues are added from within Github. +Over time this will clean itself up as bugs are fixed and new issues are added from within GitHub. Help speed this process along by helping us! __Please help.__ From 7c72ea693659f411890169f41fbf24edc7bc7040 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Mon, 14 Jun 2021 17:43:46 -0400 Subject: [PATCH 56/69] add note about Portugese translation update --- todo.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/todo.txt b/todo.txt index e6fa460dd0..3cdc06d422 100644 --- a/todo.txt +++ b/todo.txt @@ -11,6 +11,9 @@ X https://github.com/processing/processing/issues/5828 X https://github.com/processing/processing/pull/5906 X Replace C/C++ style array declarations with Java style array declarations X https://github.com/processing/processing/pull/5981 +X Updates and fixes for PDE_pt.properties (Portugese translation) +X https://github.com/processing/processing/pull/6097 +X https://github.com/processing/processing/pull/6098 from Casey From 5569c6b25573b159aff5c0a1e0e00b0276adb340 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Mon, 14 Jun 2021 17:44:13 -0400 Subject: [PATCH 57/69] automatically lock closed/resolved issues/pulls after 30 days --- .github/lock.yml | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 .github/lock.yml diff --git a/.github/lock.yml b/.github/lock.yml new file mode 100644 index 0000000000..14e31af728 --- /dev/null +++ b/.github/lock.yml @@ -0,0 +1,39 @@ +# Configuration for Lock Threads - https://github.com/dessant/lock-threads-app + +# Number of days of inactivity before a closed issue or pull request is locked +daysUntilLock: 30 + +# Skip issues and pull requests created before a given timestamp. Timestamp must +# follow ISO 8601 (`YYYY-MM-DD`). Set to `false` to disable +skipCreatedBefore: false + +# Issues and pull requests with these labels will be ignored. Set to `[]` to disable +exemptLabels: [] + +# Label to add before locking, such as `outdated`. Set to `false` to disable +lockLabel: false + +# Comment to post before locking. Set to `false` to disable +lockComment: > + This thread has been automatically locked since there has not been + any recent activity after it was closed. Please open a new issue for + related bugs. + +# Assign `resolved` as the reason for locking. Set to `false` to disable +# setLockReason: true +setLockReason: false + +# Limit to only `issues` or `pulls` +# only: issues + +# Optionally, specify configuration settings just for `issues` or `pulls` +# issues: +# exemptLabels: +# - help-wanted +# lockLabel: outdated + +# pulls: +# daysUntilLock: 30 + +# Repository to extend settings from +# _extends: repo From 250e28b8ea1c34875184e32a4815edcdedaa71fe Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Mon, 14 Jun 2021 17:45:03 -0400 Subject: [PATCH 58/69] note about issue locking --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index be601ccf9c..66c15c1a66 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ There are also separate locations for [Android Mode](https://github.com/processi The [processing.js](http://processingjs.org) project is not affiliated with us, but you can find their issue tracker [here](https://github.com/processing-js/processing-js/issues). __Locked Issues__ -Where possible, I've started locking issues once resolved. This helps reduce the amount of noise from folks adding to an issue that's been closed for years. Because this project has existed for a long time and we have thousands of closed issues, lots of them may sound similar to an issue you're having. But if there's a new problem, it'll be missed if it's lost in a comment added to an already closed issue. I don't like to lock issues because it cuts off conversation, but it's better than legitimate problems being missed. +Where possible, I've started locking issues once resolved. This helps reduce the amount of noise from folks adding to an issue that's been closed for years. Because this project has existed for a long time and we have thousands of closed issues, lots of them may sound similar to an issue you're having. But if there's a new problem, it'll be missed if it's lost in a comment added to an already closed issue. I don't like to lock issues because it cuts off conversation, but it's better than legitimate problems being missed. Once an issue has been resolved for 30 days, it will automatically lock. __That [processing-bugs](https://github.com/processing-bugs) fella is suspicious.__ The issues list has been imported from Google Code, so there are many spurious references From 64e2bef545071258756c27bb563fcfd8c3614cd1 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Mon, 14 Jun 2021 22:25:43 -0400 Subject: [PATCH 59/69] using a workflow for locking instead --- .github/lock.yml | 39 -------------------------------------- .github/workflows/lock.yml | 22 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 39 deletions(-) delete mode 100644 .github/lock.yml create mode 100644 .github/workflows/lock.yml diff --git a/.github/lock.yml b/.github/lock.yml deleted file mode 100644 index 14e31af728..0000000000 --- a/.github/lock.yml +++ /dev/null @@ -1,39 +0,0 @@ -# Configuration for Lock Threads - https://github.com/dessant/lock-threads-app - -# Number of days of inactivity before a closed issue or pull request is locked -daysUntilLock: 30 - -# Skip issues and pull requests created before a given timestamp. Timestamp must -# follow ISO 8601 (`YYYY-MM-DD`). Set to `false` to disable -skipCreatedBefore: false - -# Issues and pull requests with these labels will be ignored. Set to `[]` to disable -exemptLabels: [] - -# Label to add before locking, such as `outdated`. Set to `false` to disable -lockLabel: false - -# Comment to post before locking. Set to `false` to disable -lockComment: > - This thread has been automatically locked since there has not been - any recent activity after it was closed. Please open a new issue for - related bugs. - -# Assign `resolved` as the reason for locking. Set to `false` to disable -# setLockReason: true -setLockReason: false - -# Limit to only `issues` or `pulls` -# only: issues - -# Optionally, specify configuration settings just for `issues` or `pulls` -# issues: -# exemptLabels: -# - help-wanted -# lockLabel: outdated - -# pulls: -# daysUntilLock: 30 - -# Repository to extend settings from -# _extends: repo diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml new file mode 100644 index 0000000000..a8a24e0f5f --- /dev/null +++ b/.github/workflows/lock.yml @@ -0,0 +1,22 @@ +name: 'Lock Threads' + +on: + schedule: + - cron: '27 * * * *' + +jobs: + lock: + runs-on: ubuntu-latest + steps: + - uses: dessant/lock-threads@v2.0.1 + with: + github-token: ${{ github.token }} + issue-lock-inactive-days: '30' + issue-lock-comment: > + This issue has been automatically locked since there + has not been any recent activity after it was closed. + Please open a new issue for related bugs. + pr-lock-comment: > + This pull request has been automatically locked since there + has not been any recent activity after it was closed. + Please open a new issue for related bugs. From fd2b07551a586751f1a23cbf86e2fd8706007a74 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Mon, 14 Jun 2021 22:35:58 -0400 Subject: [PATCH 60/69] so much for running at an off time --- .github/workflows/lock.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml index a8a24e0f5f..f46041e750 100644 --- a/.github/workflows/lock.yml +++ b/.github/workflows/lock.yml @@ -2,7 +2,7 @@ name: 'Lock Threads' on: schedule: - - cron: '27 * * * *' + - cron: '0 * * * *' jobs: lock: From ad31c61bc10e7dda3f8806b865139858f8252326 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Mon, 28 Jun 2021 17:45:24 -0400 Subject: [PATCH 61/69] add a note about the new repo --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 66c15c1a66..a4fb443d57 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,7 @@ +# Since the release of Processing 3.5.4 in January 2020, development has moved to [a new repository](https://github.com/processing/processing4/). +Using a [4.0 release](https://github.com/processing/processing4/releases) (even an alpha or beta version) is recommended if you find an issue. To avoid confusion, this repo will remain open at least until a 4.0 release is the default download at https://processing.org/download. We chose to move to a new repository so that we could clean out old files accumulated over the last 20 years. + + Processing ========== From 9eb4e9b6c975d8e9d3cce85230300c04a52927c6 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Tue, 6 Jul 2021 06:13:43 -0400 Subject: [PATCH 62/69] clarifying lock message, run lock daily instead of hourly --- .github/workflows/lock.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml index f46041e750..d3ea54200a 100644 --- a/.github/workflows/lock.yml +++ b/.github/workflows/lock.yml @@ -2,7 +2,7 @@ name: 'Lock Threads' on: schedule: - - cron: '0 * * * *' + - cron: '* 6 * * *' jobs: lock: @@ -13,10 +13,11 @@ jobs: github-token: ${{ github.token }} issue-lock-inactive-days: '30' issue-lock-comment: > - This issue has been automatically locked since there - has not been any recent activity after it was closed. + This issue has been automatically locked. To avoid confusion + with reports that have already been resolved, closed issues + are automatically locked 30 days after the last comment. Please open a new issue for related bugs. pr-lock-comment: > - This pull request has been automatically locked since there - has not been any recent activity after it was closed. - Please open a new issue for related bugs. + This pull request has been automatically locked. + Pull requests that have been closed are automatically + locked 30 days after the last comment. From d234e79f21e4534a8732ba177c5717c4e028e959 Mon Sep 17 00:00:00 2001 From: Jeremy Douglass Date: Wed, 18 Aug 2021 20:48:19 -0700 Subject: [PATCH 63/69] Update ISSUE_TEMPLATE.md to redirect Processing 4 questions > STOP! PROCESSING 4 ISSUES GO TO https://github.com/processing/processing4/issues --- ISSUE_TEMPLATE.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md index a4f3e3258b..ff4ffecc6c 100644 --- a/ISSUE_TEMPLATE.md +++ b/ISSUE_TEMPLATE.md @@ -1,3 +1,5 @@ + + @@ -6,6 +8,8 @@ + + ## Description From a6a86250ffa4041b7d77fbb66dc02e78360c64f0 Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Sun, 3 Oct 2021 11:48:48 -0400 Subject: [PATCH 64/69] tweak issue template a little --- ISSUE_TEMPLATE.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md index ff4ffecc6c..9a78beeb43 100644 --- a/ISSUE_TEMPLATE.md +++ b/ISSUE_TEMPLATE.md @@ -1,4 +1,4 @@ - + @@ -9,6 +9,7 @@ + ## Description From 8b15e4f548c1426df3a5ebe4c2106619faf7c4ba Mon Sep 17 00:00:00 2001 From: Ben Fry Date: Sun, 27 Mar 2022 11:19:42 -0400 Subject: [PATCH 65/69] update issue template --- ISSUE_TEMPLATE.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md index 9a78beeb43..bc9287c602 100644 --- a/ISSUE_TEMPLATE.md +++ b/ISSUE_TEMPLATE.md @@ -1,4 +1,8 @@ - + + + + + From 69ccc92e6950dd3f071abc23cffe9763014638da Mon Sep 17 00:00:00 2001 From: Alex <93376818+sashashura@users.noreply.github.com> Date: Thu, 1 Sep 2022 22:16:50 +0100 Subject: [PATCH 66/69] Update lock.yml Signed-off-by: sashashura <93376818+sashashura@users.noreply.github.com> --- .github/workflows/lock.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml index d3ea54200a..30b12e76c3 100644 --- a/.github/workflows/lock.yml +++ b/.github/workflows/lock.yml @@ -4,8 +4,14 @@ on: schedule: - cron: '* 6 * * *' +permissions: + contents: read + jobs: lock: + permissions: + issues: write + pull-requests: write runs-on: ubuntu-latest steps: - uses: dessant/lock-threads@v2.0.1 From 36a554b38f230384dbab20a3b2f47fef82df9b99 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Tue, 17 Dec 2024 09:49:47 +0100 Subject: [PATCH 67/69] Lock Threads fix Run at 6, not every minute of the 6th hour --- .github/workflows/lock.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml index 30b12e76c3..10801377c7 100644 --- a/.github/workflows/lock.yml +++ b/.github/workflows/lock.yml @@ -2,7 +2,7 @@ name: 'Lock Threads' on: schedule: - - cron: '* 6 * * *' + - cron: '* 6 * * 0' permissions: contents: read From 25a12a723a24e044aac6f29bbf1f85e25683a9eb Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Tue, 17 Dec 2024 16:10:08 +0100 Subject: [PATCH 68/69] Update lock.yml --- .github/workflows/lock.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml index 10801377c7..5ed1e8ee84 100644 --- a/.github/workflows/lock.yml +++ b/.github/workflows/lock.yml @@ -2,7 +2,7 @@ name: 'Lock Threads' on: schedule: - - cron: '* 6 * * 0' + - cron: '0 6 * * *' permissions: contents: read From 1de30e075fb6675cc4c8a0f7b29febab415b1ca8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Sun, 18 May 2025 23:02:16 +0200 Subject: [PATCH 69/69] Update README.md Better callout and strikethrough for clarity --- README.md | 48 +++++++++++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index a4fb443d57..ece7d3ab72 100644 --- a/README.md +++ b/README.md @@ -1,38 +1,48 @@ -# Since the release of Processing 3.5.4 in January 2020, development has moved to [a new repository](https://github.com/processing/processing4/). -Using a [4.0 release](https://github.com/processing/processing4/releases) (even an alpha or beta version) is recommended if you find an issue. To avoid confusion, this repo will remain open at least until a 4.0 release is the default download at https://processing.org/download. We chose to move to a new repository so that we could clean out old files accumulated over the last 20 years. + + +>[!WARNING] +> # Development has moved to [a new repository](https://github.com/processing/processing4/). + +Since the release of Processing 3.5.4 in January 2020, development has continued in a new repository: [processing/processing4](https://github.com/processing/processing4/). + +We chose to move to a new repository so that we could clean out old files accumulated over the last 20 years. + +To report bugs or request features, please open a [new issue](https://github.com/processing/processing4/issues/new/choose) on the Processing 4 repository. + + -Processing +~~Processing~~ ========== -This is the official source code for the [Processing](http://processing.org) Development Environment (PDE), -the “core” and the libraries that are included with the [download](http://processing.org/download). +~~This is the official source code for the [Processing](http://processing.org) Development Environment (PDE), +the “core” and the libraries that are included with the [download](http://processing.org/download).~~ -__I've found a bug!__ -Let us know [here](https://github.com/processing/processing/issues) (after first checking if someone has already posted a similar problem). +~~__I've found a bug!__~~ +~~Let us know [here](https://github.com/processing/processing/issues) (after first checking if someone has already posted a similar problem). If it's a reference, web site, or examples issue, take that up with folks [here](https://github.com/processing/processing-docs/issues). There are also separate locations for [Android Mode](https://github.com/processing/processing-android/issues), or the [Video](https://github.com/processing/processing-video/issues) and [Sound](https://github.com/processing/processing-sound/issues) libraries. -The [processing.js](http://processingjs.org) project is not affiliated with us, but you can find their issue tracker [here](https://github.com/processing-js/processing-js/issues). +The [processing.js](http://processingjs.org) project is not affiliated with us, but you can find their issue tracker [here](https://github.com/processing-js/processing-js/issues).~~ -__Locked Issues__ -Where possible, I've started locking issues once resolved. This helps reduce the amount of noise from folks adding to an issue that's been closed for years. Because this project has existed for a long time and we have thousands of closed issues, lots of them may sound similar to an issue you're having. But if there's a new problem, it'll be missed if it's lost in a comment added to an already closed issue. I don't like to lock issues because it cuts off conversation, but it's better than legitimate problems being missed. Once an issue has been resolved for 30 days, it will automatically lock. +~~__Locked Issues__ +Where possible, I've started locking issues once resolved. This helps reduce the amount of noise from folks adding to an issue that's been closed for years. Because this project has existed for a long time and we have thousands of closed issues, lots of them may sound similar to an issue you're having. But if there's a new problem, it'll be missed if it's lost in a comment added to an already closed issue. I don't like to lock issues because it cuts off conversation, but it's better than legitimate problems being missed. Once an issue has been resolved for 30 days, it will automatically lock.~~ -__That [processing-bugs](https://github.com/processing-bugs) fella is suspicious.__ +~~__That [processing-bugs](https://github.com/processing-bugs) fella is suspicious.__ The issues list has been imported from Google Code, so there are many spurious references amongst them since the numbering changed. Basically, any time you see references to changes made by [processing-bugs](https://github.com/processing-bugs), it may be somewhat suspect. Over time this will clean itself up as bugs are fixed and new issues are added from within GitHub. -Help speed this process along by helping us! +Help speed this process along by helping us!~~ -__Please help.__ +~~__Please help.__ The instructions for building the source [are here](https://github.com/processing/processing/wiki/Build-Instructions). -Please help us fix problems, and if you're submitting code, following the [style guidelines](https://github.com/processing/processing/wiki/Style-Guidelines) helps save me a lot of time. +Please help us fix problems, and if you're submitting code, following the [style guidelines](https://github.com/processing/processing/wiki/Style-Guidelines) helps save me a lot of time.~~ -__And finally...__ -Someday we'll also fix all these bugs, throw together hundreds of unit tests, and get rich off all this stuff that we're giving away for free. But not today. +~~__And finally...__ +Someday we'll also fix all these bugs, throw together hundreds of unit tests, and get rich off all this stuff that we're giving away for free. But not today.~~ -So in the meantime, I ask for your patience, +~~So in the meantime, I ask for your patience, [participation](https://github.com/processing/processing/wiki/Project-List), -and [patches](https://github.com/processing/processing/pulls). +and [patches](https://github.com/processing/processing/pulls).~~ -Ben Fry, 20 January 2019 +~~Ben Fry, 20 January 2019~~