Ace: Apakah ada cara untuk mendapatkan semua kesalahan/peringatan?

Dibuat pada 23 Jun 2011  ·  5Komentar  ·  Sumber: ajaxorg/ace

Saya sangat menyukai fitur yang menampilkan ikon kesalahan/peringatan di area buffer di sebelah kiri area teks. Namun, saya ingin mendapatkan kumpulan semua kesalahan/peringatan sehingga saya dapat menampilkannya kepada pengguna dalam daftar. Saya juga ingin koleksi ini berisi nomor baris/kolom sehingga saya dapat mengatur posisi kursor untuk setiap masalah.

Saya ingin sesuatu seperti:

var Kesalahan = editor.getSession().getErrors();
var (var i = 0; i < Errors.length; i ++)
{
var Kesalahan = Kesalahan[i];
// Error.LineNumber
// Kesalahan.Nomor Kolom
// Kesalahan.Deskripsi
}

Komentar yang paling membantu

Saya membuat plugin untuk tujuan ini di Cloud9, itu disebut acebugs dan ada di sini:

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

Saya tidak tahu apakah Anda mempertimbangkan untuk memperluas cloud9 atau apakah ini untuk proyek pribadi, tetapi saya ingin menyebutkannya sehingga Anda tidak akan menduplikasi upaya Anda. Ini adalah apa yang terlihat seperti:

AceBugs in Cloud9

Terbaik,

Matt

Semua 5 komentar

Data tersebut disebut annotations dan Anda dapat mengambilnya kembali dengan panggilan ini:

editor.getSession().getAnnotations()

Data disusun seperti ini:

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

Terima kasih atas respon cepatnya! Bisakah Anda memberi saya contoh tentang cara mengakses objek yang dikembalikan untuk getAnnotations? Terima kasih!

Objek yang dikembalikan hanyalah hash dari hash. Ini terlihat seperti ini:

this.$annotations = {};

Jadi hash $annotations mungkin terlihat seperti ini:

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

Anda dapat mengulangi respons seperti ini:

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

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

Saya membuat plugin untuk tujuan ini di Cloud9, itu disebut acebugs dan ada di sini:

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

Saya tidak tahu apakah Anda mempertimbangkan untuk memperluas cloud9 atau apakah ini untuk proyek pribadi, tetapi saya ingin menyebutkannya sehingga Anda tidak akan menduplikasi upaya Anda. Ini adalah apa yang terlihat seperti:

AceBugs in Cloud9

Terbaik,

Matt

mat,

Terima kasih telah menyediakan sampel!

Saya telah bermain-main dengan Cloud9 sedikit tetapi saya masih mencari lebih banyak proyek pribadi. Masalahnya dengan benar adalah bahwa programmer saya yang lain sedang mengerjakan editor kode selama berbulan-bulan dan saya pikir akan lebih mudah untuk menggunakan sesuatu seperti ini daripada menemukan kembali roda.

-Mike

Apakah halaman ini membantu?
0 / 5 - 0 peringkat