Dalam kerangka proyek Neovim, basis kode Vim telah dikerjakan ulang selama lebih dari lima tahun, sebagai akibatnya dilakukan perubahan yang menyederhanakan pemeliharaan kode, menyediakan sarana untuk membagi tenaga kerja antara beberapa pengelola, memisahkan antarmuka dari bagian dasar (antarmuka dapat diubah tanpa menyentuh bagian dalam) dan mengimplementasikan yang baru
Salah satu masalah Vim yang mendorong pembuatan Neovim adalah basis kode monolitiknya yang membengkak, terdiri dari lebih dari 300 ribu baris kode C (C89). Hanya sedikit orang yang memahami semua nuansa basis kode Vim, dan semua perubahan dikendalikan oleh satu pengelola, sehingga menyulitkan pemeliharaan dan peningkatan editor. Alih-alih kode yang dibangun ke dalam inti Vim untuk mendukung GUI, Neovim mengusulkan penggunaan lapisan universal yang memungkinkan Anda membuat antarmuka menggunakan berbagai toolkit.
Plugin untuk Neovim diluncurkan sebagai proses terpisah, untuk interaksi yang menggunakan format MessagePack. Interaksi dengan plugin dilakukan secara asinkron, tanpa memblokir komponen dasar editor. Untuk mengakses plugin, soket TCP dapat digunakan, mis. plugin dapat dijalankan pada sistem eksternal. Pada saat yang sama, Neovim tetap kompatibel dengan Vim, terus mendukung Vimscript (Lua ditawarkan sebagai alternatif) dan mendukung koneksi untuk sebagian besar plugin Vim standar. Fitur-fitur canggih Neovim dapat digunakan dalam plugin yang dibuat menggunakan API khusus Neovim.
Sudah saat ini
Beberapa perubahan di
- Menambahkan sebagian besar fungsi API dan peristiwa antarmuka pengguna baru.
- Menambahkan perpustakaan standar baru Nvim-Lua untuk mengembangkan plugin dalam bahasa Lua.
- Pengembangan protokol antarmuka pengguna terus berlanjut, memperbarui informasi di layar pada tingkat garis, bukan karakter individual.
- Menambahkan dukungan untuk jendela mengambang penuh, yang dapat ditempatkan di lokasi mana pun, dilampirkan, ditautkan ke buffer pengeditan individual, dan dikelompokkan dalam mode Multigrid.
- Menambahkan opsi 'pumblend' untuk menu tarik-turun yang tembus cahaya.
Sumber: opennet.ru