Keluaran Neovim 0.7.0, versi pemodenan editor Vim

Neovim 0.7.0 telah dikeluarkan, garpu editor Vim yang memfokuskan pada peningkatan kebolehlanjutan dan fleksibiliti. Projek ini telah mengolah semula asas kod Vim selama lebih daripada tujuh tahun, akibat daripada perubahan yang dibuat yang memudahkan penyelenggaraan kod, menyediakan cara membahagikan buruh antara beberapa penyelenggara, memisahkan antara muka dari bahagian asas (antara muka boleh berubah tanpa menyentuh bahagian dalam) dan melaksanakan seni bina baharu yang boleh diperluas berdasarkan pemalam. Perkembangan asal projek itu diedarkan di bawah lesen Apache 2.0, dan bahagian asas diedarkan di bawah lesen Vim. Himpunan siap sedia disediakan untuk Linux (appimage), Windows dan macOS.

Salah satu masalah dengan Vim yang mendorong penciptaan Neovim ialah asas kod monolitiknya yang kembung, yang terdiri daripada lebih daripada 300 ribu baris kod C (C89). Hanya beberapa orang yang memahami semua nuansa pangkalan kod Vim, dan semua perubahan dikawal oleh satu penyelenggara, yang menyukarkan untuk mengekalkan dan menambah baik editor. Daripada kod yang dibina ke dalam teras Vim untuk menyokong GUI, Neovim mencadangkan menggunakan lapisan universal yang membolehkan anda membuat antara muka menggunakan pelbagai kit alat.

Pemalam untuk Neovim dilancarkan sebagai proses berasingan, untuk interaksi dengan mana format MessagePack digunakan. Interaksi dengan pemalam dijalankan secara tidak segerak, tanpa menyekat komponen asas editor. Untuk mengakses pemalam, soket TCP boleh digunakan, i.e. pemalam boleh dijalankan pada sistem luaran. Pada masa yang sama, Neovim kekal serasi ke belakang dengan Vim, terus menyokong Vimscript (Lua ditawarkan sebagai alternatif) dan menyokong sambungan untuk kebanyakan pemalam Vim standard. Ciri lanjutan Neovim boleh digunakan dalam pemalam yang dibina menggunakan API khusus Neovim.

Pada masa ini, kira-kira 130 pemalam khusus telah disediakan, pengikatan tersedia untuk mencipta pemalam dan melaksanakan antara muka menggunakan pelbagai bahasa pengaturcaraan (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) dan rangka kerja (Qt, ncurses, Node .js, Electron, GTK). Beberapa pilihan antara muka pengguna sedang dibangunkan. Alat tambah GUI sama seperti pemalam, tetapi tidak seperti pemalam, ia memulakan panggilan ke fungsi Neovim, manakala pemalam dipanggil dari dalam Neovim.

Versi baharu menawarkan sokongan awal untuk kerja jauh, membolehkan anda menjalankan Neovim pada pelayan dan menyambung kepadanya daripada sistem klien menggunakan ui_client yang berasingan. Perubahan lain termasuk: sokongan untuk Python 2 telah dihentikan, penggunaan fungsi Lua dalam peta kunci telah dibenarkan, arahan baharu telah ditambahkan pada API, keupayaan untuk menggunakan bahasa Lua untuk membangunkan pemalam dan pengurusan konfigurasi telah diperluaskan dengan ketara, alat untuk mendiagnosis masalah dalam kod telah dipertingkatkan, sokongan untuk bar status global telah ditambah, pengoptimuman prestasi telah dijalankan. Keupayaan klien LSP terbina dalam (Protokol Pelayan Bahasa) telah diperluaskan, yang boleh digunakan untuk memindahkan logik analisis dan penyelesaian kod ke pelayan luaran.

Sumber: opennet.ru

Tambah komen