From d4d86d4ac1471cb5a91fcd753115c4953b846d35 Mon Sep 17 00:00:00 2001 From: codeanticode Date: Thu, 3 Mar 2016 01:04:39 -0500 Subject: [PATCH] add createPreprocessor() to JavaEditor, so it can be overriden in the editor of other modes --- java/src/processing/mode/java/JavaEditor.java | 33 ++++++++++++------- .../mode/java/pdex/ASTGenerator.java | 3 +- .../mode/java/pdex/XQPreprocessor.java | 5 +-- 3 files changed, 26 insertions(+), 15 deletions(-) diff --git a/java/src/processing/mode/java/JavaEditor.java b/java/src/processing/mode/java/JavaEditor.java index 178730eb4..32be87410 100644 --- a/java/src/processing/mode/java/JavaEditor.java +++ b/java/src/processing/mode/java/JavaEditor.java @@ -33,6 +33,7 @@ import processing.mode.java.pdex.ErrorCheckerService; import processing.mode.java.pdex.LineMarker; import processing.mode.java.pdex.JavaTextArea; import processing.mode.java.pdex.Problem; +import processing.mode.java.preproc.PdePreprocessor; import processing.mode.java.runner.Runner; import processing.mode.java.tweak.ColorControlBox; import processing.mode.java.tweak.Handle; @@ -136,17 +137,7 @@ public class JavaEditor extends Editor { hasJavaTabs = checkForJavaTabs(); //initializeErrorChecker(); - { // Init error checker - errorCheckerService = new ErrorCheckerService(this); - for (SketchCode code : getSketch().getCode()) { - Document document = code.getDocument(); - if (document != null) { - errorCheckerService.addListener(document); - } - } - errorCheckerService.start(); - errorCheckerService.request(); - } + initErrorChecker(); // hack to add a JPanel to the right-hand side of the text area JPanel textAndError = new JPanel(); @@ -180,7 +171,25 @@ public class JavaEditor extends Editor { }); } - + + public PdePreprocessor createPreprocessor(final String sketchName) { + return new PdePreprocessor(sketchName); + } + + + protected void initErrorChecker() { + errorCheckerService = new ErrorCheckerService(this); + for (SketchCode code : getSketch().getCode()) { + Document document = code.getDocument(); + if (document != null) { + errorCheckerService.addListener(document); + } + } + errorCheckerService.start(); + errorCheckerService.request(); + } + + protected JEditTextArea createTextArea() { return new JavaTextArea(new PdeTextAreaDefaults(mode), this); } diff --git a/java/src/processing/mode/java/pdex/ASTGenerator.java b/java/src/processing/mode/java/pdex/ASTGenerator.java index f735ef2e9..8d6fb87b5 100644 --- a/java/src/processing/mode/java/pdex/ASTGenerator.java +++ b/java/src/processing/mode/java/pdex/ASTGenerator.java @@ -1336,7 +1336,8 @@ public class ASTGenerator { //log("Doesn't exist in (code folder) imp package: " + impS.getImportName()); } - PdePreprocessor p = new PdePreprocessor(null); +// PdePreprocessor p = new PdePreprocessor(null); + PdePreprocessor p = editor.createPreprocessor(null); for (String impS : p.getCoreImports()) { tehClass = loadClass(impS.substring(0,impS.length()-1) + className); if (tehClass != null) { diff --git a/java/src/processing/mode/java/pdex/XQPreprocessor.java b/java/src/processing/mode/java/pdex/XQPreprocessor.java index bb8a83d13..582c1d50c 100644 --- a/java/src/processing/mode/java/pdex/XQPreprocessor.java +++ b/java/src/processing/mode/java/pdex/XQPreprocessor.java @@ -54,9 +54,10 @@ public class XQPreprocessor { public XQPreprocessor(ErrorCheckerService ecs) { this.ecs = ecs; - + // get parameters from the main preproc - PdePreprocessor p = new PdePreprocessor(null); +// PdePreprocessor p = new PdePreprocessor(null); + PdePreprocessor p = ecs.editor.createPreprocessor(null); defaultImports = p.getDefaultImports(); coreImports = p.getCoreImports(); }