Vim editörünün modernize edilmiş bir versiyonu olan Neovim 0.4 mevcut

yayınlanan serbest Neovim 0.4, Vim editöründen bir çatal, odaklanmış genişletilebilirliği ve esnekliği arttırmaya yöneliktir. Projenin orijinal gelişmeleri yayılmış Apache 2.0 lisansı altında ve temel kısmı Vim lisansı altında.

Neovim projesi çerçevesinde, Vim kod tabanı beş yıldan fazla bir süredir yeniden çalışılıyor; bunun sonucunda kod bakımını basitleştiren, birkaç bakımcı arasında iş bölümü yapma aracı sağlayan, arayüzü bilgisayardan ayıran değişiklikler yapılıyor. taban kısmına (arayüz iç kısımlara dokunmadan değiştirilebilir) ve yeni bir uygulama uygulayın genişletilebilir mimari eklentilere dayanmaktadır.

Neovim'in yaratılmasına yol açan Vim sorunlarından biri, 300 binden fazla C (C89) kodu satırından oluşan şişirilmiş, yekpare kod tabanıydı. Yalnızca birkaç kişi Vim kod tabanının tüm nüanslarını anlıyor ve tüm değişiklikler tek bir bakımcı tarafından kontrol ediliyor, bu da editörün bakımını ve geliştirilmesini zorlaştırıyor. Neovim, GUI'yi desteklemek için Vim çekirdeğine yerleşik kod yerine, çeşitli araç kitlerini kullanarak arayüzler oluşturmanıza olanak tanıyan evrensel bir katman kullanmayı önerir.

Neovim eklentileri, MessengerPack formatının kullanıldığı etkileşim için ayrı işlemler olarak başlatılır. Eklentilerle etkileşim, düzenleyicinin temel bileşenlerini engellemeden, eşzamansız olarak gerçekleştirilir. Eklentiye erişmek için bir TCP soketi kullanılabilir; eklenti harici bir sistemde çalıştırılabilir. Aynı zamanda Neovim, Vim ile geriye dönük olarak uyumlu olmaya devam ediyor, Vimscript'i desteklemeye devam ediyor (alternatif olarak Lua sunulmaktadır) ve çoğu standart Vim eklentisi için bağlantıları destekliyor. Neovim'in gelişmiş özellikleri, Neovim'e özel API'ler kullanılarak oluşturulan eklentilerde kullanılabilir.

Şu anda zaten tedarikli Çeşitli programlama dillerini (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) ve çerçeveleri (Qt80, ncurses, Node.js,) kullanarak eklentiler oluşturmak ve arayüzleri uygulamak için yaklaşık 5 özel eklenti, bağlama mevcuttur. Elektron, GTK+). Çeşitli kullanıcı arayüzü seçenekleri geliştirilmektedir. GUI eklentileri eklentilere çok benzer, ancak eklentilerden farklı olarak Neovim işlevlerine çağrı başlatırken eklentiler Neovim'in içinden çağrılır.

Değişikliklerden bazıları Yeni sürüm:

  • Yeni API işlevlerinin ve kullanıcı arayüzü olaylarının büyük bir kısmı eklendi.
  • Lua dilinde eklentiler geliştirmek için yeni bir standart kütüphane Nvim-Lua eklendi.
  • Kullanıcı arayüzü protokolünün geliştirilmesi, ekrandaki bilgilerin tek tek karakterler yerine satır düzeyinde güncellenmesiyle devam etmektedir.
  • Herhangi bir konuma yerleştirilebilen, eklenebilen, bireysel düzenleme arabelleklerine bağlanabilen ve Çoklu Izgara modunda gruplandırılabilen tam teşekküllü kayan pencereler için destek eklendi.
  • Yarı saydam açılır menüler için 'pumblend' seçeneği eklendi.

Kaynak: opennet.ru

Yorum ekle