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
}
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:
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
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:
Terbaik,
Matt