I plug-in possono anche definire le risoluzioni degli indicatori in modo che questi ultimi possano partecipare alla funzione Correzione rapida... del workbench. Gli utenti possono selezionare un indicatore e scegliere Correzione rapida... dal menu di scelta rapida se è stata aggiunta una risoluzione per l'indicatore.
Le risoluzioni degli indicatori vengono aggiunte utilizzando il punto di estensione org.eclipse.ui.markerResolution. Questo punto di estensione consente ai plug-in di associare una classe che implementa IMarkerResolutionGenerator con un particolare tipo di indicatore specifico. È possibile qualificare l'indicatore soltanto in base al tipo, oppure anche in base al valore di uno o più attributi. Lo strumento readme dichiara diverse risoluzioni degli indicatori:
<extension point="org.eclipse.ui.markerResolution"> <markerResolutionGenerator class="org.eclipse.ui.examples.readmetool.ReadmeMarkerResolutionGenerator" markerType="org.eclipse.ui.examples.readmetool.readmemarker"> <attribute name="org.eclipse.ui.examples.readmetool.id" value= "1234"/> </markerResolutionGenerator> <markerResolutionGenerator class="org.eclipse.ui.examples.readmetool.ReadmeMarkerResolutionGenerator" markerType="org.eclipse.ui.examples.readmetool.readmemarker"> <attribute name="org.eclipse.ui.examples.readmetool.level" value= "7"/> </markerResolutionGenerator> <markerResolutionGenerator class="org.eclipse.ui.examples.readmetool.ReadmeMarkerResolutionGenerator" markerType="org.eclipse.ui.examples.readmetool.readmemarker"> <attribute name="org.eclipse.ui.examples.readmetool.code" value= "red"/> <attribute name="org.eclipse.ui.examples.readmetool.language" value= "english"/> </markerResolutionGenerator> </extension>
Ciascun generatore di risoluzione dell'indicatore viene definito per il tipo di indicatore readme, ma associato a una diversa combinazione di valori degli attributi. Il primo generatore di risoluzione dell'indicatore verrà utilizzato per indicatori il cui attributo id è impostato su "1234". In questo esempio specifico, lo strumento readme utilizza la stessa risoluzione dell'indicatore in tutti i casi. Non è una situazione tipica, ma ha senso nel caso in cui sia disponibile una sola risoluzione per combinazioni o valori degli attributi specifici.
Il generatore di risoluzione dell'indicatore determina la restituzione di una matrice di risoluzioni di indicatori (IMarkerResolution) che verrà visualizzata nella finestra di dialogo Correzione rapida.... La risoluzione sarà run() se l'utente la selezionerà nella finestra di dialogo. Qui di seguito è riportata l'implementazione da ReadmeMarkerResolutionGenerator:
public class ReadmeMarkerResolutionGenerator implements IMarkerResolutionGenerator { public IMarkerResolution[] getResolutions(IMarker marker) { return new IMarkerResolution[] {new AddSentenceResolution()}; } }
AddSentenceResolution definisce l'etichetta della finestra di dialogo della risoluzione e implementa la risoluzione stessa.