ImguicolortextEdit
Sintaks Sorote Teks Editor untuk IMGUI

Proyek Demo: https://github.com/balazsjako/colortexteditordemo
Ini dimulai sebagai upaya saya untuk menulis widget yang relatif sederhana yang menyediakan fungsionalitas pengeditan teks dengan penyorotan sintaks. Sekarang ada kontributor lain yang memberikan tambahan yang berharga.
Meskipun bergantung pada Omar Cornut https://github.com/ocornut/imgui, itu tidak mengikuti pendekatan "murni" satu widget - satu fungsi. Karena editor harus mempertahankan keadaan internal yang relatif kompleks dan besar, tampaknya tidak praktis untuk mencoba dan menegakkan mode langsung sepenuhnya. Ia menyimpan keadaan internalnya dalam contoh objek yang digunakan kembali di seluruh bingkai.
Kode ini sedang dalam proses, silakan laporkan jika Anda menemukan masalah.
Fitur utama
- mendekati tampilan dan nuansa editor kode tipikal (perintah mouse/keyboard penting berfungsi - maksud saya, perintah yang biasanya saya gunakan :))
- undo/redo
- Dukungan UTF-8
- Bekerja dengan font diperbaiki dan lebar variabel
- Sorot sintaks yang dapat diperluas untuk beberapa bahasa
- Deklarasi Identifier: Sepotong kecil deskripsi dapat dikaitkan dengan pengidentifikasi. Editor menampilkannya di tooltip saat kursor mouse melayang di atas pengidentifikasi
- Penanda Kesalahan: Pengguna dapat menentukan daftar pesan kesalahan bersama -sama garis kejadian, editor akan menghambat garis -garis dengan latar belakang merah dan menampilkan pesan kesalahan di tooltip ketika kursor mouse dilayang di atas garis
- File Besar: Tidak ada batas eksplisit yang ditetapkan pada ukuran file atau jumlah baris (di bawah 2GB, kinerja tidak terpengaruh saat file besar dimuat (kecuali pewarnaan sintaks, lihat di bawah)
- Dukungan Palet Warna: Anda dapat beralih di antara palet warna yang berbeda, atau bahkan menentukan milik Anda sendiri
- Indikator Whitespace (tab, ruang)
Masalah yang diketahui
- Sintaks tinggi dari sebagian besar bahasa - kecuali C/C ++ - didasarkan pada std :: regex, yang sangat lambat. Karena itu, proses penyorotan diamortisasi di antara beberapa frame. C/C ++ memiliki tokenizer yang ditulis tangan yang jauh lebih cepat.
Silakan posting tangkapan layar Anda jika Anda menemukan perangkat lunak kecil ini berguna. :)
Menyumbang
Jika Anda ingin berkontribusi, silakan lihat file berkontribusi.