Pregunta

¿Cómo puedo indicar errores de sintaxis (por ejemplo, una secuencia ilegal de fichas) en un plugin de editor de Eclipse al igual que en el eclipse editor de Java, es decir, por subrayados wriggly rojas, un marcador rojo en la barra de desplazamiento que puede saltar a, y una mensaje explicativo cuando se pasa sobre cualquiera de ellos?

Estoy escribiendo un plugin de editor de Eclipse para un formato de archivo personalizado (en concreto, el "formato de archivo de serpiente" del motor del juego Shark3D). He implementado un escáner para obtener el resaltado de sintaxis, y un esbozo.

  • Para los subrayados, puedo simplemente tienen el escáner devolver un IToken con un TextAttribute "wriggly subrayado" en vez de la normal, o hay un mecanismo específico para marcar los errores de sintaxis?
  • ¿Cómo implementar los marcadores de la barra de desplazamiento? Se IAnnotationModel la interfaz relevante aquí? Si es así, ¿por dónde registrar la aplicación para que aparezcan los marcadores?
  • Sólo he encontrado SourceViewerConfiguration.getAnnotationHover(), que me permitiera implementar el comportamiento estacionario, pero sólo para la "anotación", que supongo que significa que los marcadores de la barra de desplazamiento - ¿Cómo se implementa el comportamiento estacionario para el propio texto

Sería feliz asesoramiento específico, así como una dirección URL de un tutorial que cubre esta -. Los documentos y ejemplos de ayuda de Eclipse no parecen

Editar Los marcadores son las mejores soluciones a este. Un ejemplo práctico de cómo usarlos se puede encontrar en el código plugin de ejemplo en org.eclipse.ui.examples.readmetool.AddReadmeMarkerAction

¿Fue útil?

Solución

Usted debe ser el uso de marcadores.

Un ejemplo derivado de "La Guía del Desarrollador Java en Eclipse" sigue:

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

Otros consejos

La forma correcta está utilizando la interfaz de marcador.

Los marcadores son esencialmente un modelo que mapea objetos marcadores a lugares en su código fuente, por lo que esto tiene sentido en situaciones en las que puede tener errores en varios archivos. (Ver la interfaz IMarker)

Una opción más barata si desea añadir marcado a su editor actual, pero no a todo el proyecto está utilizando anotaciones, que puede agregar un darse de baja.

Los marcadores están representados en la interfaz de usuario como anotaciones, pero Eclipse añade y elimina las propias anotaciones. Con anotaciones directas, usted está en control.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top