Достъпен е Neovim 0.4, модернизиран вариант на редактора Vim

Публикувано релиз Neovim 0.4, клонинги на редактора Vim, съсредоточен върху увеличаване на разширяемостта и гъвкавостта. Оригиналните разработки на проекта се разпространява са под лиценз Apache 2.0, а основната част под лиценз Vim.

В рамките на проекта Neovim вече повече от пет години се извършва преработка на кодовата база на Vim, в резултат на което се въвеждат промени, опростяващи поддръжката на кода, предоставящи средства за разделение на труда между няколко поддържатели, отделящи интерфейса от основната част (интерфейсът може да бъде променян без да се засягат вътрешностите) и реализиращи нова разширяема архитектура на базата на плъгини.

Среди проблемите на Vim, довели до създаването на Neovim, се откроява раздута монолитна кодова база, състояща се от повече от 300 хиляди реда код на езика C (C89). Различията в кодовата база на Vim се разбират от само няколко души, а всички промени се контролират от един поддържащ, което затруднява поддръжката и работата по усъвършенстването на редактора. Вместо вградения в ядрото на Vim код за поддръжка на GUI, в Neovim се предлага да се използва универсален слой, позволяващ създаването на интерфейси с различни инструментариуми.

Плъгините за Neovim се стартират като отделни процеси, с които взаимодействието става чрез формат MessagePack. Взаимодействието с плъгините се осъществява асинхронно, без да блокира основните компоненти на редактора. За достъп до плъгин може да се използва TCP-сокет, т.е. плъгинът може да бъде стартиран на външна система. В същото време, Neovim остава обратно съвместим с Vim, продължава да поддържа Vimscript (вместо което се предлага Lua) и поддържа свързването на повечето стандартни плъгини на Vim. Разширените възможности на Neovim могат да бъдат използвани в плъгини, изградени с помощта на API, специфичен за Neovim.

В момента вече подготвено около 80 специфични плъгини, налични са биндинги за създаване на плъгини и реализации на интерфейси с използване на различни програмни езици (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) и фреймворкове (Qt5, ncurses, Node.js, Electron, GTK+). Развиват се няколко варианта на потребителски интерфейс. GUI добавките до голяма степен напомнят на плъгините, но за разлика от тях, те инициират извиквания на функции на Neovim, докато плъгините се извикват от Neovim.

Някои от промяната в новата версия:

  • Добавен е голям набор от нови функции на API и събития на потребителския интерфейс.
  • Добавена е нова стандартна библиотека Nvim-Lua за разработка на плъгини на езига Lua.
  • Продължава развитието на протокола на потребителския интерфейс, който извършва актуализация на информацията на екрана на ниво редове, а не отделни символи.
  • Добавена е поддръжка на пълнофункционални плаващи прозорци, които могат да бъдат разположени на произволно място, да са прикрепени, свързани с отделни буфери за редактиране, групирани в режим Multigrid.
  • Добавена е опция 'pumblend' за полупрозрачни падащи менюта.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster