Neovim 0.5 tersedia, versi pemodenan editor Vim

Selepas hampir dua tahun pembangunan, Neovim 0.5 telah dikeluarkan, garpu editor Vim 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 diubah tanpa menyentuh bahagian dalam) dan melaksanakan seni bina boleh diperluaskan baharu berdasarkan pemalam. Perkembangan asal projek itu diedarkan di bawah lesen Apache 2.0, dan bahagian asas diedarkan di bawah lesen Vim.

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:

  • Menambah klien LSP terbina dalam (Protokol Pelayan Bahasa) dalam Lua, yang boleh digunakan untuk menyambung ke perkhidmatan luaran untuk analisis dan penyiapan kod.
  • Menambah API untuk mengawal reka bentuk penimbal peruntukan.
  • Menambahkan API untuk menggunakan teg lanjutan untuk menjejak perubahan pada tahap bait.
  • Sokongan yang diperluaskan untuk Lua sebagai bahasa untuk pembangunan pemalam dan pengurusan konfigurasi.
  • Menambah sokongan percubaan untuk enjin penghuraian pengasuh pokok.

Sumber: opennet.ru

Tambah komen