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

Neovim 0.7.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.

Ẹya tuntun nfunni ni atilẹyin akọkọ fun iṣẹ isakoṣo latọna jijin, gbigba ọ laaye lati ṣiṣẹ Neovim lori olupin ati sopọ si rẹ lati eto alabara nipa lilo ui_client lọtọ. Awọn iyipada miiran pẹlu: atilẹyin fun Python 2 ti dawọ duro, lilo awọn iṣẹ Lua ni maapu bọtini ti gba laaye, awọn aṣẹ tuntun ti ṣafikun API, agbara lati lo ede Lua fun idagbasoke awọn afikun ati iṣakoso iṣeto ni ti fẹ sii, Awọn irinṣẹ lati ṣe iwadii awọn iṣoro ni koodu ti ni ilọsiwaju, atilẹyin fun ọpa ipo agbaye ti ṣafikun, awọn iṣapeye iṣẹ ti ṣe. Awọn agbara ti olubara LSP ti a ṣe sinu rẹ (Ilana olupin Ede) ti pọ si, eyiti o le ṣee lo lati gbe ọgbọn itupalẹ ati ipari koodu si awọn olupin ita.

orisun: opennet.ru

Fi ọrọìwòye kun