Neovim 0.7.0 чыгарылышы, Vim редакторунун модернизацияланган версиясы

Neovim 0.7.0 чыгарылды, Vim редакторунун айрысы кеңейүүнү жана ийкемдүүлүктү жогорулатууга багытталган. Долбоор жети жылдан ашык убакыттан бери Vim коддук базасын кайра иштеп чыгууда, анын натыйжасында коддун тейлөөсүн жөнөкөйлөткөн, бир нече тейлөөчүлөрдүн ортосунда эмгекти бөлүштүрүүнүн каражатын камсыз кылган, интерфейсти базалык бөлүктөн бөлгөн өзгөртүүлөр киргизилди (интерфейс болушу мүмкүн). ички түзүлүшкө тийбестен өзгөртүлгөн) жана плагиндердин негизинде жаңы кеңейтилүүчү архитектураны ишке ашырыңыз. Долбоордун баштапкы иштеп чыгуулары Apache 2.0 лицензиясы, ал эми негизги бөлүгү Vim лицензиясы боюнча таратылат. Даяр ассамблеялар Linux (appimage), Windows жана macOS үчүн даярдалган.

Neovimди түзүүгө түрткү болгон Vim менен болгон көйгөйлөрдүн бири анын 300 миңден ашык C (C89) кодунан турган монолиттүү код базасы болгон. Vim код базасынын бардык нюанстарын саналуу гана адамдар түшүнөт жана бардык өзгөртүүлөр бир тейлөөчү тарабынан көзөмөлдөнөт, бул редакторду тейлөөнү жана жакшыртууну кыйындатат. GUIди колдоо үчүн Vim өзөгүнө орнотулган коддун ордуна, Neovim ар кандай инструменттердин жардамы менен интерфейстерди түзүүгө мүмкүндүк берген универсалдуу катмарды колдонууну сунуштайт.

Neovim үчүн плагиндер MessagePack форматы колдонулган өз ара аракеттенүү үчүн өзүнчө процесстер катары ишке киргизилет. Плагиндер менен өз ара аракеттенүү редактордун негизги компоненттерине бөгөт койбостон, асинхрондуу түрдө ишке ашырылат. Плагинге кирүү үчүн, TCP розеткасын колдонсо болот, б.а. плагин тышкы системада иштетилиши мүмкүн. Ошол эле учурда, Neovim Vim менен артка шайкеш келет, Vimscriptти колдоону улантууда (Луа альтернатива катары сунушталат) жана көпчүлүк стандарттуу Vim плагиндеринин туташуусун колдойт. Neovimдин өркүндөтүлгөн мүмкүнчүлүктөрү Neovimге тиешелүү API'лер аркылуу курулган плагиндерде колдонулушу мүмкүн.

Учурда 130га жакын атайын плагиндер даярдалган, плагиндерди түзүү жана ар кандай программалоо тилдерин (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) жана алкактарды (Qt, ncurses, Node .js, Electron, GTK). Колдонуучу интерфейсинин бир нече варианттары иштелип чыгууда. GUI кошумчалары плагиндерге окшош, бирок плагиндерден айырмаланып, алар Neovim функцияларына чалууларды башташат, ал эми плагиндер Neovimдин ичинен чакырылат.

Жаңы версия алыстан иштөө үчүн баштапкы колдоону сунуштайт, бул Neovimди серверде иштетүүгө жана ага өзүнчө ui_client аркылуу кардар тутумунан туташуу мүмкүнчүлүгүн берет. Башка өзгөрүүлөргө төмөнкүлөр кирет: Python 2ди колдоо токтотулду, ачкыч картасында Lua функцияларын колдонууга уруксат берилди, API'ге жаңы буйруктар кошулду, плагиндерди иштеп чыгуу жана конфигурацияны башкаруу үчүн Lua тилин колдонуу мүмкүнчүлүгү бир топ кеңейтилди, коддогу көйгөйлөрдү диагностикалоо куралдары жакшыртылды, глобалдык статус тилкесин колдоо кошулду, өндүрүмдүүлүктү оптималдаштыруу жүргүзүлдү. Орнотулган LSP кардарынын (Language Server Protocol) мүмкүнчүлүктөрү кеңейтилген, алар анализдин логикасын жана коддун бүтүшүн тышкы серверлерге өткөрүп берүү үчүн колдонулушу мүмкүн.

Source: opennet.ru

Комментарий кошуу