ECS: remove old import regex

This commit is contained in:
Jakub Valtar
2016-04-27 17:53:58 +02:00
parent cf9059f142
commit c01cb85bc1
3 changed files with 20 additions and 20 deletions

View File

@@ -30,9 +30,11 @@ import processing.mode.java.debug.LineHighlight;
import processing.mode.java.debug.LineID;
import processing.mode.java.pdex.ASTGenerator;
import processing.mode.java.pdex.ErrorCheckerService;
import processing.mode.java.pdex.ImportStatement;
import processing.mode.java.pdex.LineMarker;
import processing.mode.java.pdex.JavaTextArea;
import processing.mode.java.pdex.Problem;
import processing.mode.java.pdex.SourceUtils;
import processing.mode.java.preproc.PdePreprocessor;
import processing.mode.java.runner.Runner;
import processing.mode.java.tweak.ColorControlBox;
@@ -1904,13 +1906,12 @@ public class JavaEditor extends Editor {
if (sc.isExtension("pde")) {
String tabCode = sc.getProgram();
String[][] pieces =
PApplet.matchAll(tabCode, ErrorCheckerService.IMPORT_REGEX);
List<ImportStatement> imports = SourceUtils.parseProgramImports(tabCode);
if (pieces != null) {
if (!imports.isEmpty()) {
ArrayList<String> importHeaders = new ArrayList<>();
for (String[] importStatement : pieces) {
importHeaders.add(importStatement[2]);
for (ImportStatement importStatement : imports) {
importHeaders.add(importStatement.getFullClassName());
}
List<AvailableContribution> installLibsHeaders =
getNotInstalledAvailableLibs(importHeaders);

View File

@@ -102,14 +102,6 @@ public class ErrorCheckerService {
*/
protected final ASTGenerator astGenerator;
/**
* Regexp for import statements. (Used from Processing source)
*/
// TODO: merge this with SourceUtils one
public static final String IMPORT_REGEX =
"(?:^|;)\\s*(import\\s+)((?:static\\s+)?\\S+)(\\s*;)";
public ErrorCheckerService(JavaEditor editor) {
this.editor = editor;
astGenerator = new ASTGenerator(editor, this);

View File

@@ -26,18 +26,25 @@ public class SourceUtils {
Pattern.compile("^\\s*((?:(static)\\s+)?((?:\\w+\\s*\\.)*)\\s*(\\S+))",
Pattern.MULTILINE | Pattern.DOTALL);
public static List<Edit> parseProgramImports(CharSequence source,
List<ImportStatement> outImports) {
List<Edit> result = new ArrayList<>();
public static List<ImportStatement> parseProgramImports(CharSequence source) {
List<ImportStatement> result = new ArrayList<>();
Matcher matcher = IMPORT_REGEX.matcher(source);
while (matcher.find()) {
ImportStatement is = ImportStatement.parse(matcher.toMatchResult());
result.add(is);
}
return result;
}
public static List<Edit> parseProgramImports(CharSequence source,
List<ImportStatement> outImports) {
List<Edit> result = new ArrayList<>();
Matcher matcher = IMPORT_REGEX.matcher(source);
while (matcher.find()) {
String piece = matcher.group(1);
ImportStatement is = ImportStatement.parse(matcher.toMatchResult());
outImports.add(is);
int len = piece.length();
int idx = matcher.start(1);
int len = matcher.end(1) - idx;
// Remove the import from the main program
// Substitute with white spaces
result.add(Edit.move(idx, len, 0));