From fc2633306b93aa63505f495371a2e65d4648d90e Mon Sep 17 00:00:00 2001 From: Manindra Moharana Date: Tue, 17 Sep 2013 05:30:06 +0530 Subject: [PATCH] search for missing imports in contrib libs --- .../mode/experimental/ASTGenerator.java | 24 +++++++++++++++---- .../experimental/ErrorCheckerService.java | 6 ++--- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/pdex/src/processing/mode/experimental/ASTGenerator.java b/pdex/src/processing/mode/experimental/ASTGenerator.java index c563c43fb..ce466f723 100644 --- a/pdex/src/processing/mode/experimental/ASTGenerator.java +++ b/pdex/src/processing/mode/experimental/ASTGenerator.java @@ -94,6 +94,7 @@ import org.eclipse.jdt.core.dom.VariableDeclarationFragment; import org.eclipse.jdt.core.dom.VariableDeclarationStatement; import processing.app.Base; +import processing.app.Library; import processing.app.SketchCode; import processing.app.Toolkit; import processing.mode.java.preproc.PdePreprocessor; @@ -3048,13 +3049,26 @@ public class ASTGenerator { Pattern.CASE_INSENSITIVE)); String[] resources = classPath .findResources("", regf); - if(resources.length == 0){ - log("Couldn't find import for class " + className); - return; + ArrayList candidates = new ArrayList(); + for (String res : resources) { + candidates.add(res); } + + // log("Couldn't find import for class " + className); + + for (Library lib : editor.dmode.contribLibraries) { + ClassPath cp = factory.createFromPath(lib.getClassPath()); + resources = cp.findResources("", regf); + for (String res : resources) { + candidates.add(res); + log("Res: " + res); + } + } + + resources = new String[candidates.size()]; for (int i = 0; i < resources.length; i++) { - resources[i] = resources[i].replace('/', '.') - .substring(0, resources[i].length() - 6); + resources[i] = candidates.get(i).replace('/', '.') + .substring(0, candidates.get(i).length() - 6); } if (resources.length >= 1) { final JList classList = new JList(resources); diff --git a/pdex/src/processing/mode/experimental/ErrorCheckerService.java b/pdex/src/processing/mode/experimental/ErrorCheckerService.java index 34a0e302f..896cd9da5 100644 --- a/pdex/src/processing/mode/experimental/ErrorCheckerService.java +++ b/pdex/src/processing/mode/experimental/ErrorCheckerService.java @@ -1276,9 +1276,9 @@ public class ErrorCheckerService implements Runnable{ * compiler classpath needs to be updated. */ protected void checkForChangedImports() { - // log("Imports: " + programImports.size() + - // " Prev Imp: " - // + previousImports.size()); + log("Imports: " + programImports.size() + + " Prev Imp: " + + previousImports.size()); if (programImports.size() != previousImports.size()) { // log(1); loadCompClass = true;