Neovim 0.5 ကို Vim တည်းဖြတ်သူ၏ ခေတ်မီသောဗားရှင်းကို ရရှိနိုင်ပါသည်။

ဖွံ့ဖြိုးတိုးတက်မှုနှစ်နှစ်နီးပါးအကြာတွင်၊ Neovim 0.5 ကိုထုတ်ဝေခဲ့ပြီး၊ Vim တည်းဖြတ်သူ၏လမ်းခွဲတစ်ခုသည်တိုးချဲ့နိုင်မှုနှင့်ပြောင်းလွယ်ပြင်လွယ်ကိုတိုးမြှင့်ရန်အာရုံစိုက်ခဲ့သည်။ ပရောဂျက်သည် Vim ကုဒ်အခြေခံကို ခုနစ်နှစ်ကျော်ကြာ ပြန်လည်ပြုပြင်ခဲ့ပြီး၊ ကုဒ်ပြုပြင်ထိန်းသိမ်းမှုကို ရိုးရှင်းလွယ်ကူစေသည့် အပြောင်းအလဲများကို ပြုလုပ်ထားသောကြောင့် ပြုပြင်ထိန်းသိမ်းသူအများအပြားအကြား လုပ်အားခွဲဝေပေးခြင်း၊ အင်တာဖေ့စ်ကို အခြေခံအပိုင်းမှ ခွဲထုတ်ခြင်း (အင်တာဖေ့စ်သည် ဖြစ်နိုင်သည်။ အတွင်းပိုင်းကို မထိဘဲ ပြောင်းလဲထားသည်) နှင့် plugins များကို အခြေခံ၍ တိုးချဲ့နိုင်သော ဗိသုကာအသစ်ကို အကောင်အထည်ဖော်ပါ။ ပရောဂျက်၏ မူလတိုးတက်မှုများကို Apache 2.0 လိုင်စင်အောက်တွင် ဖြန့်ဝေထားပြီး အခြေခံအပိုင်းကို Vim လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။

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 များအသုံးပြု၍ တည်ဆောက်ထားသော ပလပ်အင်များတွင် အသုံးပြုနိုင်ပါသည်။

လက်ရှိတွင်၊ သီးခြားပလပ်အင်ပေါင်း 130 ခန့်ကို ပြင်ဆင်ထားပြီးဖြစ်ပြီး၊ အမျိုးမျိုးသော ပရိုဂရမ်းမင်းဘာသာစကားများ (C++၊ Clojure၊ Perl၊ Python၊ Go၊ Java၊ Lisp၊ Lua၊ Ruby) နှင့် frameworks (Qt၊ ncurses၊ Node .js၊ Electron၊ GTK)။ အသုံးပြုသူ အင်တာဖေ့စ် ရွေးချယ်စရာ အများအပြားကို တီထွင်လျက်ရှိသည်။ GUI အပိုပရိုဂရမ်များသည် ပလပ်အင်များနှင့် များစွာတူသော်လည်း ပလပ်အင်များနှင့် မတူဘဲ၊ ၎င်းတို့သည် Neovim လုပ်ဆောင်ချက်များသို့ ခေါ်ဆိုမှုများ ပြုလုပ်ကြပြီး၊ ပလပ်အင်များကို Neovim အတွင်းမှ ခေါ်ဆိုကြသည်။

ဗားရှင်းအသစ်တွင် အချို့သောပြောင်းလဲမှုများ-

  • ခွဲခြမ်းစိတ်ဖြာမှုနှင့် ကုဒ်ပြီးစီးမှုအတွက် ပြင်ပဝန်ဆောင်မှုများသို့ ချိတ်ဆက်အသုံးပြုနိုင်သည့် Lua တွင် ထည့်သွင်းထားသော LSP သုံးစွဲသူ (Language Server Protocol) ကို ထည့်သွင်းထားသည်။
  • ခွဲဝေချထားပေးသည့် ကြားခံများ၏ ဒီဇိုင်းကို ထိန်းချုပ်ရန် API တစ်ခု ထပ်ထည့်ထားသည်။
  • byte အဆင့်ရှိ အပြောင်းအလဲများကို ခြေရာခံရန် တိုးချဲ့တက်ဂ်များကို အသုံးပြုရန် API တစ်ခု ထပ်ထည့်ထားသည်။
  • ပလပ်အင် ဖွံ့ဖြိုးတိုးတက်မှုနှင့် ဖွဲ့စည်းမှုဆိုင်ရာ စီမံခန့်ခွဲမှုအတွက် ဘာသာစကားတစ်ခုအနေဖြင့် Lua အတွက် ပံ့ပိုးမှုကို တိုးချဲ့ထားသည်။
  • tree-sitter parsing engine အတွက် စမ်းသပ်မှု ပံ့ပိုးမှု ထပ်လောင်းပါ။

source: opennet.ru

မှတ်ချက် Add