Dostupan je Neovim 0.4, modernizovana verzija Vim editora

objavljeno pustiti Neovim 0.4, ответвления от редактора Vim, сфокусированного на повышении расширяемости и гибкости. Оригинальные наработки проекта širenje под лицензией Apache 2.0, а базовая часть под лицензией Vim.

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

Jedan od problema sa Vim-om koji je podstakao stvaranje Neovog bila je njegova naduvana, monolitna baza koda, koja se sastojala od više od 300 hiljada linija C (C89) koda. Samo nekoliko ljudi razumije sve nijanse Vimove kodne baze, a sve promjene kontrolira jedan održavatelj, što otežava održavanje i poboljšanje uređivača. Umesto koda ugrađenog u Vim jezgro za podršku GUI, Neovim predlaže korišćenje univerzalnog sloja koji vam omogućava da kreirate interfejse koristeći različite komplete alata.

Dodaci za Neovim se pokreću kao zasebni procesi, za interakciju sa kojima se koristi format MessagePack. Interakcija sa dodacima se odvija asinhrono, bez blokiranja osnovnih komponenti uređivača. Za pristup dodatku može se koristiti TCP socket, tj. dodatak se može pokrenuti na eksternom sistemu. Istovremeno, Neovim ostaje kompatibilan sa Vim-om, nastavlja da podržava Vimscript (Lua se nudi kao alternativa) i podržava veze za većinu standardnih Vim dodataka. Neovim napredne funkcije mogu se koristiti u dodacima napravljenim pomoću API-ja specifičnih za Neovim.

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

Некоторые из изменений в nova verzija:

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

izvor: opennet.ru

Dodajte komentar