Domanda

Come posso indicare errori di sintassi (ad es.una sequenza illegale di token) in un plugin dell'editor di eclipse proprio come nell'editor Java di eclipse, ad es.da sottolineature rosse sinuose, un indicatore rosso sulla barra di scorrimento a cui puoi saltare e un messaggio esplicativo quando passi il mouse sopra uno dei due?

Sto scrivendo un plugin per l'editor di Eclipse per un formato di file personalizzato (in particolare, il "formato di file serpente" del motore di gioco Shark3D).Ho implementato uno scanner per ottenere l'evidenziazione della sintassi e uno schema.

  • Per le sottolineature, faccio semplicemente restituire allo scanner un file IToken con una "sottolineatura storta" TextAttribute invece di quello normale, oppure esiste un meccanismo specifico per contrassegnare gli errori di sintassi?
  • Come implemento i marcatori della barra di scorrimento?È IAnnotationModel l'interfaccia pertinente qui?In tal caso, dove registro l'implementazione in modo che vengano visualizzati i marcatori?
  • ho solo trovato SourceViewerConfiguration.getAnnotationHover(), che mi consentirebbe di implementare il comportamento al passaggio del mouse, ma solo per la "annotazione", che suppongo significhi i marcatori della barra di scorrimento: come posso implementare il comportamento al passaggio del mouse per il testo stesso?

Sarei felice di ricevere consigli specifici e un URL di un tutorial che copra questo argomento: i documenti e gli esempi della guida di Eclipse non sembrano farlo.

Modificare:I marcatori sono la soluzione migliore a questo.Un esempio funzionante di come utilizzarli può essere trovato nel codice di esempio del plugin in org.eclipse.ui.examples.readmetool.AddReadmeMarkerAction

È stato utile?

Soluzione

Si dovrebbe essere utilizzando marcatori.

Un esempio derivato dalla "Guida per gli sviluppatori Java per Eclipse" segue:

<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");

Altri suggerimenti

Il modo corretto è utilizzare l'interfaccia del marcatore.

I marcatori sono essenzialmente un modello che mappa gli oggetti marcatori in posizioni nel codice sorgente, quindi questo ha senso in situazioni in cui possono verificarsi errori in più file.(vedi l'interfaccia IMarker)

Un'opzione più economica se desideri aggiungere markup al tuo editor corrente ma non a tutto il progetto è utilizzare le Annotazioni, che puoi aggiungere e rimuovere tu stesso.

I marcatori sono rappresentati nell'interfaccia utente come annotazioni ma Eclipse aggiunge e rimuove le annotazioni stesse.Con le annotazioni dirette, hai il controllo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top