Neovim 0.4-ը, Vim խմբագրի արդիականացված տարբերակը, հասանելի է

հրապարակված արձակել Neovim 0.4, պատառաքաղ Vim խմբագրից, կենտրոնացած ընդարձակման և ճկունության բարձրացման վրա: Նախագծի բնօրինակ զարգացումները տարածվել Apache 2.0 լիցենզիայի ներքո, իսկ բազային մասը՝ Vim լիցենզիայի ներքո:

Neovim նախագծի շրջանակներում Vim կոդերի բազան վերամշակվում է ավելի քան հինգ տարի, ինչի արդյունքում փոփոխություններ են կատարվում, որոնք պարզեցնում են կոդերի պահպանումը, ապահովում են աշխատանքի բաժանման միջոց մի քանի սպասարկողների միջև, առանձնացնում ինտերֆեյսը բազային մասը (ինտերֆեյսը կարող է փոխվել առանց ներքին մասերին դիպչելու) և իրականացնել նորը ընդարձակելի ճարտարապետություն հիմնված պլագինների վրա:

Vim-ի հետ կապված խնդիրներից մեկը, որը դրդեց ստեղծել Neovim-ը, նրա փքված, մոնոլիտ ծածկագրի հիմքն էր, որը բաղկացած է ավելի քան 300 հազար տող C (C89) կոդից: Միայն քչերն են հասկանում Vim կոդերի բազայի բոլոր նրբությունները, և բոլոր փոփոխությունները վերահսկվում են մեկ սպասարկողի կողմից, ինչը դժվարացնում է խմբագրի պահպանումն ու կատարելագործումը։ Vim միջուկում ներկառուցված կոդի փոխարեն՝ GUI-ին աջակցելու համար, Neovim-ն առաջարկում է օգտագործել ունիվերսալ շերտ, որը թույլ է տալիս ստեղծել ինտերֆեյսներ՝ օգտագործելով տարբեր գործիքակազմեր:

Neovim-ի պլագինները գործարկվում են որպես առանձին գործընթացներ, որոնց հետ փոխգործակցության համար օգտագործվում է MessagePack ձևաչափը: Փլագինների հետ փոխազդեցությունն իրականացվում է ասինխրոն՝ առանց խմբագրի հիմնական բաղադրիչները արգելափակելու։ Փլագին մուտք գործելու համար կարող է օգտագործվել TCP վարդակից, այսինքն. plugin-ը կարող է գործարկվել արտաքին համակարգով: Միևնույն ժամանակ, Neovim-ը մնում է հետընթաց համատեղելի Vim-ի հետ, շարունակում է աջակցել Vimscript-ին (Lua-ն առաջարկվում է որպես այլընտրանք) և աջակցում է կապեր ստանդարտ Vim հավելվածների մեծ մասի համար։ Neovim-ի առաջադեմ հնարավորությունները կարող են օգտագործվել Neovim-ի հատուկ API-ների միջոցով կառուցված պլագիններում:

Ներկայումս արդեն պատրաստված մոտ 80 հատուկ պլագիններ, կապանքներ հասանելի են պլագիններ ստեղծելու և ինտերֆեյսներ իրականացնելու համար՝ օգտագործելով տարբեր ծրագրավորման լեզուներ (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) և շրջանակներ (Qt5, ncurses, Node.js, Էլեկտրոն, GTK+): Օգտագործողի միջերեսի մի քանի տարբերակներ են մշակվում: GUI հավելումները շատ նման են պլագիններին, բայց ի տարբերություն պլագինների, նրանք զանգեր են նախաձեռնում դեպի Neovim գործառույթները, մինչդեռ պլագինները կանչվում են Neovim-ից:

Որոշ փոփոխություններ նոր տարբերակ:

  • Ավելացվել է նոր API գործառույթների և օգտատիրոջ միջերեսի իրադարձությունների մեծ մասը:
  • Ավելացրել է նոր ստանդարտ գրադարան Nvim-Lua՝ Lua լեզվով պլագիններ մշակելու համար:
  • Օգտվողի միջերեսի արձանագրության մշակումը շարունակվում է՝ էկրանին տեղեկատվությունը թարմացնելով տողերի մակարդակով, այլ ոչ թե առանձին նիշերի:
  • Ավելացվել է լիարժեք լողացող պատուհանների աջակցություն, որոնք կարող են տեղադրվել ցանկացած վայրում, կցվել, կապվել անհատական ​​խմբագրման բուֆերների հետ և խմբավորվել Multigrid ռեժիմում:
  • Ավելացվեց «pumblend» տարբերակը կիսաթափանցիկ բացվող ընտրացանկերի համար:

Source: opennet.ru

Добавить комментарий