Itusilẹ ti Neovim 0.6.0, ẹya tuntun ti olootu Vim

Neovim 0.6.0 ti tu silẹ, orita ti olootu Vim ti dojukọ lori alekun ati irọrun. Ise agbese na ti n ṣe atunṣe ipilẹ koodu Vim fun diẹ ẹ sii ju ọdun meje lọ, nitori abajade eyi ti awọn ayipada ṣe ti o rọrun itọju koodu, pese ọna ti pinpin iṣẹ laarin ọpọlọpọ awọn olutọju, yato si wiwo lati apakan ipilẹ (ni wiwo le jẹ. yipada laisi fọwọkan awọn ti abẹnu) ati ṣe imuse faaji tuntun ti o da lori awọn afikun. Awọn idagbasoke atilẹba ti iṣẹ akanṣe naa ti pin labẹ iwe-aṣẹ Apache 2.0, ati pe apakan ipilẹ ti pin labẹ iwe-aṣẹ Vim. Awọn apejọ ti a ṣe ti ṣetan fun Linux (appimage), Windows ati macOS.

Ọkan ninu awọn iṣoro pẹlu Vim ti o fa ẹda ti Neovim jẹ bloated rẹ, ipilẹ koodu monolithic, ti o ni diẹ sii ju awọn laini 300 ẹgbẹrun ti koodu C (C89). Awọn eniyan diẹ nikan loye gbogbo awọn nuances ti koodu koodu Vim, ati pe gbogbo awọn ayipada ni iṣakoso nipasẹ olutọju kan, eyiti o jẹ ki o ṣoro lati ṣetọju ati ilọsiwaju olootu. Dipo koodu ti a ṣe sinu mojuto Vim lati ṣe atilẹyin GUI, Neovim ṣe imọran lilo Layer gbogbo agbaye ti o fun ọ laaye lati ṣẹda awọn atọkun nipa lilo awọn irinṣẹ irinṣẹ lọpọlọpọ.

Awọn afikun fun Neovim ti ṣe ifilọlẹ bi awọn ilana lọtọ, fun ibaraenisepo pẹlu eyiti ọna kika MessagePack ti lo. Ibaraṣepọ pẹlu awọn afikun ni a ṣe ni asynchronously, laisi idilọwọ awọn paati ipilẹ ti olootu. Lati wọle si itanna, iho TCP le ṣee lo, i.e. itanna le ti wa ni ṣiṣe awọn lori ohun ita eto. Ni akoko kanna, Neovim wa sẹhin ni ibamu pẹlu Vim, tẹsiwaju lati ṣe atilẹyin Vimscript (Lua ni a funni bi yiyan) ati ṣe atilẹyin awọn asopọ fun pupọ julọ awọn afikun Vim boṣewa. Awọn ẹya ilọsiwaju ti Neovim le ṣee lo ni awọn afikun ti a ṣe ni lilo awọn API-pato Neovim.

Lọwọlọwọ, nipa awọn afikun 130 kan pato ti pese tẹlẹ, awọn abuda wa fun ṣiṣẹda awọn afikun ati imuse awọn atọkun nipa lilo ọpọlọpọ awọn ede siseto (C ++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) ati awọn ilana (Qt, ncurses, Node .js, Electron, GTK). Orisirisi awọn aṣayan ni wiwo olumulo ti wa ni idagbasoke. Awọn afikun GUI dabi awọn afikun, ṣugbọn ko dabi awọn afikun, wọn bẹrẹ awọn ipe si awọn iṣẹ Neovim, lakoko ti a pe awọn afikun lati inu Neovim.

Diẹ ninu awọn iyipada ninu ẹya tuntun:

  • В vim-скрипты добавлена поддержка локальных переменных, область видимости для которых ограничена только текущим скриптом.
  • Значительно улучшена поддержка языка Lua для разработки плагинов и управления конфигурацией. В vim-скриптах добавлена возможность вызова Lua-функций как методов через указание префикса v:lua (например, «arg1->v:lua.somemod.func(arg2)»).
  • Расширены возможности встроенного LSP-клиента (Language Server Protocol), который можно использовать для выноса логики анализа и автодополнения кода на внешние серверы. Применение LSP позволяет использовать более 150 готовых обработчиков для различных языков программирования, подготовленных для редактора кода Visual Studio Code.
  • Улучшены средства диагностики проблем в коде. Добавлена возможность вывода текста диагностических сообщений и плавающих окон с кодом, связанным с подобными сообщениями. Обеспечена обработка диагностических сообщений, передаваемых LSP-сервером.
  • Добавлена поддержка виртуальных строк, которые могут использоваться, например, для вывода блоков со служебной информацией.
  • Внесены различные оптимизации производительности, например, задействована хэш таблица для подсвечиваемых имён групп.
  • Прекращена поддержка Windows 7 и 32-разрядных сборок для Windows.

orisun: opennet.ru

Fi ọrọìwòye kun