Ace: ¿Hay alguna forma de obtener todos los errores / advertencias?

Creado en 23 jun. 2011  ·  5Comentarios  ·  Fuente: ajaxorg/ace

Me gusta mucho la función que muestra los iconos de error / advertencia en el área del búfer a la izquierda del área de texto. Sin embargo, me gustaría obtener una colección de todos los errores / advertencias para poder mostrarlos al usuario en una lista. También me gustaría que esta colección contenga el número de línea / columna para poder establecer la posición del cursor en cada problema.

Me gustaria algo como:

var Errores = editor.getSession (). getErrors ();
var (var i = 0; i <Error.length; i ++)
{
var Error = Errores [i];
// Error.LineNumber
// Error.ColumnNumber
// Error de descripción
}

Comentario más útil

Creé un complemento para este propósito en Cloud9, se llama acebugs y existe aquí:

https://github.com/ajaxorg/cloud9/blob/devel/client/ext/acebugs/acebugs.js

No sabía si estaba considerando extender cloud9 o si esto era para un proyecto personal, pero quería mencionarlo para que no duplicara sus esfuerzos. Esto es lo que parece:

AceBugs in Cloud9

Mejor,

Mate

Todos 5 comentarios

Los datos se llaman annotations y puede recuperarlos con esta llamada:

editor.getSession (). getAnnotations ()

Los datos están estructurados como tales:

/**
 * Error:
 *  {
 *    row: 12,
 *    column: 2, //can be undefined
 *    text: "Missing argument",
 *    type: "error" // or "warning" or "info"
 *  }
 */

¡Gracias por la rápida respuesta! ¿Podría darme un ejemplo sobre cómo acceder al objeto que se devuelve para getAnnotations? ¡Gracias!

El objeto devuelto es simplemente un hash de hash. Se parece a esto:

this.$annotations = {};

Por lo tanto, el hash de $ annotations podría verse así:

{
    {
        row: 12,
        column: 2, //can be undefined
        text: "Missing argument",
        type: "error" // or "warning" or "info"
    },
    {
        row: 32,
        text: "Missing semicolon",
        type: "warning"
    },
    // etc
}

Puede iterar sobre la respuesta así:

var annotations = editor.getSession().getAnnotations();

for (var anno in annotations) {
     // anno.row, anno.column, anno.text, anno.type
}

Creé un complemento para este propósito en Cloud9, se llama acebugs y existe aquí:

https://github.com/ajaxorg/cloud9/blob/devel/client/ext/acebugs/acebugs.js

No sabía si estaba considerando extender cloud9 o si esto era para un proyecto personal, pero quería mencionarlo para que no duplicara sus esfuerzos. Esto es lo que parece:

AceBugs in Cloud9

Mejor,

Mate

Mate,

¡Gracias por proporcionar las muestras!

He jugado un poco con Cloud9 pero todavía estoy buscando un proyecto más personal. El problema es que mi otro programador estuvo trabajando en un editor de código durante meses y pensé que sería más fácil usar algo como esto en lugar de reinventar la rueda.

-Miguel

¿Fue útil esta página
0 / 5 - 0 calificaciones