studio Consola Eclipse: detecta patrones de advertencia y error y haz que se puedan hacer clic




manual android studio avanzado (4)

Estoy ejecutando el compilador flexible (mxmlc) desde el interior del eclipse para algunas de nuestras compilaciones (también están diseñadas para ejecutarse en nuestro servidor de integración continua, es por eso que no construyo utilizando el propio constructor de flex) - los patrones de mxmlc no son reconocidos por eclipse-console, por lo que no puedo hacer clic en ellos.

Los patrones son así:

<ruta de acceso absoluta al archivo> (<línea no>): col: <columna no> Advertencia: <mensaje>

No debería ser tan difícil encontrar una expresión regular para detectar estos mensajes.

¿Cómo obtengo eclipse para reconocer un nuevo tipo de mensaje de error? ¿Tengo que programar mi propia extensión o hay algún tipo de soporte general en el que pueda agregar una expresión regular a la configuración?

También podría intentar hacer que los errores se traduzcan a algo que se parece a los errores de Java, pero prefiero que Eclipse reconozca los errores de mxmlc.



EDITAR: Encontré un complemento que hace esto con un aspecto un poco más: Sunshade Errorlink (desplácese un poco hacia abajo). No estoy seguro de cuán flexible es esto, pero menciona el soporte de hormigas.

Sé que probablemente quieras una implementación real, pero aquí hay un punto de partida bastante complicado para un diseño para el complemento que deseas. Si alguien tiene ganas de implementarlo, por favor ponga un enlace aquí para señalarlo. Podría hacerlo yo mismo si tengo tiempo libre (¡ja!) :)

Suponiendo que la consola se basa en TextConsole, lo que parece razonable, la especificación dice:

Una consola de texto abstracta que admite la coincidencia de expresiones regulares y los hipervínculos.

Los oyentes de coincidencia de patrón se pueden registrar mediante una consola mediante programación o mediante el punto de extensión org.eclipse.ui.console.consolePatternMatchListeners .

Lo busqué un poco más, y la especificación para ese punto de extensión tiene el siguiente ejemplo:

<extension point="org.eclipse.ui.console.consolePatternMatchListener">
  <consolePatternMatchListener
    class="com.example.ExampleConsolePatternMatcher"
    id="com.example.ExampleConsolePatternMatcher"
    regex=".*foo.*">
    <enablement>
      <test 
        property="org.eclipse.ui.console.consoleTypeTest"
        value="exampleConsole"/>
    </enablement>
  </consolePatternMatchListener>
</extension>

Querrá la API de IPatternMatchListenerDelegate y podrá usar TextConsole.addHyperlink para crear el enlace que desee.


@zvikico me hizo investigar más la Consola Grep: ¡puede configurarse para hacer enlaces clicables!

Enlace actual: http://marian.schedenig.name/projects/grep-console/ - puede instalarlo con Eclipse-Marketplace

Para obtener enlaces clicables, uno tiene que hacer esto:

  1. Instalar Grep Console (estoy usando 3.7.0)
  2. Agregue una nueva Expresión (el ícono (?) En la Vista de la Consola) para su Archivo / URL, asegúrese de que su expresión regular capture solo el Archivo / Enlace o que tenga un grupo de captura () para que coincida solo con el Archivo / Enlace

    FFDC-Vorfall an (.*\.txt)

    coincidirá con Salidas de consola como esta:

    FfdcProvider logIncident FFDC1003I: FFDC-Vorfall an C:\server1_e2f9557d_16.01.20_12.54.37.4484801293756887191925.txt erstellt.

  3. En la pestaña Estilos y enlaces de esta Expresión, haga doble clic en las celdas "Enlace" de su Línea completa o Grupo de captura.

  4. Elija Archivo o URL

  5. En el campo de Entrada para Archivo / URL, use {line} o {1} para el primer Grupo. Grep Console usará ese valor.

  6. (Opcional) Haga un estilo como azul subrayado, para que los enlaces estén resaltados

  7. Para abrir un archivo / enlace, debe mantener presionada la tecla CTRL (se puede cambiar en las opciones) y hacer clic en ella

ver: Estilos y enlaces y cadenas de patrones de la documentación


He llegado a esta pregunta varios años después, deseando hacer este tipo de cosas con Eclipse CDT. Sunshade Errorlink no parece funcionar en mi versión de Eclipse (que es 4.4.0). Por lo tanto, he creado un plugin simple y poco profesional que parece resolver el problema de manera adecuada para mí. Lo puse en GitHub por si alguien más quisiera ahorrarse una molestia similar, o para usar mi código como referencia: https://github.com/mjwach/ErrorLinkyThing





design-patterns