Ace: Existe-t-il un moyen d'obtenir toutes les erreurs/avertissements ?

Créé le 23 juin 2011  ·  5Commentaires  ·  Source: ajaxorg/ace

J'aime beaucoup la fonctionnalité qui affiche les icônes d'erreur/d'avertissement dans la zone tampon à gauche de la zone de texte. Cependant, je voudrais obtenir une collection de toutes les erreurs/avertissements afin de pouvoir les afficher à l'utilisateur dans une liste. J'aimerais également que cette collection contienne le numéro de ligne/colonne afin que je puisse définir la position du curseur sur chaque numéro.

Je voudrais quelque chose comme :

var Erreurs = editor.getSession().getErrors();
var (var i = 0; i < Errors.length; i ++)
{
var Erreur = Erreurs[i] ;
// Erreur.NuméroLigne
// Erreur.NuméroColonne
// Erreur de description
}

Commentaire le plus utile

J'ai créé un plugin à cet effet dans Cloud9, il s'appelle acebugs et il existe ici :

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

Je ne savais pas si vous envisagiez d'étendre cloud9 ou si c'était pour un projet personnel, mais je voulais le mentionner afin que vous ne dupliquiez pas vos efforts. Voilà à quoi ça ressemble :

AceBugs in Cloud9

Meilleur,

Mat

Tous les 5 commentaires

Les données sont appelées annotations et vous pouvez les récupérer avec cet appel :

editor.getSession().getAnnotations()

Les données sont structurées comme telles :

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

Merci pour la réponse rapide! Pourriez-vous s'il vous plaît me fournir un exemple sur la façon d'accéder à l'objet qui est renvoyé pour getAnnotations ? Merci!

L'objet renvoyé est simplement un hachage de hachages. Cela ressemble à ceci :

this.$annotations = {};

Ainsi, le hachage $annotations pourrait ressembler à ceci :

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

Vous pouvez itérer sur la réponse comme suit :

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

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

J'ai créé un plugin à cet effet dans Cloud9, il s'appelle acebugs et il existe ici :

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

Je ne savais pas si vous envisagiez d'étendre cloud9 ou si c'était pour un projet personnel, mais je voulais le mentionner afin que vous ne dupliquiez pas vos efforts. Voilà à quoi ça ressemble :

AceBugs in Cloud9

Meilleur,

Mat

Mat,

Merci d'avoir fourni les échantillons !

J'ai un peu joué avec Cloud9 mais je suis toujours à la recherche d'un projet plus personnel. Le problème étant à juste titre que mon autre programmeur travaillait sur un éditeur de code pendant des mois et j'ai pensé qu'il serait plus facile d'utiliser quelque chose comme ça au lieu de réinventer la roue.

-Mike

Cette page vous a été utile?
0 / 5 - 0 notes