Ace: Есть ли способ получить все ошибки / предупреждения?

Созданный на 23 июн. 2011  ·  5Комментарии  ·  Источник: ajaxorg/ace

Мне очень нравится функция, которая отображает значки ошибок / предупреждений в буферной области слева от текстовой области. Однако я хотел бы получить коллекцию всех ошибок / предупреждений, чтобы я мог отображать их пользователю в виде списка. Я также хотел бы, чтобы эта коллекция содержала номер строки / столбца, чтобы я мог устанавливать положение курсора для каждой проблемы.

Я бы хотел что-то вроде:

var Errors = editor.getSession (). getErrors ();
var (var i = 0; i <Errors.length; i ++)
{
var Error = Ошибки [i];
// Error.LineNumber
// Error.ColumnNumber
// Ошибка. Описание
}

Самый полезный комментарий

Я создал для этой цели плагин в Cloud9, он называется acebugs и существует здесь:

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

Я не знал, рассматривали ли вы возможность расширения cloud9 или это было для личного проекта, но я хотел упомянуть об этом, чтобы вы не дублировали свои усилия. Вот как это выглядит:

AceBugs in Cloud9

Лучший,

Мэтт

Все 5 Комментарий

Данные называются annotations и вы можете получить их с помощью этого вызова:

редактор.getSession (). getAnnotations ()

Данные структурированы следующим образом:

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

Спасибо за быстрый ответ! Не могли бы вы привести мне пример того, как получить доступ к объекту, который возвращается для getAnnotations? Спасибо!

Возвращенный объект - это просто хеш-код. Выглядит это так:

this.$annotations = {};

Таким образом, хеш $ annotations может выглядеть так:

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

Вы можете перебирать ответ следующим образом:

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

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

Я создал для этой цели плагин в Cloud9, он называется acebugs и существует здесь:

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

Я не знал, рассматривали ли вы возможность расширения cloud9 или это было для личного проекта, но я хотел упомянуть об этом, чтобы вы не дублировали свои усилия. Вот как это выглядит:

AceBugs in Cloud9

Лучший,

Мэтт

Мэтт,

Благодарим за предоставленные образцы!

Я немного поигрался с Cloud9, но все еще ищу более личный проект. Проблема в том, что другой мой программист месяцами работал над редактором кода, и я подумал, что будет проще использовать что-то подобное, чем изобретать колесо.

-Майк

Была ли эта страница полезной?
0 / 5 - 0 рейтинги