Hi,
ich bin gerade dabei ein Plugin zu schreiben um JavaScript Files unmittelbar nach dem speichern mit Hilfe von JSLint4Java zu validieren. Das ganze ist schon soweit, das eine erste Version des Plugins über einen Rechtsklick auf eine JavaScript File den Menüpunkt diese mit JSLint4Java zu prüfen, bietet. D.h. das Auslösen von JSLint ist kein Problem.
Ich habe nun einen Resource Change Listener implementiert, welcher mir bescheid gibt, wenn eine ".js"-Datei gespeichert wurde. Daraus möchte ich nun die nötige Aurufkette starten um JSLint4Java zu starten.
Das erste Problem ist, die Resource, sprich die Datei die gespeichert wurde, ist während des Change Listeners-Prozesses gesperrt, d.h. das ganze direkt aus diesem Prozess aufrufen ist nicht.
Dann wollte ich mir Abhilfe damit schaffen einen Eclipse Job zu verwenden und der Change Listener Prozess startet den Job. Dieser wartet bis die Resource freigegeben ist und lässt dann alles nötige durchlaufen. Hierbei entsteht jedoch das Problem das der Job den Change Listener ca. 100x die Sekunde auslöst und dieser natürlich wiederum den Job, was nach wenigen Sekunden Eclipse komplett abstürzen lässt. Auch ein WorkspaceRunnable hat wegen gesperrter Resource nicht funktioniert.
Jetzt bin ich irgendwie am Ende meiner Ideen und habe mir hier Hilfe erhofft.
Schoneinmal vielen Dank fürs Lesen.
//edit:
Noch als kleiner Anhang. Wenn die Resource gesperrt ist ist das Hauptproblem folgendes:
Es werden alle Marker der File gelöscht und eben nach JSLint4Java-Kriterien neue gesetzt. Das verändert wohl Daten an der Datei selbst, was dem Workspace nicht so gefällt.
Viele Grüße
Websl
ich bin gerade dabei ein Plugin zu schreiben um JavaScript Files unmittelbar nach dem speichern mit Hilfe von JSLint4Java zu validieren. Das ganze ist schon soweit, das eine erste Version des Plugins über einen Rechtsklick auf eine JavaScript File den Menüpunkt diese mit JSLint4Java zu prüfen, bietet. D.h. das Auslösen von JSLint ist kein Problem.
Ich habe nun einen Resource Change Listener implementiert, welcher mir bescheid gibt, wenn eine ".js"-Datei gespeichert wurde. Daraus möchte ich nun die nötige Aurufkette starten um JSLint4Java zu starten.
Das erste Problem ist, die Resource, sprich die Datei die gespeichert wurde, ist während des Change Listeners-Prozesses gesperrt, d.h. das ganze direkt aus diesem Prozess aufrufen ist nicht.
Dann wollte ich mir Abhilfe damit schaffen einen Eclipse Job zu verwenden und der Change Listener Prozess startet den Job. Dieser wartet bis die Resource freigegeben ist und lässt dann alles nötige durchlaufen. Hierbei entsteht jedoch das Problem das der Job den Change Listener ca. 100x die Sekunde auslöst und dieser natürlich wiederum den Job, was nach wenigen Sekunden Eclipse komplett abstürzen lässt. Auch ein WorkspaceRunnable hat wegen gesperrter Resource nicht funktioniert.
Jetzt bin ich irgendwie am Ende meiner Ideen und habe mir hier Hilfe erhofft.
Schoneinmal vielen Dank fürs Lesen.
//edit:
Noch als kleiner Anhang. Wenn die Resource gesperrt ist ist das Hauptproblem folgendes:
Code:
file.deleteMarkers(JSLintActivator.MARKER_ID, true, IResource.DEPTH_INFINITE);
Viele Grüße
Websl
Zuletzt bearbeitet: