Rilis Neovim 0.7.0, versi modern dari editor Vim

Neovim 0.7.0 telah dirilis, sebuah cabang dari editor Vim yang berfokus pada peningkatan ekstensibilitas dan fleksibilitas. Proyek ini telah mengerjakan ulang basis kode Vim selama lebih dari tujuh tahun, sebagai akibatnya dilakukan perubahan yang menyederhanakan pemeliharaan kode, menyediakan sarana membagi tenaga kerja antara beberapa pengelola, memisahkan antarmuka dari bagian dasar (antarmuka dapat berupa diubah tanpa menyentuh bagian internal) dan menerapkan arsitektur baru yang dapat diperluas berdasarkan plugin. Pengembangan asli proyek ini didistribusikan di bawah lisensi Apache 2.0, dan bagian dasarnya didistribusikan di bawah lisensi Vim. Rakitan siap pakai disiapkan untuk Linux (appimage), Windows dan macOS.

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.

Saat ini, sekitar 130 plugin spesifik telah disiapkan, tersedia binding untuk membuat plugin dan mengimplementasikan antarmuka menggunakan berbagai bahasa pemrograman (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) dan framework (Qt, kutukan, Node .js, Elektron, GTK). Beberapa opsi antarmuka pengguna sedang dikembangkan. Add-on GUI sangat mirip dengan plugin, tetapi tidak seperti plugin, add-on ini memulai panggilan ke fungsi Neovim, sementara plugin dipanggil dari dalam Neovim.

Versi baru ini menawarkan dukungan awal untuk pekerjaan jarak jauh, memungkinkan Anda menjalankan Neovim di server dan menyambungkannya dari sistem klien menggunakan ui_client terpisah. Perubahan lainnya termasuk: dukungan untuk Python 2 telah dihentikan, penggunaan fungsi Lua di keymap telah diizinkan, perintah baru telah ditambahkan ke API, kemampuan untuk menggunakan bahasa Lua untuk mengembangkan plugin dan manajemen konfigurasi telah diperluas secara signifikan, alat untuk mendiagnosis masalah dalam kode telah ditingkatkan, dukungan untuk bilah status global telah ditambahkan, dan optimalisasi kinerja telah dilakukan. Kemampuan klien LSP bawaan (Protokol Server Bahasa) telah diperluas, yang dapat digunakan untuk mentransfer logika analisis dan penyelesaian kode ke server eksternal.

Sumber: opennet.ru

Tambah komentar