Наличен е 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 могат да се използват в добавки, изградени с помощта на специфични за Neovim API.

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

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

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

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

Добавяне на нов коментар