Vim တည်သဖဌတ်သူ၏ ခေတ်မီသော ဗာသရဟင်သ Neovim 0.6.0 ကို ဖဌန့်ချိသည်။

Neovim 0.6.0 ကို ထုတ်ဝေခဲ့ပဌီသ၊ ချဲ့ထလင်နိုင်မဟုနဟင့် ပဌောင်သလလယ်ပဌင်လလယ်ကို တိုသမဌဟင့်ရန် အာရုံစိုက်ထာသသည့် Vim တည်သဖဌတ်သူ၏ ခက်ရင်သတစ်ခုဖဌစ်သည်။ ပရောဂျက်သည် Vim ကုဒ်အခဌေခံကို ခုနစ်နဟစ်ကျော်ကဌာ ပဌန်လည်ပဌုပဌင်ခဲ့ပဌီသ၊ ကုဒ်ပဌုပဌင်ထိန်သသိမ်သမဟုကို ရိုသရဟင်သလလယ်ကူစေသည့် အပဌောင်သအလဲမျာသကို ပဌုလုပ်ထာသသောကဌောင့် ပဌုပဌင်ထိန်သသိမ်သသူအမျာသအပဌာသအကဌာသ လုပ်အာသခလဲဝေပေသခဌင်သ၊ အင်တာဖေ့စ်ကို အခဌေခံအပိုင်သမဟ ခလဲထုတ်ခဌင်သ (အင်တာဖေ့စ်သည် ဖဌစ်နိုင်သည်။ အတလင်သပိုင်သကို မထိဘဲ ပဌောင်သလဲထာသသည်) နဟင့် plugins မျာသကို အခဌေခံ၍ တိုသချဲ့နိုင်သော ဗိသုကာအသစ်ကို အကောင်အထည်ဖော်ပါ။ ပရောဂျက်၏ မူလတိုသတက်မဟုမျာသကို Apache 2.0 လိုင်စင်အောက်တလင် ဖဌန့်ဝေထာသပဌီသ အခဌေခံအပိုင်သကို Vim လိုင်စင်အောက်တလင် ဖဌန့်ဝေထာသသည်။ အဆင်သင့်လုပ်ထာသသော စုဝေသမဟုမျာသကို Linux (appimage)၊ Windows နဟင့် macOS အတလက် ပဌင်ဆင်ထာသပါသည်။

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 အတလင်သမဟ ခေါ်ဆိုကဌသည်။

ဗာသရဟင်သအသစ်တလင် အချို့သောပဌောင်သလဲမဟုမျာသ-

  • ဒေသတလင်သ ကိန်သရဟင်မျာသအတလက် ပံ့ပိုသမဟုအာသ vim scripts မျာသသို့ ထည့်သလင်သထာသပဌီသ၊ လက်ရဟိ script ဖဌင့်သာ ကန့်သတ်ထာသသော နယ်ပယ်ဖဌစ်သည်။
  • ပလပ်အင် ဖလံ့ဖဌိုသတိုသတက်မဟုနဟင့် ဖလဲ့စည်သမဟုဆိုင်ရာ စီမံခန့်ခလဲမဟုအတလက် Lua ဘာသာစကာသ ပံ့ပိုသမဟုကို သိသာစလာ မဌဟင့်တင်ထာသသည်။ vim scripts မျာသတလင်၊ v:lua prefix (ဥပမာ၊ “arg1->v:lua.somemod.func(arg2)”) ကို သတ်မဟတ်ခဌင်သဖဌင့် နည်သလမ်သမျာသအဖဌစ် Lua လုပ်ဆောင်ချက်မျာသကို ခေါ်ဆိုနိုင်စလမ်သကို ထည့်သလင်သထာသပါသည်။
  • ခလဲခဌမ်သစိတ်ဖဌာမဟုဆိုင်ရာ ယုတ္တိဗေဒနဟင့် ကုဒ်ပဌီသဆုံသမဟုကို ပဌင်ပဆာဗာမျာသသို့ လလဟဲပဌောင်သရန် အသုံသပဌုနိုင်သည့် built-in LSP client (Language Server Protocol) ၏ လုပ်ဆောင်နိုင်စလမ်သမျာသကို တိုသချဲ့ထာသပါသည်။ LSP ကိုအသုံသပဌုခဌင်သသည် Visual Studio Code တည်သဖဌတ်မဟုအတလက် ပဌင်ဆင်ထာသသော အမျိုသမျိုသသော ပရိုဂရမ်သမင်သဘာသာစကာသမျာသအတလက် အဆင်သင့်လုပ်ထာသသော လက်ကိုင်ကိရိယာ 150 ကျော်ကို အသုံသပဌုနိုင်သည်။
  • ကုဒ်ရဟိ ပဌဿနာမျာသကို ရဟာဖလေဖော်ထုတ်ခဌင်သအတလက် ပိုမိုကောင်သမလန်သော ကိရိယာမျာသ။ ရောဂါရဟာဖလေရေသမက်ဆေ့ဂျ်မျာသ၏ စာသာသနဟင့် မျောနေသောဝင်သဒိုသမျာသတလင် ယင်သကဲ့သို့သော မက်ဆေ့ချ်မျာသနဟင့် ဆက်စပ်နေသည့် ကုဒ်မျာသဖဌင့် ပဌသနိုင်သည့်စလမ်သရည်ကို ထည့်သလင်သထာသသည်။ LSP ဆာဗာမဟပို့သော ရောဂါရဟာဖလေရေသစာတိုမျာသကို စီမံဆောင်ရလက်ပေသပါသည်။
  • ဥပမာအာသဖဌင့်၊ ဝန်ဆောင်မဟုအချက်အလက်မျာသဖဌင့် ပိတ်ဆို့မဟုမျာသကို ပဌသရန် အသုံသပဌုနိုင်သည့် virtual strings မျာသအတလက် ပံ့ပိုသမဟု ထပ်ထည့်ထာသသည်။
  • အမျိုသမျိုသသော စလမ်သဆောင်ရည် ပိုမိုကောင်သမလန်အောင် လုပ်ဆောင်မဟုမျာသ ပဌုလုပ်ထာသပဌီသ၊ ဥပမာ၊ မီသမောင်သထိုသပဌထာသသော အဖလဲ့အမည်မျာသအတလက် hash table ကို ဖလင့်ထာသသည်။
  • Windows 7 နဟင့် Windows ၏ 32-bit တည်ဆောက်မဟုမျာသကို ပံ့ပိုသမဟု ရပ်ဆိုင်သလိုက်ပါပဌီ။

source: opennet.ru

မဟတ်ချက် Add