Neovim ပရောဂျက်၏မူဘောင်အတွင်း၊ Vim code base ကို ငါးနှစ်ကျော်ကြာ ပြန်လည်ပြုပြင်ခဲ့ပြီး၊ ကုဒ်ပြုပြင်ထိန်းသိမ်းမှုကို ရိုးရှင်းလွယ်ကူစေရန်၊ ထိန်းသိမ်းသူအများအပြားကြားတွင် လုပ်အားခွဲဝေပေးသည့်နည်းလမ်းကို ပံ့ပိုးပေးကာ interface မှ ခွဲထုတ်သည့် အပြောင်းအလဲများကြောင့် အခြေခံအပိုင်း (အတွင်းပိုင်းကို မထိဘဲ ပြောင်းလဲနိုင်သည်) နှင့် အသစ်တစ်ခုကို အကောင်အထည်ဖော်ပါ။
Neovim ကိုဖန်တီးရန် တွန်းအားပေးခဲ့သော Vim ၏ပြဿနာတစ်ခုမှာ C (C300) ကုဒ်လိုင်းပေါင်း 89 ကျော်ပါရှိသော ၎င်း၏ဖောင်းကားနေသော monolithic code base ဖြစ်သည်။ Vim codebase ၏ ထူးခြားချက်အားလုံးကို လူအနည်းငယ်ကသာ နားလည်ကြပြီး ပြောင်းလဲမှုအားလုံးကို ထိန်းသိမ်းသူတဦးတည်းက ထိန်းချုပ်ထားသောကြောင့် တည်းဖြတ်သူကို ထိန်းသိမ်းရန်နှင့် တိုးတက်ရန် ခက်ခဲစေသည်။ GUI ကိုပံ့ပိုးရန် Vim core တွင်တည်ဆောက်ထားသောကုဒ်အစား၊ Neovim သည် toolkits အမျိုးမျိုးကိုအသုံးပြု၍ interfaces များကိုဖန်တီးရန်ခွင့်ပြုသည့် universal layer ကိုအသုံးပြု၍ အဆိုပြုသည်။
MessagePack ဖော်မတ်ကို အသုံးပြုသည့် အပြန်အလှန်တုံ့ပြန်မှုအတွက် Neovim အတွက် ပလပ်အင်များကို သီးခြားလုပ်ငန်းစဉ်များအဖြစ် စတင်ဆောင်ရွက်ပါသည်။ တည်းဖြတ်သူ၏ အခြေခံ အစိတ်အပိုင်းများကို မပိတ်ဆို့ဘဲ ပလပ်အင်များနှင့် အပြန်အလှန် တုံ့ပြန်မှုကို တပြိုင်တည်း လုပ်ဆောင်ပါသည်။ ပလပ်အင်ကိုဝင်ရောက်ရန် TCP socket ကိုသုံးနိုင်သည်၊ ဆိုလိုသည်မှာ၊ plugin ကို ပြင်ပစနစ်တစ်ခုပေါ်တွင် လုပ်ဆောင်နိုင်သည်။ တစ်ချိန်တည်းမှာပင်၊ Neovim သည် Vim နှင့် နောက်ပြန်သဟဇာတဖြစ်နေဆဲဖြစ်ပြီး Vimscript ကို ဆက်လက်ပံ့ပိုးပေးသည် (Lua ကို အခြားရွေးချယ်စရာအဖြစ် ကမ်းလှမ်းသည်) နှင့် ပုံမှန် Vim plugins အများစုအတွက် ချိတ်ဆက်မှုများကို ပံ့ပိုးပေးပါသည်။ Neovim ၏အဆင့်မြင့်အင်္ဂါရပ်များကို Neovim-specific APIs များအသုံးပြု၍ တည်ဆောက်ထားသော ပလပ်အင်များတွင် အသုံးပြုနိုင်ပါသည်။
လောလောဆယ် ဖြစ်နေပြီ။
အပြောင်းအလဲအချို့
- API လုပ်ဆောင်ချက်အသစ်များနှင့် အသုံးပြုသူ အင်တာဖေ့စ် ဖြစ်ရပ်များ အများအပြားကို ထည့်သွင်းခဲ့သည်။
- Lua ဘာသာစကားတွင် ပလပ်အင်များကို တီထွင်ရန်အတွက် စံပြစာကြည့်တိုက်အသစ် Nvim-Lua ကို ထည့်ထားသည်။
- အသုံးပြုသူ အင်တာဖေ့စ်ပရိုတိုကော၏ ဖွံ့ဖြိုးတိုးတက်မှုသည် ဇာတ်ကောင်တစ်ဦးချင်းစီထက် စာကြောင်းများအဆင့်တွင် မျက်နှာပြင်ပေါ်ရှိ အချက်အလက်များကို အပ်ဒိတ်လုပ်နေပါသည်။
- မည်သည့်နေရာတွင် ထားရှိနိုင်သည်၊ ပူးတွဲပါ၊ တစ်ဦးချင်းတည်းဖြတ်သည့်ကြားခံများနှင့် ချိတ်ဆက်ကာ Multigrid မုဒ်တွင် အုပ်စုဖွဲ့နိုင်သည့် ပြည့်စုံသော လွင့်ပြတင်းပေါက်ဝင်းဒိုးများအတွက် ထပ်လောင်းပံ့ပိုးမှု။
- အလင်းဝင်သော ဆွဲချမီနူးများအတွက် 'pumblend' ရွေးစရာကို ထည့်ထားသည်။
source: opennet.ru