Neovim 0.4, versi modern dari editor Vim, tersedia

diterbitkan melepaskan Neovim 0.4, sebuah garpu dari editor Vim, fokus pada peningkatan ekstensibilitas dan fleksibilitas. Perkembangan asli proyek sebaran di bawah lisensi Apache 2.0, dan bagian dasar di bawah lisensi Vim.

Dalam kerangka proyek Neovim, basis kode Vim telah dikerjakan ulang selama lebih dari lima tahun, sebagai akibatnya dilakukan perubahan yang menyederhanakan pemeliharaan kode, menyediakan sarana untuk membagi tenaga kerja antara beberapa pengelola, memisahkan antarmuka dari bagian dasar (antarmuka dapat diubah tanpa menyentuh bagian dalam) dan mengimplementasikan yang baru arsitektur yang dapat diperluas berdasarkan plugin.

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.

Sudah saat ini siap sekitar 80 plugin spesifik, binding tersedia untuk membuat plugin dan mengimplementasikan antarmuka menggunakan berbagai bahasa pemrograman (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) dan kerangka kerja (Qt5, ncurses, 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 di versi baru:

  • Menambahkan sebagian besar fungsi API dan peristiwa antarmuka pengguna baru.
  • Menambahkan perpustakaan standar baru Nvim-Lua untuk mengembangkan plugin dalam bahasa Lua.
  • Pengembangan protokol antarmuka pengguna terus berlanjut, memperbarui informasi di layar pada tingkat garis, bukan karakter individual.
  • Menambahkan dukungan untuk jendela mengambang penuh, yang dapat ditempatkan di lokasi mana pun, dilampirkan, ditautkan ke buffer pengeditan individual, dan dikelompokkan dalam mode Multigrid.
  • Menambahkan opsi 'pumblend' untuk menu tarik-turun yang tembus cahaya.

Sumber: opennet.ru

Tambah komentar