Keluaran Neovim 0.6.0, versi pemodenan editor Vim

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

Beberapa perubahan dalam versi baharu:

  • Sokongan untuk pembolehubah tempatan telah ditambahkan pada skrip vim, yang skopnya hanya dihadkan oleh skrip semasa.
  • Sokongan bahasa Lua yang dipertingkatkan dengan ketara untuk pembangunan pemalam dan pengurusan konfigurasi. Dalam skrip vim, keupayaan untuk memanggil fungsi Lua sebagai kaedah telah ditambahkan dengan menentukan awalan v:lua (contohnya, β€œarg1->v:lua.somemod.func(arg2)”).
  • Keupayaan klien LSP terbina dalam (Protokol Pelayan Bahasa) telah diperluaskan, yang boleh digunakan untuk memindahkan logik analisis dan penyelesaian kod ke pelayan luaran. Penggunaan LSP membolehkan anda menggunakan lebih daripada 150 pengendali sedia untuk pelbagai bahasa pengaturcaraan yang disediakan untuk editor Kod Visual Studio.
  • Alat yang dipertingkatkan untuk mendiagnosis masalah dalam kod. Menambahkan keupayaan untuk memaparkan teks mesej diagnostik dan tetingkap terapung dengan kod yang dikaitkan dengan mesej sedemikian. Pemprosesan mesej diagnostik yang dihantar oleh pelayan LSP disediakan.
  • Menambah sokongan untuk rentetan maya, yang boleh digunakan, sebagai contoh, untuk memaparkan blok dengan maklumat perkhidmatan.
  • Pelbagai pengoptimuman prestasi telah dibuat, contohnya, jadual cincang didayakan untuk nama kumpulan yang diserlahkan.
  • Sokongan untuk binaan Windows 7 dan 32-bit Windows telah dihentikan.

Sumber: opennet.ru

Tambah komen