@@ -235,7 +235,6 @@ public ErrorCheckerService(JavaEditor debugEditor) {
235235 astGenerator = new ASTGenerator (this );
236236 errorMsgSimplifier = new ErrorMessageSimplifier ();
237237 tempErrorLog = new TreeMap <>();
238- sketchChangedListener = new SketchChangedListener ();
239238// for (final SketchCode sc : editor.getSketch().getCode()) {
240239// sc.getDocument().addDocumentListener(sketchChangedListener);
241240// }
@@ -287,16 +286,16 @@ public void run() {
287286 try {
288287
289288 Messages .log ("Starting error check" );
290- lastCodeCheckResult = checkCode ();
289+ CodeCheckResult result = checkCode ();
291290
292291 if (!JavaMode .errorCheckEnabled ) {
293292 lastCodeCheckResult .problems .clear ();
294293 Messages .log ("Error Check disabled, so not updating UI." );
295294 }
296295
297- checkForMissingImports () ;
296+ lastCodeCheckResult = result ;
298297
299- updateSketchCodeListeners ( );
298+ checkForMissingImports ( lastCodeCheckResult );
300299
301300 if (JavaMode .errorCheckEnabled ) {
302301 if (scheduledUiUpdate != null ) {
@@ -319,7 +318,6 @@ public void run() {
319318 editor .updateErrorBar (result .problems );
320319 editor .getTextArea ().repaint ();
321320 editor .updateErrorToggle (result .containsErrors );
322- updateSketchCodeListeners ();
323321 }
324322 });
325323 }
@@ -375,35 +373,15 @@ public void request() {
375373 }
376374
377375
378- protected void updateSketchCodeListeners () {
379- for (SketchCode sc : editor .getSketch ().getCode ()) {
380- SyntaxDocument doc = (SyntaxDocument ) sc .getDocument ();
381- if (!hasSketchChangedListener (doc )) {
382- doc .addDocumentListener (sketchChangedListener );
383- }
384- }
376+ public void addListener (Document doc ) {
377+ doc .addDocumentListener (sketchChangedListener );
385378 }
386379
387380
388- boolean hasSketchChangedListener (SyntaxDocument doc ) {
389- if (doc != null && doc .getDocumentListeners () != null ) {
390- for (DocumentListener dl : doc .getDocumentListeners ()) {
391- if (dl .equals (sketchChangedListener )) {
392- return true ;
393- }
394- }
395- }
396- return false ;
397- }
398-
399-
400- protected void checkForMissingImports () {
401- // Atomic access
402- CodeCheckResult lastCodeCheckResult = this .lastCodeCheckResult ;
403-
381+ protected void checkForMissingImports (CodeCheckResult result ) {
404382 if (Preferences .getBoolean (JavaMode .SUGGEST_IMPORTS_PREF )) {
405- for (Problem p : lastCodeCheckResult .problems ) {
406- if (p .getIProblem ().getID () == IProblem .UndefinedType ) {
383+ for (Problem p : result .problems ) {
384+ if (p .getIProblem ().getID () == IProblem .UndefinedType ) {
407385 String args [] = p .getIProblem ().getArguments ();
408386 if (args .length > 0 ) {
409387 String missingClass = args [0 ];
@@ -423,37 +401,22 @@ public ASTGenerator getASTGenerator() {
423401 }
424402
425403
426- protected SketchChangedListener sketchChangedListener ;
427- protected class SketchChangedListener implements DocumentListener {
428-
429- private SketchChangedListener (){
430- }
431-
404+ protected final DocumentListener sketchChangedListener = new DocumentListener () {
432405 @ Override
433406 public void insertUpdate (DocumentEvent e ) {
434- if (JavaMode .errorCheckEnabled ) {
435- request ();
436- //log("doc insert update, man error check..");
437- }
407+ if (JavaMode .errorCheckEnabled ) request ();
438408 }
439409
440410 @ Override
441411 public void removeUpdate (DocumentEvent e ) {
442- if (JavaMode .errorCheckEnabled ){
443- request ();
444- //log("doc remove update, man error check..");
445- }
412+ if (JavaMode .errorCheckEnabled ) request ();
446413 }
447414
448415 @ Override
449416 public void changedUpdate (DocumentEvent e ) {
450- if (JavaMode .errorCheckEnabled ){
451- request ();
452- //log("doc changed update, man error check..");
453- }
417+ if (JavaMode .errorCheckEnabled ) request ();
454418 }
455-
456- }
419+ };
457420
458421 public static class CodeCheckResult {
459422
0 commit comments