Neovim 0.5, версияи муосири муҳаррири Vim дастрас аст

Пас аз тақрибан ду соли рушд, Neovim 0.5 бароварда шуд, як муҳаррири Vim ба баланд бардоштани васеъшавӣ ва чандирӣ нигаронида шудааст. Лоиҳа дар тӯли зиёда аз ҳафт сол пойгоҳи коди Vim-ро аз нав кор мекунад, ки дар натиҷа тағирот ворид карда шуданд, ки нигоҳдории кодро содда мекунанд, воситаи тақсими меҳнатро байни якчанд нигоҳдорон таъмин мекунанд, интерфейсро аз қисми асосӣ ҷудо мекунанд (интерфейс метавонад бе ламс кардани ҷузъҳои дохилӣ тағир дода шавад) ва меъмории нави васеъшавандаро дар асоси плагинҳо татбиқ кунед. Таҳияҳои аслии лоиҳа тибқи литсензияи Apache 2.0 ва қисми асосӣ таҳти иҷозатномаи Vim паҳн карда мешаванд.

Яке аз мушкилот бо Vim, ки боиси эҷоди Neovim гардид, пойгоҳи рамзии яклухт, ки аз беш аз 300 ҳазор сатри рамзи C (C89) иборат буд, буд. Ҳама нозукиҳои пойгоҳи коди Vim-ро танҳо чанд нафар дарк мекунанд ва ҳама тағиротҳо аз ҷониби як нигоҳдор идора карда мешаванд, ки нигоҳдорӣ ва такмил додани муҳаррирро душвор мегардонад. Ба ҷои рамзи дар ядрои Vim барои дастгирии GUI сохташуда, Neovim истифодаи қабати универсалиро пешниҳод мекунад, ки ба шумо имкон медиҳад интерфейсҳоро бо истифода аз асбобҳои гуногун эҷод кунед.

Плагинҳо барои Neovim ҳамчун равандҳои алоҳида оғоз карда мешаванд, ки барои ҳамкорӣ бо онҳо формати MessagePack истифода мешавад. Ҳамкорӣ бо плагинҳо асинхронӣ бидуни бастани ҷузъҳои асосии муҳаррир сурат мегирад. Барои дастрасӣ ба плагин, васлаки TCP метавонад истифода шавад, яъне. плагинро дар системаи беруна кор кардан мумкин аст. Ҳамзамон, Neovim бо Vim ба ақиб мувофиқ боқӣ мемонад, дастгирии Vimscript-ро идома медиҳад (Луа ҳамчун алтернатива пешниҳод карда мешавад) ва пайвастҳоро барои аксари плагинҳои стандартии Vim дастгирӣ мекунад. Хусусиятҳои пешрафтаи Neovim метавонанд дар плагинҳо истифода шаванд, ки бо истифодаи API-ҳои мушаххаси Neovim сохта шудаанд.

Дар айни замон, тақрибан 130 плагинҳои мушаххас аллакай омода карда шудаанд, пайвандҳо барои сохтани плагинҳо ва татбиқи интерфейсҳо бо истифода аз забонҳои гуногуни барномасозӣ (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) ва чаҳорчӯбаҳо (Qt, ncurses, Node .js, Electron, GTK). Якчанд вариантҳои интерфейси корбар таҳия карда мешаванд. Иловаҳои GUI ба плагинҳо монанданд, аммо бар хилофи плагинҳо, онҳо зангҳоро ба функсияҳои Neovim оғоз мекунанд, дар ҳоле ки плагинҳо аз дохили Neovim даъват мешаванд.

Баъзе аз тағйирот дар версияи нав:

  • Мизоҷи дарунсохт LSP (Протоколи сервери забон) дар Луа илова карда шуд, ки онро барои пайвастшавӣ ба хидматҳои беруна барои таҳлил ва анҷом додани код истифода бурдан мумкин аст.
  • Барои назорати тарҳрезии буферҳои тақсимот API илова карда шуд.
  • API барои истифодаи барчаспҳои васеъ барои пайгирии тағирот дар сатҳи байт илова карда шуд.
  • Дастгирии васеъ барои Lua ҳамчун забон барои таҳияи плагинҳо ва идоракунии конфигуратсия.
  • Дастгирии таҷрибавӣ барои муҳаррики таҳлили дарахт-ситер илова карда шуд.

Манбаъ: opennet.ru

Илова Эзоҳ