diff --git a/app/src/processing/mode/javascript/DirectivesEditor.java b/app/src/processing/mode/javascript/DirectivesEditor.java index d759648e8..9b9a9df35 100644 --- a/app/src/processing/mode/javascript/DirectivesEditor.java +++ b/app/src/processing/mode/javascript/DirectivesEditor.java @@ -145,10 +145,14 @@ public class DirectivesEditor /* remove framing */ mm = mm.replaceAll("^\\/\\*\\s*@pjs","").replaceAll("\\s*\\*\\/\\s*$",""); + /* fix multiline nice formatting */ + mm = mm.replaceAll("[\\s]*([^;\\s\\n\\r]+)[\\s]*,[\\s]*[\\n\\r]+","$1,"); /* fix multiline version without semicolons */ - mm = mm.replaceAll("([^;\\s\\n\\r]+)[\\s]*[\\n\\r]+","$1;"); - mm = mm.replaceAll("\n","").replaceAll("\r",""); + mm = mm.replaceAll("[\\s]*([^;\\s\\n\\r]+)[\\s]*[\\n\\r]+","$1;"); + mm = mm.replaceAll("\n"," ").replaceAll("\r"," "); + System.out.println(mm); + if ( clean ) { m.appendReplacement(buffer, ""); @@ -198,7 +202,14 @@ public class DirectivesEditor return; } - String key = pair[0].trim(), value = pair[1].trim(); + String key = pair[0].trim(), + value = pair[1].trim(); + + // clean these, might have too much whitespace around commas + if ( validKeys.indexOf(key) == FONT || validKeys.indexOf(key) == PRELOAD ) + { + value = value.replaceAll("[\\s]*,[\\s]*", ","); + } if ( validKeys.indexOf(key) == -1 ) { diff --git a/app/src/processing/mode/javascript/JavaScriptEditor.java b/app/src/processing/mode/javascript/JavaScriptEditor.java index 82013383b..c17382525 100644 --- a/app/src/processing/mode/javascript/JavaScriptEditor.java +++ b/app/src/processing/mode/javascript/JavaScriptEditor.java @@ -351,10 +351,15 @@ public class JavaScriptEditor extends Editor */ public boolean handleExport ( boolean openFolder ) { - if (handleExportCheckModified()) + if ( !handleExportCheckModified() ) { + return false; + } + else + { toolbar.activate(JavaScriptToolbar.EXPORT); - try { + try + { boolean success = jsMode.handleExport(sketch); if ( success && openFolder ) { diff --git a/app/src/processing/mode/javascript/JavaScriptMode.java b/app/src/processing/mode/javascript/JavaScriptMode.java index 2c02b89bb..ac580ba40 100644 --- a/app/src/processing/mode/javascript/JavaScriptMode.java +++ b/app/src/processing/mode/javascript/JavaScriptMode.java @@ -115,8 +115,8 @@ public class JavaScriptMode extends Mode File[] jModeExamples = new File[] { new File(jExamples, "Basics"), new File(jExamples, "Topics"), - new File(jExamples, "3D"), - new File(jExamples, "Books") + new File(jExamples, "3D") /*, + new File(jExamples, "Books")*/ }; // merge them all diff --git a/app/src/processing/mode/javascript/JavaScriptServer.java b/app/src/processing/mode/javascript/JavaScriptServer.java index 9ebbc93d7..3ebeee49f 100644 --- a/app/src/processing/mode/javascript/JavaScriptServer.java +++ b/app/src/processing/mode/javascript/JavaScriptServer.java @@ -14,7 +14,6 @@ class JavaScriptServer implements HttpConstants, Runnable Thread thread = null; ServerSocket server = null; - // TODO: this needed? SocketException on stop coming from here? //private ArrayList threads = new ArrayList(); //private int workers = 5; diff --git a/javascript/todo.txt b/javascript/todo.txt index 86302ffe3..8b530810c 100644 --- a/javascript/todo.txt +++ b/javascript/todo.txt @@ -1,2 +1,34 @@ We have some discussion here: http://code.google.com/p/processing/issues/detail?id=573 + +---------------------------------------------------------------------------- + +Integration with SketchPad.cc +s.cc being based on Etherpad has no API for calls from outside +at the moment. Content scraping is possible but probably not +submitting stuff .. +Here's how to get latest of a sketch as plain text: +http://studio.sketchpad.cc/sp/pad/export/ro.9civzkE0CyCy6/latest?format=txt + + +---------------------------------------------------------------------------- + +Examples. +Some of the standard examples should be included, but not library specific +ones. Currently there is no way to "just pick some" one has to include whole +branches. + +---------------------------------------------------------------------------- + +Interface. +As the server keeps running until being explicitly stopped we might think +about an animated icon. How does "Server running" look like? + +---------------------------------------------------------------------------- + +Convenience. +A way to reopen the browser window, maybe even other browsers? +Find your own IP address so you can test the sketch from other clients +on the network. + +---------------------------------------------------------------------------- \ No newline at end of file