Neovim 0.4, Vim редакторунун модернизацияланган версиясы жеткиликтүү

жарыяланган бошотуу Neovim 0.4, Vim редакторунан айры, багытталган кеңейүү жана ийкемдүүлүктү жогорулатуу боюнча. Долбоордун оригиналдуу иштеп чыгуулары жайылуу Apache 2.0 лицензиясы жана базалык бөлүгү Vim лицензиясы боюнча.

Neovim долбоорунун алкагында Vim коддук базасы беш жылдан ашык убакыттан бери кайра иштелип чыккан, анын натыйжасында кодду тейлөөнү жөнөкөйлөткөн, бир нече тейлөөчүнүн ортосунда эмгекти бөлүштүрүүнүн каражатын камсыз кылган өзгөртүүлөр киргизилди, интерфейсти интерфейстен ажыратат. базалык бөлүгү (интерфейсти ички түзүлүшкө тийбестен өзгөртүүгө болот) жана жаңысын ишке ашырыңыз кеңейтилүүчү архитектура плагиндерге негизделген.

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

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

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

Өзгөртүүлөрдүн айрымдары жаңы версия:

  • Жаңы API функцияларынын жана колдонуучу интерфейсинин окуяларынын чоң бөлүгү кошулду.
  • Lua тилинде плагиндерди иштеп чыгуу үчүн жаңы стандарттуу Nvim-Lua китепканасы кошулду.
  • Колдонуучу интерфейсинин протоколун иштеп чыгуу улантылууда, экрандагы маалыматты жеке символдор эмес, саптардын деңгээлинде жаңылоо.
  • Толук кандуу калкып жүрүүчү терезелерге колдоо кошулду, аларды каалаган жерге жайгаштырса, тиркеп, жеке оңдоо буферлерине байланыштырып, Multigrid режиминде топтоштурса болот.
  • Тунук ачылуучу менюлар үчүн "pumblend" опциясы кошулду.

Source: opennet.ru

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