Rilis Neovim 0.6.0, versi modern dari editor Vim

Neovim 0.6.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.

Beberapa perubahan pada versi baru:

  • Dukungan untuk variabel lokal telah ditambahkan ke skrip vim, yang cakupannya hanya dibatasi oleh skrip saat ini.
  • Dukungan bahasa Lua yang ditingkatkan secara signifikan untuk pengembangan plugin dan manajemen konfigurasi. Dalam skrip vim, kemampuan untuk memanggil fungsi Lua sebagai metode telah ditambahkan dengan menentukan awalan v:lua (misalnya, β€œarg1->v:lua.somemod.func(arg2)”).
  • Kemampuan klien LSP bawaan (Protokol Server Bahasa) telah diperluas, yang dapat digunakan untuk mentransfer logika analisis dan penyelesaian kode ke server eksternal. Penggunaan LSP memungkinkan Anda untuk menggunakan lebih dari 150 penangan siap pakai untuk berbagai bahasa pemrograman yang disiapkan untuk editor Visual Studio Code.
  • Alat yang ditingkatkan untuk mendiagnosis masalah dalam kode. Menambahkan kemampuan untuk menampilkan teks pesan diagnostik dan jendela mengambang dengan kode yang terkait dengan pesan tersebut. Pemrosesan pesan diagnostik yang dikirimkan oleh server LSP disediakan.
  • Menambahkan dukungan untuk string virtual, yang dapat digunakan, misalnya, untuk menampilkan blok dengan informasi layanan.
  • Berbagai optimasi kinerja telah dilakukan, misalnya tabel hash diaktifkan untuk nama grup yang disorot.
  • Dukungan untuk Windows 7 dan Windows versi 32-bit telah dihentikan.

Sumber: opennet.ru

Tambah komentar