mirror of
https://github.com/processing/processing4.git
synced 2026-02-03 05:39:18 +01:00
ECS: remove old import regex
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user