Neovim 0.7.0, як шохаи муҳаррири Vim, ки ба афзоиши васеъшавӣ ва чандирӣ нигаронида шудааст, бароварда шуд. Лоиҳа беш аз ҳафт сол пойгоҳи рамзи Vim-ро аз нав кор карда, тағйиротеро ворид мекунад, ки нигоҳдории кодро содда мекунанд, абзорҳоро барои тақсим кардани меҳнат байни якчанд нигоҳдорандагон фароҳам меоранд, интерфейсро аз асл ҷудо мекунанд (интерфейсро бе ламс кардани қисмҳои дохилӣ тағир додан мумкин аст) ва меъмории нави васеъшаванда ва дар асоси плагинҳо амалӣ мекунанд. Кори аслии лоиҳа тибқи иҷозатномаи Apache 2.0 ва қисми аслӣ тибқи иҷозатномаи Vim иҷозатнома дорад. Сохтмони анҷомёфта барои... дастрас аст. Linux (тасвири барнома), Windows и macOS.
Яке аз мушкилот бо 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 даъват мешаванд.
Нусхаи нав дастгирии ибтидоиро барои кори дурдаст пешниҳод мекунад ва ба шумо имкон медиҳад, ки Neovim-ро дар... сервер ва бо истифода аз ui_client алоҳида ба он аз системаи муштарӣ пайваст шавед. Тағйироти дигар инҳоянд: Дастгирии Python 2 қатъ карда шуд, истифодаи функсияҳои Lua дар харитаҳои keymaps иҷозат дода шуд, фармонҳои нав ба API илова карда шуданд, имконоти истифодаи Lua барои таҳияи плагин ва идоракунии конфигуратсия ба таври назаррас васеъ карда шуданд, абзорҳои ташхиси код беҳтар карда шуданд, дастгирӣ барои сатри ҳолати ҷаҳонӣ илова карда шуд ва беҳсозии самаранокӣ амалӣ карда шуданд. Имкониятҳои муштарии дарунсохти LSP (Language Server Protocol) васеъ карда шуданд, ки имкон медиҳад, ки таҳлили код ва мантиқи худкори пуркунӣ берун карда шавад. серверҳо.
Манбаъ: opennet.ru
