HeadlinesBriefing favicon HeadlinesBriefing.com

Membuat Editor Teks Kustom dari Nol

Hacker News •
×

Terinspirasi oleh frustrasi terhadap kualitas perangkat lunak modern dan perasaan 'They don't make 'em like Sublime Text anymore', penulis memulai perjalanan untuk membuat editor teks kustom. Perjalanan ini mengeksplorasi tiga pendekatan rendering: <canvas>, contenteditable, dan <textarea>.

Eksperimen awal dengan <canvas> mencapai rendering 60–120 FPS tetapi kurang interaktivitas asli. Implementasi fitur dasar seperti penempatan kursor, mengetik, dan penyorotan baris mengungkapkan kebutuhan esensial yang hilang: pemilihan teks, undo/redo, dan scroll overflow. Solusi hibrid menggunakan <div> tersembunyi untuk perhitungan scroll asli meningkatkan scroll, tetapi <canvas> tetap secara fundamental tidak dapat diakses.

Beralih ke contenteditable="plaintext-only" memberikan pilihan asli, riwayat undo, dan aksesibilitas secara gratis. API Seleksi mengaktifkan rendering kursor kustom, meskipun performanya menurun secara tidak terduka dengan file yang lebih besar, terutama di Chromium.

Akhirnya, pendekatan <textarea> terbukti jauh lebih performant untuk teks panjang. Penyorotan sintaksis ditambahkan melalui lapisan ketiga menggunakan Micro Lighter, meskipun API Rentang Opaque baru mungkin memungkinkan sorotan asli. Penulis mencatat bahwa Tree-sitter dan scroll virtual dapat meningkatkan keandalannya, tetapi mengakui bahwa demonstrasi saat ini mewakili "90% editor teks dengan 1% fitur".

Entitas Utama: Perusahaan: Apple, Chromium, Web Kit, Firefox