Мне очень нравится функция, которая отображает значки ошибок / предупреждений в буферной области слева от текстовой области. Однако я хотел бы получить коллекцию всех ошибок / предупреждений, чтобы я мог отображать их пользователю в виде списка. Я также хотел бы, чтобы эта коллекция содержала номер строки / столбца, чтобы я мог устанавливать положение курсора для каждой проблемы.
Я бы хотел что-то вроде:
var Errors = editor.getSession (). getErrors ();
var (var i = 0; i <Errors.length; i ++)
{
var Error = Ошибки [i];
// Error.LineNumber
// Error.ColumnNumber
// Ошибка. Описание
}
Данные называются 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 или это было для личного проекта, но я хотел упомянуть об этом, чтобы вы не дублировали свои усилия. Вот как это выглядит:
Лучший,
Мэтт
Мэтт,
Благодарим за предоставленные образцы!
Я немного поигрался с Cloud9, но все еще ищу более личный проект. Проблема в том, что другой мой программист месяцами работал над редактором кода, и я подумал, что будет проще использовать что-то подобное, чем изобретать колесо.
-Майк
Самый полезный комментарий
Я создал для этой цели плагин в Cloud9, он называется acebugs и существует здесь:
https://github.com/ajaxorg/cloud9/blob/devel/client/ext/acebugs/acebugs.js
Я не знал, рассматривали ли вы возможность расширения cloud9 или это было для личного проекта, но я хотел упомянуть об этом, чтобы вы не дублировали свои усилия. Вот как это выглядит:
Лучший,
Мэтт