Frage

Wie kann ich Syntaxfehler angeben (zB eine illegale Folge von Token) in einer Eclipse-Editor-Plugin wie in dem Eclipse-Java-Editor, dh durch rot wriggly Unterstreichungen, eine rote Markierung auf der Bildlaufleiste, die Sie springen können, und ein Erläuterungsmeldung, wenn Sie entweder über eine schweben?

Ich schreibe eine Eclipse-Editor-Plugin für ein benutzerdefiniertes Dateiformat (genauer gesagt, das „Schlange-Dateiformat“ der Shark3D Game-Engine). Ich habe einen Scanner zu bekommen Syntax-Hervorhebung durchgeführt, und eine Skizze.

  • Für die Unterstreichungen, nicht nur habe ich den Scanner ein IToken mit einem „wriggly unterstreicht“ TextAttribute anstelle der normalen zurückzukehren, oder gibt es einen speziellen Mechanismus auf Syntaxfehler Kennzeichnung?
  • Wie implementiere ich den Scrollbar Marker? Ist IAnnotationModel hier die entsprechende Schnittstelle? Wenn ja, wo melde ich mich an die Umsetzung, so dass die Markierungen erscheinen?
  • Ich habe festgestellt, nur SourceViewerConfiguration.getAnnotationHover(), die mir das Hover-Verhalten zu implementieren erlauben würde, aber nur für die „Anmerkung“, die ich die Scrollbar Markierungen annehmen bedeutet - wie das Hover-Verhalten für den Text selbst ich implementieren

ich spezifische Beratung glücklich sein würde, sowie eine URL ein Tutorial, dass diese umfasst -. Die Eclipse-Hilfe-Dokumente und Beispiele scheinen nicht zu

Edit: Marker sind die besten Lösungen für diese. Ein Arbeitsbeispiel, wie man sie benutzen kann im Plugin-Beispielcode in org.eclipse.ui.examples.readmetool.AddReadmeMarkerAction gefunden werden

War es hilfreich?

Lösung

Sie sollten mit Markierungen sein.

Ein Beispiel abgeleitet von "Der Führer des Java Developer Eclipse" folgt:

<extension point="org.eclipse.core.resources.markers"  
            id="snakesyntax"  
            name="Snake syntax error">  
    <super type="org.eclipse.core.resources.problemmarker" />  
    <super type="org.eclipse.core.resources.textmarker" />  
    <persistent value="true" />
<extension>

IMarker marker = res.createMarker("com.ibm.tool.resources.snakesyntax");

marker.setAttribute(IMarker.SEVERITY, 0);
marker.setAttribute(IMarker.CHAR_START, startOfSyntaxError);
marker.setAttribute(IMarker.CHAR_END, endOfSyntaxError);
marker.setAttribute(IMarker.LOCATION, "Snake file");
marker.setAttribute(IMarker.MESSAGE, "Syntax error");

Andere Tipps

Der richtige Weg ist mit der Marker-Schnittstelle.

Marker ist im Wesentlichen ein Modell, das Marker-Objekte an Orten in Ihrem Quellcode abbildet, so das macht Sinn in Situationen, in denen Sie Fehler in mehreren Dateien haben können. (Siehe IMarker Schnittstelle)

Eine billigere Option, wenn Sie Markup zu Ihrem aktuellen Editor hinzufügen möchten, aber nicht auf das ganze Projekt Annotations verwenden, die Sie ein selbst entfernen können hinzufügen.

Die Marker werden in der Benutzeroberfläche als Anmerkungen dargestellt, aber Eclipse-hinzufügt und entfernt die Anmerkungen selbst. Mit direkten Anmerkungen, haben Sie die Kontrolle.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top