Skip to content

Commit bd16ad3

Browse files
committed
Error checker refactoring
1 parent dcc0490 commit bd16ad3

6 files changed

Lines changed: 304 additions & 459 deletions

File tree

‎java/src/processing/mode/java/JavaEditor.java‎

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ public void actionPerformed(ActionEvent e) {
140140
//initializeErrorChecker();
141141

142142
errorCheckerService = new ErrorCheckerService(this);
143-
new Thread(errorCheckerService).start();
143+
errorCheckerService.start();
144144

145145
// hack to add a JPanel to the right-hand side of the text area
146146
JPanel textAndError = new JPanel();
@@ -1307,7 +1307,7 @@ public void dispose() {
13071307
if (inspector != null) {
13081308
inspector.dispose();
13091309
}
1310-
errorCheckerService.stopThread();
1310+
errorCheckerService.stop();
13111311
super.dispose();
13121312
}
13131313

@@ -1872,7 +1872,7 @@ public void prepareRun() {
18721872
autoSave();
18731873
super.prepareRun();
18741874
downloadImports();
1875-
errorCheckerService.quickErrorCheck();
1875+
errorCheckerService.cancel();
18761876
}
18771877

18781878

@@ -2487,15 +2487,13 @@ public List<LineMarker> getErrorPoints() {
24872487
public LineMarker findError(int line) {
24882488
List<LineMarker> errorPoints = getErrorPoints();
24892489
JavaTextArea textArea = getJavaTextArea();
2490-
synchronized (errorPoints) {
2491-
for (LineMarker emarker : errorPoints) {
2492-
Problem p = emarker.getProblem();
2493-
int pStartLine = p.getLineNumber();
2494-
int pEndOffset = textArea.getLineStartOffset(pStartLine) + p.getPDELineStopOffset() + 1;
2495-
int pEndLine = textArea.getLineOfOffset(pEndOffset);
2496-
if (line >= pStartLine && line <= pEndLine) {
2497-
return emarker;
2498-
}
2490+
for (LineMarker emarker : errorPoints) {
2491+
Problem p = emarker.getProblem();
2492+
int pStartLine = p.getLineNumber();
2493+
int pEndOffset = textArea.getLineStartOffset(pStartLine) + p.getPDELineStopOffset() + 1;
2494+
int pEndLine = textArea.getLineOfOffset(pEndOffset);
2495+
if (line >= pStartLine && line <= pEndLine) {
2496+
return emarker;
24992497
}
25002498
}
25012499
return null;
@@ -2712,7 +2710,7 @@ protected void applyPreferences() {
27122710
jmode.loadPreferences();
27132711
Messages.log("Applying prefs");
27142712
// trigger it once to refresh UI
2715-
errorCheckerService.runManualErrorCheck();
2713+
errorCheckerService.request();
27162714
}
27172715
}
27182716

‎java/src/processing/mode/java/MarkerColumn.java‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ protected Object doInBackground() throws Exception {
142142

143143
protected void done() {
144144
repaint();
145+
editor.getErrorChecker().updateEditorStatus();
145146
}
146147
}.execute();
147148

‎java/src/processing/mode/java/pdex/ASTGenerator.java‎

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -407,10 +407,6 @@ public boolean accept(File file) {
407407
}
408408

409409

410-
public DefaultMutableTreeNode buildAST(CompilationUnit cu) {
411-
return buildAST(errorCheckerService.sourceCode, cu);
412-
}
413-
414410
public static CompletionCandidate[] checkForTypes(ASTNode node) {
415411

416412
List<VariableDeclarationFragment> vdfs = null;
@@ -1292,7 +1288,7 @@ public String getPDESourceCodeLine(int javaLineNumber) {
12921288
public String getJavaSourceCodeLine(int javaLineNumber) {
12931289
try {
12941290
PlainDocument javaSource = new PlainDocument();
1295-
javaSource.insertString(0, errorCheckerService.sourceCode, null);
1291+
javaSource.insertString(0, errorCheckerService.lastCodeCheckResult.sourceCode, null);
12961292
Element lineElement = javaSource.getDefaultRootElement()
12971293
.getElement(javaLineNumber - 1);
12981294
if (lineElement == null) {
@@ -1319,7 +1315,7 @@ public String getJavaSourceCodeLine(int javaLineNumber) {
13191315
public Element getJavaSourceCodeElement(int javaLineNumber) {
13201316
try {
13211317
PlainDocument javaSource = new PlainDocument();
1322-
javaSource.insertString(0, errorCheckerService.sourceCode, null);
1318+
javaSource.insertString(0, errorCheckerService.lastCodeCheckResult.sourceCode, null);
13231319
Element lineElement = javaSource.getDefaultRootElement()
13241320
.getElement(javaLineNumber - 1);
13251321
if (lineElement == null) {
@@ -1956,7 +1952,7 @@ protected void done() {
19561952
int pdeOffs[] = errorCheckerService
19571953
.calculateTabIndexAndLineNumber(javaLineNumber);
19581954
PlainDocument javaSource = new PlainDocument();
1959-
javaSource.insertString(0, errorCheckerService.sourceCode, null);
1955+
javaSource.insertString(0, errorCheckerService.lastCodeCheckResult.sourceCode, null);
19601956
Element lineElement = javaSource.getDefaultRootElement()
19611957
.getElement(javaLineNumber-1);
19621958
if(lineElement == null) {
@@ -2076,7 +2072,7 @@ protected void refactorIt(){
20762072
}
20772073
//else log("New name looks K.");
20782074

2079-
errorCheckerService.pauseThread();
2075+
errorCheckerService.cancel();
20802076
if(refactorTree.isVisible()){
20812077
refactorTree.setModel(new DefaultTreeModel(defCU));
20822078
((DefaultTreeModel) refactorTree.getModel()).reload();
@@ -2128,9 +2124,9 @@ protected void refactorIt(){
21282124
editor.getTextArea().setSelectedText(newName);
21292125
}
21302126
editor.stopCompoundEdit();
2131-
errorCheckerService.resumeThread();
2127+
errorCheckerService.request();
21322128
editor.getSketch().setModified(true);
2133-
errorCheckerService.runManualErrorCheck();
2129+
errorCheckerService.request();
21342130
// frmOccurenceList.setVisible(false);
21352131
frmRename.setVisible(false);
21362132
lastClickedWord = null;
@@ -3492,7 +3488,7 @@ public void actionPerformed(ActionEvent evt) {
34923488
editor.getSketch().setCurrentCode(0);
34933489
editor.getTextArea().getDocument().insertString(0, impString, null);
34943490
editor.getSketch().setCurrentCode(ct);
3495-
errorCheckerService.runManualErrorCheck();
3491+
errorCheckerService.request();
34963492
frmImportSuggest.setVisible(false);
34973493
frmImportSuggest = null;
34983494
} catch (BadLocationException e) {

‎java/src/processing/mode/java/pdex/ASTNodeWrapper.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,7 @@ public boolean highlightNode(JavaEditor editor){
555555
int javaLineNumber = getLineNumber(nodeName);
556556
int pdeOffs[] = editor.getErrorChecker().calculateTabIndexAndLineNumber(javaLineNumber);
557557
PlainDocument javaSource = new PlainDocument();
558-
javaSource.insertString(0, editor.getErrorChecker().sourceCode, null);
558+
javaSource.insertString(0, editor.getErrorChecker().lastCodeCheckResult.sourceCode, null);
559559
Element lineElement = javaSource.getDefaultRootElement()
560560
.getElement(javaLineNumber-1);
561561
if(lineElement == null) {

0 commit comments

Comments
 (0)