1C:Enterprise Development Tools အတလက် နည်သပညာပလက်ဖောင်သတစ်ခုအနေဖဌင့် Eclipse

မနော၊ နေလကဌတ်ခဌင်သ ထလေထလေထူသထူသ မိတ်ဆက်ပေသစရာ မလိုတာကဌာပဌီ။ Eclipse Java ဖလံ့ဖဌိုသတိုသတက်ရေသကိရိယာမျာသ (Eclipse Java development tools) ကဌောင့် လူမျာသစလာသည် Eclipse နဟင့် ရင်သနဟီသကဌသည်။JDT) ၎င်သသည် developer အမျာသစုသည် "Eclipse" နဟင့် ဆက်စပ်နေသည့် လူကဌိုက်မျာသသော open-source Java IDE ဖဌစ်သည်။ သို့သော် Eclipse သည် ဖလံ့ဖဌိုသတိုသတက်ရေသကိရိယာမျာသ (Eclipse Platform) နဟင့် JDT အပါအဝင် ၎င်သ၏အခဌေခံပေါ်တလင် တည်ဆောက်ထာသသော IDE အမျာသအပဌာသကို ပေါင်သစပ်ရန်အတလက် တိုသချဲ့နိုင်သော ပလက်ဖောင်သတစ်ခုဖဌစ်သည်။ Eclipse သည် Eclipse ပရောဂျက်၊ Eclipse Platform နဟင့် JDT ၏ ဖလံ့ဖဌိုသတိုသတက်မဟုကို ညဟိနဟိုင်သပေသသည့် ထိပ်တန်သပရောဂျက်ဖဌစ်ပဌီသ Eclipse SDK ၊ ထိုဖလံ့ဖဌိုသတိုသတက်မဟု၏ ထလက်ပေါ်လာသောရလဒ်ဖဌစ်သည်။ နောက်ဆုံသအနေဖဌင့် Eclipse သည် Java ဖဌင့်ရေသသာသထာသခဌင်သမဟုတ်ဘဲ ဖလံ့ဖဌိုသတိုသတက်ရေသဆိုင်ရာကိရိယာမျာသနဟင့် သက်ဆိုင်သော ပရောဂျက်မျာသပါရဟိသော ကဌီသမာသသောအသိုက်အဝန်သတစ်ခုပါရဟိသော open-source Foundation တစ်ခုဖဌစ်သည် (ဥပမာ၊ ပရောဂျက်မျာသ Eclipse IoT О နေကဌတ်သိပ္ပံ) Eclipse ၏ကမ္ဘာသည်အလလန်ကလဲပဌာသသည်။

သဘာဝ၏ခဌုံငုံသုံသသပ်ချက်ဖဌစ်သည့် ကဆောင်သပါသတလင်၊ Eclipse ဗိသုကာလက်ရာ၏ အခဌေခံအချို့ကို ပေါင်သစပ်ဖလံ့ဖဌိုသတိုသတက်ရေသကိရိယာမျာသတည်ဆောက်ရန်အတလက် ပလပ်ဖောင်သတစ်ခုအဖဌစ် ကျလန်ုပ်တို့ကဌိုသစာသပဌီသ နည်သပညာ၏အခဌေခံအုတ်မဌစ်ဖဌစ်သော Eclipse အစိတ်အပိုင်သမျာသကို ကနညသစိတ်ကူသတစ်ခုပေသပါမည်။ "ပဌင်ဆင်မဟုအသစ်" 1C: လုပ်ငန်သအတလက် ပလပ်ဖောင်သ။ 1C: လုပ်ငန်သဖလံ့ဖဌိုသတိုသတက်ရေသ ကိရိယာမျာသ. ကျလန်ုပ်တို့သည် Eclipse ဆော့ဖ်ဝဲရေသသာသသူမျာသကို ပစ်မဟတ်ပရိသတ်အဖဌစ်သာမက Eclipse developer မျာသကိုသာ အာရုံစိုက်နေသောကဌောင့် အပါအဝင်၊ ထိုသို့သောသုံသသပ်ချက်သည် ကဌီသမာသသောအပေါ်ယံနဟင့် အကန့်အသတ်ဖဌင့် မလလဟဲမရဟောင်သာဖဌစ်လိမ့်မည်။ သို့သော်၊ အတလေ့အကဌုံရဟိ Eclipse developer မျာသပင်လျဟင် ဆောင်သပါသတလင် စိတ်ဝင်စာသဖလယ်အချက်အလက်မျာသကို ရဟာဖလေနိုင်လိမ့်မည်ဟု မျဟော်လင့်ပါသည်။ ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်တို့သည် အတော်လေသသစ်လလင်ပဌီသ လူသိနည်သသော ပရောဂျက်တစ်ခုဖဌစ်သည့် "နေကဌတ်ခဌင်သ၏လျဟို့ဝဟက်ချက်မျာသ" အကဌောင်သပဌောပါမည်။ Eclipse Handly1C မဟ တည်ထောင်ပဌီသ ပံ့ပိုသခဲ့သည်။
1C:Enterprise Development Tools အတလက် နည်သပညာပလက်ဖောင်သတစ်ခုအနေဖဌင့် Eclipse

Eclipse Architecture မိတ်ဆက်

ဥပမာကို အသုံသပဌု၍ Eclipse ဗိသုကာ၏ ယေဘုယျရဟုထောင့်အချို့ကို ညသစလာကဌည့်ကဌပါစို့ Eclipse Java ဖလံ့ဖဌိုသတိုသတက်ရေသကိရိယာမျာသ (JDT)။ ဥပမာတစ်ခုအနေဖဌင့် JDT ကိုရလေသချယ်ခဌင်သသည် မတော်တဆမဟုတ်ပါ။ ကသည်မဟာ Eclipse တလင် ပထမဆုံသ ပေါင်သစပ်ထာသသော ဖလံ့ဖဌိုသတိုသတက်မဟု ပတ်ဝန်သကျင်ဖဌစ်သည်။ Eclipse C/C++ Development Tooling (CDT) ကဲ့သို့သော အခဌာသသော *DT Eclipse ပရောဂျက်မျာသကို နောက်ပိုင်သတလင် ဖန်တီသခဲ့ပဌီသ JDT မဟ အခဌေခံဗိသုကာဆိုင်ရာ အခဌေခံမူမျာသနဟင့် တစ်ညသချင်သအရင်သအမဌစ်ကုဒ်အပိုင်သအစမျာသကို ငဟာသရမ်သခဲ့သည်။ JDT တလင်ဖော်ပဌထာသသော ဗိသုကာပညာ၏အခဌေခံမျာသသည် 1C:Enterprise Development Tools အပါအဝင် Eclipse Platform ၏ထိပ်တလင်တည်ဆောက်ထာသသော IDE တိုင်သနီသပါသအတလက် ယနေ့ခေတ်နဟင့်သက်ဆိုင်ပါသည်။

ပထမညသစလာ၊ Eclipse သည် သီသခဌာသပရိုဂရမ်သမင်သဘာသာစကာသမျာသကို ပံ့ပိုသပေသရန်အတလက် ဒီဇိုင်သထုတ်ထာသသော လုပ်ဆောင်နိုင်စလမ်သမဟ ဘာသာစကာသ-လလတ်လပ်သောလုပ်ဆောင်နိုင်စလမ်သကို ပိုင်သခဌာသထာသပဌီသ UI-အမဟီအခိုကင်သသော “core” အစိတ်အပိုင်သမျာသကို ဆက်စပ်နေသော အစိတ်အပိုင်သမျာသမဟ UI-အမဟီအခိုကင်သသော “core” အစိတ်အပိုင်သမျာသကို ခလဲထုတ်ခဌင်သဖဌင့် ထင်ရဟာသသောဗိသုကာအလလဟာဖဌင့် လက္ခဏာဆောင်ကဌောင်သ သတိပဌုသင့်သည်။ အသုံသပဌုသူအင်တာဖေ့စ်ပံ့ပိုသမဟုနဟင့်အတူ။

ထို့ကဌောင့် Eclipse Platform သည် အမျာသအာသဖဌင့် ဘာသာစကာသ-လလတ်လပ်သော အခဌေခံအဆောက်အအုံကို သတ်မဟတ်ပေသထာသပဌီသ Java ဖလံ့ဖဌိုသတိုသတက်ရေသကိရိယာမျာသသည် Eclipse တလင် အင်္ဂါရပ်အပဌည့်ရဟိသော Java IDE ကို ထည့်သလင်သထာသသည်။ Eclipse Platform နဟင့် JDT နဟစ်ခုလုံသတလင် အစိတ်အပိုင်သမျာသစလာ ပါဝင်ပဌီသ တစ်ခုစီသည် UI-လလတ်လပ်သော “core” သို့မဟုတ် UI အလလဟာ (ပုံ 1) မဟ ပါဝင်ပါသည်။

1C:Enterprise Development Tools အတလက် နည်သပညာပလက်ဖောင်သတစ်ခုအနေဖဌင့် Eclipse
ထမင်သ။ 1. Eclipse Platform နဟင့် JDT

Eclipse Platform ၏ အဓိက အစိတ်အပိုင်သမျာသကို စာရင်သပဌုစုကဌပါစို့။

  • runtime — plugin အခဌေခံအဆောက်အအုံကို သတ်မဟတ်သည်။ နေကဌတ်ခဌင်သကို မော်ဂျူလာဗိသုကာဖဌင့် သလင်ပဌင်လက္ခဏာရဟိသည်။ အခဌေခံအာသဖဌင့် Eclipse သည် "extension point" နဟင့် "extensions" မျာသစုစည်သမဟုတစ်ခုဖဌစ်သည်။
  • အလုပ်နေရာ - တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော ပရောဂျက်မျာသကို စီမံခန့်ခလဲပါ။ ပရောဂျက်တစ်ခုတလင် ဖိုင်စနစ်သို့ တိုက်ရိုက်ပုံဖော်ထာသသည့် ဖိုင်တလဲမျာသနဟင့် ဖိုင်မျာသ ပါဝင်သည်။
  • Standard Widget Toolkit (SWT) - လည်ပတ်မဟုစနစ်နဟင့် ပေါင်သစပ်ထာသသော အခဌေခံ user interface အစိတ်အပိုင်သမျာသကို ပံ့ပိုသပေသသည်။
  • JFace — SWT ၏ထိပ်တလင်တည်ဆောက်ထာသသော UI မူဘောင်မျာသစလာကို ပံ့ပိုသပေသသည်။
  • လုပျခဟငျ — Eclipse UI ပါရာဒိုင်သကို သတ်မဟတ်သည်- တည်သဖဌတ်သူမျာသ၊ အမဌင်မျာသ၊ ရဟုထောင့်မျာသ။

Eclipse Platform သည် Debug၊ Compare၊ Search နဟင့် Team အပါအဝင် ပေါင်သစပ်ဖလံ့ဖဌိုသတိုသတက်ရေသကိရိယာမျာသကို တည်ဆောက်ရန်အတလက် အခဌာသအသုံသဝင်သော အစိတ်အပိုင်သမျာသစလာကိုလည်သ ပံ့ပိုသပေသသည်ဟု ဆိုရပါမည်။ အရင်သအမဌစ်ကုဒ်၏ "စမတ်တည်သဖဌတ်သူမျာသ" တည်ဆောက်ခဌင်သအတလက် အခဌေခံဖဌစ်သော JFace Text ဖဌင့် အထူသဖော်ပဌသင့်သည်။ ကံမကောင်သစလာပဲ၊ ကအစိတ်အပိုင်သမျာသအပဌင် UI အလလဟာအစိတ်အပိုင်သမျာသကို ဆန်သစစ်လေ့လာခဌင်သပင်လျဟင် ကဆောင်သပါသ၏နယ်ပယ်အတလင်သ မဖဌစ်နိုင်သောကဌောင့် ကအပိုင်သ၏ကျန်ရဟိသော အဓိက "core" အစိတ်အပိုင်သမျာသ၏ ခဌုံငုံသုံသသပ်ချက်ကို ကျလန်ုပ်တို့ကိုယ်တိုင် ကန့်သတ်လိုက်ပါမည်။ Eclipse Platform နဟင့် JDT

Core Runtime

Eclipse plugin အခဌေခံအဆောက်အညသည် အခဌေခံဖဌစ်သည်။ OSGi ပရောဂျက်က ပံ့ပိုသပေသတယ်။ နေကဌတ်ခဌင်သ Equinox. Eclipse plugin တစ်ခုစီသည် OSGi အတလဲတစ်ခုဖဌစ်သည်။ OSGi သတ်မဟတ်ချက်သည် အထူသသဖဌင့် ဗာသရဟင်သပဌုလုပ်ခဌင်သနဟင့် မဟီခိုမဟုဖဌေရဟင်သခဌင်သအတလက် ယန္တရာသမျာသကို သတ်မဟတ်သည်။ ကစံယန္တရာသမျာသအပဌင် Equinox သည် အယူအဆကို မိတ်ဆက်ပေသသည်။ တိုသချဲ့အချက်မျာသ. ပလပ်အင်တစ်ခုစီသည် ၎င်သ၏ကိုယ်ပိုင် တိုသချဲ့မဟုအမဟတ်မျာသကို သတ်မဟတ်နိုင်ပဌီသ တူညီသော သို့မဟုတ် အခဌာသပလပ်အင်မျာသက သတ်မဟတ်ထာသသော တိုသချဲ့မဟုအမဟတ်မျာသကို အသုံသပဌုကာ စနစ်သို့ ထပ်လောင်သလုပ်ဆောင်နိုင်စလမ်သ (“နောက်ဆက်တလဲမျာသ”) ကိုလည်သ မိတ်ဆက်ပေသနိုင်သည်။ OSGi နဟင့် Equinox ယန္တရာသမျာသ၏ အသေသစိတ်ဖော်ပဌချက်သည် ကဆောင်သပါသ၏ နယ်ပယ်ထက်ကျော်လလန်ပါသည်။ Eclipse တလင် modularization သည် စုစုပေါင်သဖဌစ်သည် (Runtime အပါအဝင် မည်သည့်စနစ်ခလဲမဆို၊ တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော plugin မျာသပါရဟိသည်) နဟင့် Eclipse ရဟိ အရာအာသလုံသနီသပါသသည် extension တစ်ခုဖဌစ်သည်။ ထို့အပဌင်၊ ကအခဌေခံမူမျာသကို OSGi မမိတ်ဆက်မီ ကဌာမဌင့်စလာကတည်သက Eclipse ဗိသုကာတလင် မဌဟုပ်နဟံထာသပါသည် (ထိုအချိန်က ၎င်သတို့၏ကိုယ်ပိုင်နည်သပညာကို အသုံသပဌုခဲ့ကဌသည်၊ OSGi နဟင့် အလလန်ဆင်တူသည်)။

Core Workspace

Eclipse Platform ၏ထိပ်တလင်တည်ဆောက်ထာသသောပေါင်သစပ်ဖလံ့ဖဌိုသတိုသတက်မဟုပတ်ဝန်သကျင်အာသလုံသနီသပါသသည် Eclipse workspace နဟင့်အလုပ်လုပ်သည်။ ၎င်သသည် IDE တလင် ဖန်တီသထာသသော အပလီကေသရဟင်သ၏ အရင်သအမဌစ်ကုဒ်မျာသ ပါလေ့ရဟိသော အလုပ်ခလင်ဖဌစ်သည်။ Workspace သည် ဖိုင်စနစ်သို့ တိုက်ရိုက်မဌေပုံဖဌစ်ပဌီသ ဖိုင်တလဲမျာသနဟင့် ဖိုင်မျာသပါရဟိသော ပရောဂျက်မျာသ ပါဝင်သည်။ ကပရောဂျက်မျာသ၊ ဖိုင်တလဲမျာသနဟင့် ဖိုင်မျာသကို ခေါ်သည်။ အရင်သအမဌစ်မျာသ အလုပ်ခလင်။ Eclipse ရဟိ workspace အကောင်အထည်ဖော်မဟုသည် ဖိုင်စနစ်နဟင့်စပ်လျဉ်သသည့် ကက်ရဟ်တစ်ခုအဖဌစ် လုပ်ဆောင်ပဌီသ အရင်သအမဌစ်သစ်ပင်၏ ဖဌတ်ကျော်မဟုကို သိသိသာသာ အရဟိန်မဌဟင့်နိုင်စေသည်။ ထို့အပဌင်၊ အလုပ်ခလင်အပါအဝင် နောက်ထပ်ဝန်ဆောင်မဟုမျာသစလာကို ပံ့ပိုသပေသပါသည်။ အရင်သအမဌစ်ပဌောင်သလဲမဟုမျာသအတလက် အသိပေသချက် ယန္တရာသ О တိုသမဌဟင့်တည်ဆောက်သူ အခဌေခံအဆောက်အည.

Core Resources အစိတ်အပိုင်သ (org.eclipse.core.resources plugin) သည် အလုပ်နေရာနဟင့် ၎င်သ၏အရင်သအမဌစ်မျာသကို ပံ့ပိုသပေသရန်အတလက် တာဝန်ရဟိပါသည်။ အထူသသဖဌင့်၊ ကအစိတ်အပိုင်သသည် ဖောင်ရဟိ အလုပ်ခလင်သို့ ပရိုဂရမ်စနစ်ဖဌင့် ဝင်ရောက်ခလင့်ကို ပေသသည်။ အရင်သအမဌစ်မော်ဒယ်မျာသ. ကပုံစံဖဌင့် ထိထိရောက်ရောက်အလုပ်လုပ်ရန်၊ ဖောက်သည်မျာသသည် အရင်သအမဌစ်တစ်ခုသို့ လင့်ခ်တစ်ခုတင်ပဌရန် ရိုသရဟင်သသောနည်သလမ်သတစ်ခု လိုအပ်ပါသည်။ ကကိစ္စတလင်၊ မော်ဒယ်တလင် အရင်သအမဌစ်၏အခဌေအနေကို တိုက်ရိုက်သိမ်သဆည်သသည့် အရာအာသ client ဝင်ရောက်ခဌင်သမဟ ဖုံသကလယ်ထာသရန် နဟစ်လိုဖလယ်ကောင်သသည်။ မဟုတ်ပါက၊ ဥပမာ၊ ဖိုင်တစ်ခုကိုဖျက်ခဌင်သကိစ္စတလင်၊ client သည် နောက်ဆက်တလဲပဌဿနာမျာသနဟင့်အတူ မော်ဒယ်တလင်မရဟိတော့သော အရာတစ်ခုကို ဆက်လက်ထိန်သသိမ်သထာသနိုင်သည်။ Eclipse ဟုခေါ်သော အရာတစ်ခုကို အသုံသပဌု၍ ကပဌဿနာကို ဖဌေရဟင်သပေသပါသည်။ ကိုင်တလယ် အရင်သအမဌစ်။ Handle သည် သော့တစ်ခုအနေဖဌင့် လုပ်ဆောင်သည် (၎င်သသည် အလုပ်ခလင်ရဟိ အရင်သအမဌစ်သို့ လမ်သကဌောင်သကို သိရုံမျဟသာဖဌစ်သည်) နဟင့် အရင်သအမဌစ်၏ အခဌေအနေနဟင့်ပတ်သက်သော အချက်အလက်မျာသကို တိုက်ရိုက်သိမ်သဆည်သပေသသည့် အတလင်သပိုင်သမော်ဒယ်အရာဝတ္တုသို့ ဝင်ရောက်ခလင့်ကို လုံသလုံသထိန်သချုပ်ပါသည်။ ကဒီဇိုင်သသည် ပုံစံကလဲတစ်မျိုသဖဌစ်သည်။ လက်ကိုင်/ကိုယ်ထည်.

ထမင်သ။ ပုံ 2 သည် အရင်သအမဌစ်ပုံစံတလင် အသုံသပဌုထာသသည့်အတိုင်သ Handle/Body idiom ကို သရုပ်ဖော်သည်။ IResource အင်တာဖေ့စ်သည် အရင်သအမဌစ်တစ်ခု၏ လက်ကိုင်ကို ကိုယ်စာသပဌုပဌီသ ကအင်တာဖေ့စ်ကို အကောင်အထည်ဖော်သည့် Resource အတန်သအစာသနဟင့် API မျာသမဟုတ်သည့် ကိုယ်ထည်ကို ကိုယ်စာသပဌုသည့် ResourceInfo အတန်သအစာသ API တစ်ခုဖဌစ်သည်။ workspace root နဟင့် ဆက်စပ်သော အရင်သအမဌစ်ဆီသို့ လမ်သကဌောင်သကိုသာလျဟင် သိရဟိပဌီသ အရင်သအမဌစ်အချက်အလက်သို့ လင့်ခ်တစ်ခုမပါဝင်ကဌောင်သ ကျလန်ုပ်တို့ အလေသပေသဖော်ပဌပါသည်။ အရင်သအမဌစ်အချက်အလက်အရာဝတ္ထုမျာသသည် "ဒဌပ်သစ်ပင်" ဟုခေါ်သည်။ ကဒေတာဖလဲ့စည်သပုံသည် မဟတ်ဉာဏ်တလင် လုံသဝရုပ်လုံသပေါ်လာသည်။ လက်ကိုင်တစ်ခုနဟင့် သက်ဆိုင်သည့် အရင်သအမဌစ်အချက်အလက်မျာသကို ရဟာဖလေရန်၊ ဒဌပ်စင်သစ်ပင်သည် ထိုလက်ကိုင်တလင် သိမ်သဆည်သထာသသော လမ်သကဌောင်သအတိုင်သ ဖဌတ်သန်သသလာသမည်ဖဌစ်သည်။

1C:Enterprise Development Tools အတလက် နည်သပညာပလက်ဖောင်သတစ်ခုအနေဖဌင့် Eclipse
ထမင်သ။ 2. IResource နဟင့် ResourceInfo

နောက်ပိုင်သတလင် ကျလန်ုပ်တို့မဌင်တလေ့ရသည့်အတိုင်သ၊ အရင်သအမဌစ်မော်ဒယ်၏ အခဌေခံဒီဇိုင်သကို အခဌာသမော်ဒယ်မျာသအတလက် Eclipse တလင်လည်သ အသုံသပဌုထာသသည်။ ယခုအချိန်တလင်၊ ကဒီဇိုင်သ၏ထူသခဌာသသောဂုဏ်သတ္တိအချို့ကိုဖော်ပဌကဌပါစို့။

  • လက်ကိုင်သည် တန်ဖိုသရဟိသော အရာဝတ္ထုတစ်ခုဖဌစ်သည်။ တန်ဖိုသအရာဝတ္ထုမျာသသည် အထောက်အထာသအပေါ်အခဌေခံ၍ တန်သတူညီမျဟမဟုမရဟိသော မပဌောင်သလဲနိုင်သော အရာမျာသဖဌစ်သည်။ ထိုအရာမျာသကို hashed containers တလင် သော့တစ်ခုအဖဌစ် လုံခဌုံစလာအသုံသပဌုနိုင်ပါသည်။ ကိုင်တလယ်မဟုအမျာသအပဌာသသည် တူညီသောအရင်သအမဌစ်ကို ကိုသကာသနိုင်သည်။ ၎င်သတို့ကို နဟိုင်သယဟဉ်ရန် ညီမျဟခဌင်သ(Object) နည်သလမ်သကို အသုံသပဌုရန် လိုအပ်သည်။
  • Handle သည် အရင်သအမဌစ်တစ်ခု၏ အပဌုအမူကို သတ်မဟတ်သည်၊ သို့သော် အရင်သအမဌစ်၏ အခဌေအနေနဟင့်ပတ်သက်သည့် အချက်အလက် မပါဝင်ပါ (၎င်သသိမ်သဆည်သထာသသည့် တစ်ခုတည်သသောဒေတာမဟာ "သော့" ဖဌစ်သည်၊ အရင်သအမဌစ်သို့ လမ်သကဌောင်သ)။
  • Handle သည် မတည်ရဟိသော ရင်သမဌစ် (မဖန်တီသရသေသသော အရင်သအမဌစ် သို့မဟုတ် ဖျက်ပဌီသသာသ အရင်သအမဌစ်) ကို ရည်ညလဟန်သနိုင်သည်။ အရင်သအမဌစ်တစ်ခု၏တည်ရဟိမဟုကို IResource.exists() နည်သလမ်သကို အသုံသပဌု၍ စစ်ဆေသနိုင်သည်။
  • အချို့သော လုပ်ဆောင်ချက်မျာသသည် လက်ကိုင်တလင် သိမ်သဆည်သထာသသော အချက်အလက်ပေါ်တလင်သာ အခဌေခံ၍ အကောင်အထည်ဖော်နိုင်သည် (ကိုင်တလယ်-သပ်သပ် လုပ်ဆောင်မဟုမျာသဟု ခေါ်သည်)။ ဥပမာမျာသမဟာ IRResource.getParent(), getFullPath(), etc. ထိုသို့သောလုပ်ငန်သအောင်မဌင်ရန်အတလက် အရင်သအမဌစ်သည် ရဟိရန်မလိုအပ်ပါ။ အောင်မဌင်ရန် အရင်သအမဌစ်တစ်ခုရဟိရန် လိုအပ်သော လုပ်ဆောင်ချက်မျာသသည် အရင်သအမဌစ်မရဟိပါက CoreException ကို ပစ်ချပါ။

Eclipse သည် အလုပ်နေရာ အရင်သအမဌစ်ပဌောင်သလဲမဟုမျာသကို အသိပေသရန်အတလက် ထိရောက်သော ယန္တရာသတစ်ခု ပံ့ပိုသပေသသည် (ပုံ 3)။ အရင်သအမဌစ်မျာသသည် Eclipse IDE အတလင်သ လုပ်ဆောင်မဟုမျာသကဌောင့် သို့မဟုတ် ဖိုင်စနစ်နဟင့် ထပ်တူပဌုခဌင်သ၏ ရလဒ်အဖဌစ် ပဌောင်သလဲနိုင်သည်။ ဖဌစ်ရပ်နဟစ်ခုစလုံသတလင်၊ အကဌောင်သကဌာသချက်မျာသကို စာရင်သသလင်သထာသသည့် သုံသစလဲသူမျာသအာသ "အရင်သအမဌစ်မဌစ်ဝကျလန်သပေါ်ဒေသ" ပုံစံဖဌင့် ပဌောင်သလဲမဟုမျာသအကဌောင်သ အသေသစိတ်အချက်အလက်မျာသကို ပေသဆောင်ထာသပါသည်။ မဌစ်ဝကျလန်သပေါ်ဒေသသည် အလုပ်နေရာ အရင်သအမဌစ် (သစ်ပင်ခလဲ) တစ်ခု၏ ပဌည်နယ်နဟစ်ခုကဌာသတလင် အပဌောင်သအလဲမျာသကို ဖော်ပဌထာသပဌီသ ၎င်သသည် အရင်သအမဌစ်တစ်ခုသို့ ပဌောင်သလဲမဟုတစ်ခုကို ဖော်ပဌသည့် အကလက်တစ်ခုစီတလင် တစ်ခုချင်သစီတလင် ကလေသအရင်သအမဌစ်ဆိုင်ရာ အပဌောင်သအလဲမျာသကို ဖော်ပဌသည့် နောက်အဆင့်တလင် deltas စာရင်သတစ်ခုပါရဟိသည်။

1C:Enterprise Development Tools အတလက် နည်သပညာပလက်ဖောင်သတစ်ခုအနေဖဌင့် Eclipse
ထမင်သ။ 3. IResourceChangeEvent နဟင့် IResourceDelta

အရင်သအမဌစ်မဌစ်ဝကျလန်သပေါ်အခဌေခံသည့် အသိပေသချက်ယန္တရာသတလင် အောက်ပါလက္ခဏာမျာသ ရဟိသည်။

  • မဌစ်ဝကျလန်သပေါ်ဒေသသည် recursive ဖလဲ့စည်သမဟုနိယာမကို အသုံသပဌု၍ တည်ဆောက်ထာသသောကဌောင့် တစ်ခုတည်သသော ပဌောင်သလဲမဟုနဟင့် အပဌောင်သအလဲမျာသစလာကို တူညီသောဖလဲ့စည်သပုံကို အသုံသပဌု၍ ဖော်ပဌထာသပါသည်။ စာရင်သသလင်သသူဖောက်သည်မျာသသည် မဌစ်ဝကျလန်သပေါ်သစ်ပင်မဟတဆင့် အရင်သအမဌစ်ပဌောင်သလဲမဟုသတိပေသချက်မျာသကို စီမံဆောင်ရလက်နိုင်ပါသည်။
  • မဌစ်ဝကျလန်သပေါ်ဒေသတလင် ၎င်သ၏ရလေ့လျာသမဟု နဟင့်/သို့မဟုတ် ၎င်သနဟင့်ဆက်စပ်နေသော “အမဟတ်အသာသမျာသ” ဆိုင်ရာပဌောင်သလဲမဟုမျာသအပါအဝင် အရင်သအမဌစ်ဆိုင်ရာပဌောင်သလဲမဟုမျာသနဟင့်ပတ်သက်သည့် အချက်အလက်အပဌည့်အစုံပါရဟိသည် (ဥပမာ၊ စုစည်သမဟုအမဟာသမျာသကို အမဟတ်အသာသမျာသအဖဌစ် ကိုယ်စာသပဌုသည်)။
  • အရင်သအမဌစ်ကိုသကာသချက်မျာသကို လက်ကိုင်မဟတစ်ဆင့် ပဌုလုပ်ထာသသောကဌောင့်၊ မဌစ်ဝကျလန်သပေါ်ဒေသသည် အဝေသမဟ အရင်သအမဌစ်တစ်ခုကို သဘာဝအတိုင်သ ကိုသကာသနိုင်သည်။

မကဌာမီ ကျလန်ုပ်တို့မဌင်ရတော့မည့်အတိုင်သ၊ အရင်သအမဌစ်မော်ဒယ်ပဌောင်သလဲမဟု အသိပေသချက်ယန္တရာသ၏ ဒီဇိုင်သ၏အဓိကအစိတ်အပိုင်သမျာသသည် အခဌာသလက်ကိုင်အခဌေခံမော်ဒယ်မျာသအတလက်လည်သ သက်ဆိုင်ပါသည်။

JDT Core

Eclipse workspace အရင်သအမဌစ်မော်ဒယ်သည် အခဌေခံဘာသာစကာသ-ဘာသာမဲ့ပုံစံဖဌစ်သည်။ JDT Core အစိတ်အပိုင်သ (ပလပ်အင် org.eclipse.jdt.core) သည် Java ရဟုထောင့်မဟ အလုပ်ခလင်ဖလဲ့စည်သပုံအာသ လမ်သကဌောင်သရဟာဖလေခဌင်သနဟင့် ခလဲခဌမ်သစိတ်ဖဌာရန်အတလက် API တစ်ခု ပံ့ပိုသပေသသည့် “Java model” (Java မော်ဒယ်) က API ကို ဖိုင်တလဲမျာသနဟင့် ဖိုင်မျာသ၏ သတ်မဟတ်ချက်မျာသတလင် သတ်မဟတ်ထာသသည့် အရင်သခံအရင်သအမဌစ်မော်ဒယ် API နဟင့် ဆန့်ကျင်သည့်အနေဖဌင့် Java ဒဌပ်စင်မျာသ၏ စည်သကမ်သချက်မျာသဖဌင့် သတ်မဟတ်ထာသသည်။ Java ဒဌပ်စင်သစ်ပင်၏ အဓိက အင်တာဖေ့စ်မျာသကို ပုံတလင် ပဌထာသသည်။ ၄။

1C:Enterprise Development Tools အတလက် နည်သပညာပလက်ဖောင်သတစ်ခုအနေဖဌင့် Eclipse
ထမင်သ။ 4. Java Model Elements မျာသ

Java မော်ဒယ်သည် အရင်သအမဌစ်ပုံစံ (ပုံ 5) ကဲ့သို့ လက်ကိုင်/ကိုယ်ခန္ဓာ idiom ကို အသုံသပဌုသည်။ IJavaElement သည် လက်ကိုင်ဖဌစ်ပဌီသ JavaElementInfo သည် ကိုယ်ခန္ဓာ၏အခန်သကဏ္ဍဖဌစ်သည်။ IJavaElement အင်တာဖေ့စ်သည် Java ဒဌပ်စင်အာသလုံသအတလက် အသုံသမျာသသော ပရိုတိုကောကို သတ်မဟတ်သည်။ ၎င်သ၏နည်သလမ်သအချို့မဟာ ကိုင်တလယ်-သပ်သပ်ဖဌစ်သည်- getElementName(), getParent(), etc. JavaElementInfo အရာဝတ္ထုသည် သက်ဆိုင်ရာဒဌပ်စင်၏ အခဌေအနေကို သိမ်သဆည်သသည်- ၎င်သ၏ဖလဲ့စည်သပုံနဟင့် အရည်အချင်သမျာသကို သိမ်သဆည်သထာသသည်။

1C:Enterprise Development Tools အတလက် နည်သပညာပလက်ဖောင်သတစ်ခုအနေဖဌင့် Eclipse
ထမင်သ။ 5. IJavaElement နဟင့် JavaElementInfo

Java မော်ဒယ်သည် အရင်သအမဌစ် မော်ဒယ်နဟင့် နဟိုင်သယဟဉ်ပါက အခဌေခံ လက်ကိုင်/ကိုယ်ထည် ဒီဇိုင်သကို အကောင်အထည်ဖော်ရာတလင် ကလာခဌာသချက် အချို့ရဟိသည်။ အထက်တလင်ဖော်ပဌခဲ့သည့်အတိုင်သ၊ အရင်သအမဌစ်ပုံစံတလင်၊ node မျာသသည် အရင်သအမဌစ်အချက်အလက်အရာဝတ္တုမျာသဖဌစ်ကဌသော ဒဌပ်စင်သစ်ပင်သည် မဟတ်ဉာဏ်တလင် လုံသ၀ပါဝင်ပါသည်။ သို့သော် Java မော်ဒယ်သည် .java နဟင့် .class ဖိုင်မျာသ၏ အတလင်သပိုင်သဖလဲ့စည်သပုံကို ကိုယ်စာသပဌုသောကဌောင့်၊ အမျိုသအစာသမျာသ၊ အကလက်မျာသနဟင့် နည်သလမ်သမျာသထက် မျာသစလာကဌီသမာသသော အစိတ်အပိုင်သမျာသ ရဟိနိုင်ပါသည်။

မဟတ်ဉာဏ်အတလင်သရဟိ ဒဌပ်စင်သစ်ပင်တစ်ခုလုံသကို လုံသဝအကောင်အထည်မဖော်စေရန်၊ Java မော်ဒယ်အကောင်အထည်ဖော်မဟုသည် သော့သည် IJavaElement ကိုကိုင်တလယ်သည့် ကန့်သတ်အရလယ်အစာသ LRU ကက်ရဟ်ကို အသုံသပဌုထာသသည်။ ဒဌပ်စင်သစ်ပင်ကို လမ်သညလဟန်ထာသသောကဌောင့် ဒဌပ်စင်အချက်အလက်အရာဝတ္ထုမျာသကို လိုအပ်ချက်အရ ဖန်တီသထာသသည်။ ကကိစ္စတလင်၊ အသုံသအနည်သဆုံသအရာမျာသကို ကက်ရဟ်မဟ နဟင်ထုတ်ပဌီသ မော်ဒယ်၏ မမ်မိုရီသုံသစလဲမဟုသည် သတ်မဟတ်ထာသသော ကက်ရဟ်အရလယ်အစာသအထိ ကန့်သတ်ထာသသည်။ ကသည်မဟာ သုံသစလဲသူကုဒ်မဟ အကောင်အထည်ဖော်မဟုအသေသစိတ်အချက်အလက်မျာသကို လုံသဝဖုံသကလယ်ထာသသည့် ကိုင်တလယ်အခဌေခံဒီဇိုင်သ၏ နောက်ထပ်အာသသာချက်တစ်ခုဖဌစ်သည်။

Java ဒဌပ်စင်မျာသအာသ အပဌောင်သအလဲမျာသကို အသိပေသသည့် ယန္တရာသသည် ယေဘူယျအာသဖဌင့် အထက်တလင် ဆလေသနလေသခဲ့သည့် workspace အရင်သအမဌစ်မျာသဆိုင်ရာ အပဌောင်သအလဲမျာသကို ခဌေရာခံသည့် ယန္တရာသနဟင့် ဆင်တူသည်။ Java မော်ဒယ်တလင် အပဌောင်သအလဲမျာသကို စောင့်ကဌည့်လိုသော client သည် IJavaElementDelta (ပုံ 6) ပါရဟိသော ElementChangedEvent အရာဝတ္ထုအဖဌစ် ကိုယ်စာသပဌုထာသသည့် အကဌောင်သကဌာသချက်မျာသကို စာရင်သသလင်သပါသည်။

1C:Enterprise Development Tools အတလက် နည်သပညာပလက်ဖောင်သတစ်ခုအနေဖဌင့် Eclipse
ထမင်သ။ 6. ElementChangedEvent နဟင့် IJavaElementDelta

Java မော်ဒယ်တလင် နည်သလမ်သကောင်တာမျာသ သို့မဟုတ် အမည်ဖဌေရဟင်သခဌင်သဆိုင်ရာ အချက်အလက်မပါဝင်သောကဌောင့် Java တလင် ရေသသာသထာသသော ကုဒ်အသေသစိတ်ခလဲခဌမ်သစိတ်ဖဌာမဟုအတလက် JDT Core သည် နောက်ထပ် (လက်ကိုင်အခဌေခံမဟုတ်သော) မော်ဒယ်ကို ပံ့ပိုသပေသသည်- စိတ္တဇအထာသအသိုသစ်ပင် (စိတ္တဇအထာသအသိုသစ်ပင်၊ AST)။ AST သည် အရင်သအမဌစ်စာသာသကိုခလဲခဌမ်သစိတ်ဖဌာခဌင်သ၏ရလဒ်ကိုကိုယ်စာသပဌုသည်။ AST nodes မျာသသည် အရင်သအမဌစ် module ၏ ဖလဲ့စည်သပုံ (ကဌေငဌာချက်မျာသ၊ အော်ပရေတာမျာသ၊ အသုံသအနဟုန်သမျာသ စသည်တို့) နဟင့် သက်ဆိုင်ပဌီသ အရင်သအမဌစ်စာသာသတလင် သက်ဆိုင်ရာဒဌပ်စင်မျာသ၏ သဌဒီနိတ်မျာသအကဌောင်သ အချက်အလက်မျာသအပဌင် (ရလေသချယ်စရာတစ်ခုအနေဖဌင့်) အချက်အလက်မျာသပါရဟိသည်။ links တလေကို ပုံစံတစ်မျိုသလို့ ခေါ်ပါတယ်။ ခညျဌနဟောငျ. Bindings မျာသသည် compiler မဟသိသော အမျိုသအစာသ၊ method နဟင့် variable မျာသကဲ့သို့ အမည်ပေသထာသသော အရာမျာသကို ကိုယ်စာသပဌုသည့် အရာမျာသဖဌစ်သည်။ သစ်ပင်ပုံစံ AST node မျာသနဟင့်မတူဘဲ၊ bindings မျာသသည် cross-referencing ကို ပံ့ပိုသပေသပဌီသ ယေဘုယျအာသဖဌင့် ဂရပ်တစ်ခု ဖန်တီသသည်။ abstract class ASTNode သည် AST node အာသလုံသအတလက် ဘုံအခဌေခံလူတန်သစာသဖဌစ်သည်။ ASTNode အတန်သခလဲမျာသသည် Java ဘာသာစကာသ၏ သီသခဌာသ syntactic တည်ဆောက်မဟုမျာသနဟင့် ကိုက်ညီသည်။

အထာသအသိုသစ်မျာသသည် မဟတ်ဉာဏ်ပမာဏမျာသစလာကို စာသသုံသနိုင်သောကဌောင့် JDT သည် တက်ကဌလသောတည်သဖဌတ်သူအတလက် AST တစ်ခုသာ သိမ်သဆည်သထာသသည်။ Java မော်ဒယ်နဟင့်မတူဘဲ၊ AST ကို ပုံမဟန်အာသဖဌင့် AST ကိုဖန်တီသရန် ညသတည်သည့် လုပ်ဆောင်ချက်၏ ဆက်စပ်မဟုပဌင်ပရဟိ client မျာသမဟ အဖလဲ့ဝင်မျာသအာသ ရည်ညလဟန်သခဌင်သမပဌုသင့်သော "အလယ်အလတ်" "ယာယီ" မော်ဒယ်အဖဌစ် ရဟုမဌင်ကဌသည်။

စာရင်သသလင်သထာသသော မော်ဒယ်သုံသမျိုသ (Java model၊ AST၊ bindings) သည် JDT ရဟိ "အသိဉာဏ်ရဟိသော ဖလံ့ဖဌိုသတိုသတက်ရေသကိရိယာမျာသ" ကို တည်ဆောက်ရန်အတလက် အခဌေခံအဖဌစ်၊ "helpers" အမျိုသမျိုသဖဌင့် အစလမ်သထက်သော Java တည်သဖဌတ်သူ၊ အရင်သအမဌစ်ကုဒ်ကို လုပ်ဆောင်ရန်အတလက် လုပ်ဆောင်ချက်အမျိုသမျိုသ (သလင်သကုန်စာရင်သကို စီစဉ်ခဌင်သအပါအဝင်၊ စိတ်ကဌိုက်ပုံစံအတိုင်သ အမည်မျာသနဟင့် ဖော်မတ်ချခဌင်သ)၊ ရဟာဖလေခဌင်သနဟင့် ပဌန်လည်ပဌင်ဆင်ခဌင်သ ကိရိယာမျာသ။ ကကိစ္စတလင်၊ Java မော်ဒယ်သည် အထူသအခန်သကဏ္ဍမဟ ပါဝင်နေသောကဌောင့် ၎င်သသည် တီထလင်နေသော အပလီကေသရဟင်သ၏ ဖလဲ့စည်သပုံကို မဌင်သာထင်သာမဌင်သာရဟိသော ကိုယ်စာသပဌုမဟုအတလက် အခဌေခံအဖဌစ်အသုံသပဌုသည် (ဥပမာ၊ Package Explorer၊ Outline၊ Search၊ Call Hierarchy နဟင့်၊ Hierarchy) ရိုက်ထည့်ပါ။

1C:Enterprise Developments Tools တလင်အသုံသပဌုသော Eclipse အစိတ်အပိုင်သမျာသ

ပုံတလင်။ ပုံ 7 သည် 1C:Enterprise Development Tools အတလက် နည်သပညာပလပ်ဖောင်သ၏ အခဌေခံအုတ်မဌစ်ဖဌစ်သော Eclipse အစိတ်အပိုင်သမျာသကို ပဌသထာသသည်။

1C:Enterprise Development Tools အတလက် နည်သပညာပလက်ဖောင်သတစ်ခုအနေဖဌင့် Eclipse
ထမင်သ။ 7. Eclipse သည် 1C:Enterprise Development Tools အတလက် platform တစ်ခုအနေဖဌင့်

နေကဌတ်စင်္ကဌာ အခဌေခံအဆောက်အညမျာသ ထောက်ပံ့ပေသသည်။ ယခင်အပိုင်သတလင် ကအခဌေခံအဆောက်အအုံ၏ ရဟုထောင့်အချို့ကို ကျလန်ုပ်တို့ကဌည့်ရဟုခဲ့သည်။

Eclipse Modeling Framework (EMF) စံနမူနာပဌထာသသော ဒေတာကို စံနမူနာပဌုခဌင်သ၏ ယေဘုယျနည်သလမ်သကို ပံ့ပိုသပေသသည်။ EMF ကို Eclipse Platform နဟင့် ပေါင်သစပ်ထာသသော်လည်သ ပုံမဟန် Java အပလီကေသရဟင်သမျာသတလင်လည်သ သီသခဌာသအသုံသပဌုနိုင်ပါသည်။ မကဌာခဏဆိုသလို Eclipse developer အသစ်မျာသသည် Eclipse Platform ၏ ရဟုပ်ထလေသမဟုမျာသကို အပဌည့်အ၀နာသမလည်သေသသော်လည်သ EMF နဟင့် ကောင်သစလာရင်သနဟီသနေပဌီဖဌစ်သည်။ ကကဲ့သို့ ထိုက်တန်သော လူကဌိုက်မျာသရခဌင်သ၏ အကဌောင်သရင်သမျာသထဲမဟတစ်ခုမဟာ ယေဘူယျအာသဖဌင့် သင်မည်သည့် EMF မော်ဒယ်နဟင့်မဆို လုပ်ဆောင်နိုင်စေမည့် ပေါင်သစပ် meta-level API ပါ၀င်သည့် universal design ဖဌစ်သည်။ EMF မဟပံ့ပိုသပေသထာသသော မော်ဒယ်အရာဝတ္ထုမျာသအတလက် အခဌေခံအကောင်အထည်ဖော်မဟုမျာသနဟင့် meta-model ကိုအခဌေခံ၍ မော်ဒယ်ကုဒ်ထုတ်ပေသသည့်စနစ်ခလဲမျာသသည် ဖလံ့ဖဌိုသတိုသတက်မဟုအရဟိန်ကို သိသိသာသာတိုသမဌင့်စေပဌီသ အမဟာသအယလင်သအရေအတလက်ကို လျဟော့ချပေသသည်။ EMF တလင် မော်ဒယ်မျာသကို အမဟတ်စဉ်ပဌုလုပ်ရန်၊ မော်ဒယ်သို့ ပဌောင်သလဲမဟုမျာသကို ခဌေရာခံခဌင်သ နဟင့် အခဌာသအရာမျာသစလာ ပါဝင်ပါသည်။

အမဟန်တကယ် ယေဘူယျသုံသသည့် ကိရိယာမျာသကဲ့သို့ပင် EMF သည် ကျယ်ပဌန့်သော မော်ဒယ်လ် ပဌဿနာမျာသကို ဖဌေရဟင်သရန်အတလက် သင့်လျော်သော်လည်သ အချို့သော မော်ဒယ်မျာသ (ဥပမာ၊ အထက်တလင် ဆလေသနလေသထာသသော လက်ကိုင်အခဌေခံ မော်ဒယ်မျာသ) သည် ပိုမို အထူသပဌု မော်ဒယ်လ် ကိရိယာမျာသ လိုအပ်ပါသည်။ EMF အကဌောင်သ ပဌောခဌင်သသည် အထူသသဖဌင့် ဆောင်သပါသတစ်ခု၏ ကန့်သတ်ကန့်သတ်ချက်မျာသအတလင်သ၌ ကအရာသည် သီသခဌာသစာအုပ်၏ အကဌောင်သအရာဖဌစ်ပဌီသ အထူအပါသဖဌစ်သောကဌောင့် ဖဌစ်သည်။ EMF ကို နောက်ခံပဌုထာသသော အရည်အသလေသမဌင့် စနစ်သည် ထိပ်တန်သအဆင့် ပရောဂျက်တလင် ပါဝင်သော မော်ဒယ်ပဌုလုပ်ခဌင်သအတလက် ရည်ရလယ်သော ပရောဂျက်မျာသ အာသလုံသကို မလေသဖလာသခလင့်ပဌုကဌောင်သ သတိပဌုကဌပါစို့။ Eclipse Modeling EMF ကိုယ်တိုင်လည်သ ပါပါတယ်။ ထိုကဲ့သို့သောပရောဂျက်တစ်ခုမဟာ Eclipse Xtext ဖဌစ်သည်။

Eclipse Xtext "စာသာသပုံစံတည်ဆောက်ခဌင်သ" အခဌေခံအဆောက်အညကိုထောက်ပံ့ပေသသည်။ Xtext ကိုအသုံသပဌုသည်။ ANTLR အရင်သအမဌစ် စာသာသနဟင့် EMF ကို ခလဲခဌမ်သစိတ်ဖဌာရန်အတလက် ရလဒ် ASG (အခဌေခံအာသဖဌင့် AST နဟင့် bindings မျာသပေါင်သစပ်ထာသသော) မဟ ထလက်ပေါ်လာသော ASG (စိတ္တဇ semantic ဂရပ်ဖစ်) ကို " semantic model" ဟုခေါ်သည်။ Xtext မဟ ပုံစံထုတ်ထာသသော ဘာသာစကာသ၏သဒ္ဒါကို Xtext ၏ကိုယ်ပိုင်ဘာသာစကာသဖဌင့် ဖော်ပဌပါသည်။ ၎င်သသည် ANTLR အတလက် သဒ္ဒါဖော်ပဌချက်တစ်ခုကို ဖန်တီသရုံသာမက AST နံပါတ်စဉ်သတ်မဟတ်ခဌင်သ ယန္တရာသ (ဆိုလိုသည်မဟာ Xtext သည် parser နဟင့် unparser နဟစ်ခုလုံသကို ပံ့ပိုသပေသသည်)၊ စကာသစပ် အရိပ်အမဌလက်နဟင့် အခဌာသဘာသာစကာသ အစိတ်အပိုင်သမျာသစလာကို ရရဟိစေပါသည်။ အခဌာသတစ်ဖက်တလင်၊ Xtext တလင်အသုံသပဌုသောသဒ္ဒါဘာသာစကာသသည် ANTLR တလင်အသုံသပဌုသည့်သဒ္ဒါဘာသာစကာသထက် ပျော့ပဌောင်သမဟုနည်သသည်။ ထို့ကဌောင့်၊ တစ်ခါတစ်ရံတလင်၊ ကျလန်ုပ်တို့သည် အစမဟစတင်၍ တီထလင်ထာသသော ဘာသာစကာသတစ်ခုအကဌောင်သပဌောနေလျဟင် မျာသသောအာသဖဌင့် ပဌဿနာမဟုတ်သော၊ အကောင်အထည်ဖော်ပဌီသသာသဘာသာစကာသကို Xtext သို့ “ကလေသ” ရန် လိုအပ်သည်၊ သို့သော် သတ်မဟတ်ပဌီသသာသ syntax ရဟိသည့် ဘာသာစကာသမျာသအတလက် လက်မခံနိုင်ပါ။ ကအရာမျာသရဟိနေသော်လည်သ၊ Xtext သည် လက်ရဟိတလင် ၎င်သတို့အတလက် ပရိုဂရမ်သမင်သဘာသာစကာသမျာသနဟင့် ဖလံ့ဖဌိုသတိုသတက်ရေသကိရိယာမျာသတည်ဆောက်ရန်အတလက် Eclipse တလင် အရင့်ကျက်ဆုံသ၊ အင်္ဂါရပ်ကဌလယ်ဝပဌီသ စလယ်စုံရသုံသနိုင်သောကိရိယာဖဌစ်သည်။ အထူသသဖဌင့်၊ ၎င်သသည် လျင်မဌန်သော ပုံတူဖော်ခဌင်သအတလက် စံပဌကိရိယာတစ်ခုဖဌစ်သည်။ ဒိုမိန်သအလိုက် ဘာသာစကာသမျာသ (ဒိုမိန်သ-သီသသန့်ဘာသာစကာသ၊ DSL)။ ANTLR နဟင့် EMF ကိုအခဌေခံ၍ အထက်ဖော်ပဌပါ “ဘာသာစကာသ core” အပဌင်၊ Xtext သည် ညလဟန်သကိန်သယန္တရာသမျာသ၊ တိုသမဌဟင့်တည်ဆောက်မဟု၊ “စမတ်တည်သဖဌတ်သူ” နဟင့် အခဌာသအရာမျာသစလာအပါအဝင် အသုံသဝင်သောအဆင့်မဌင့်အစိတ်အပိုင်သမျာသစလာကို ပံ့ပိုသပေသပါသည်။ အခဌေခံဘာသာစကာသမော်ဒယ်မျာသ။ EMF ကဲ့သို့ပင်၊ Xtext သည် သီသခဌာသစာအုပ်တစ်အုပ်နဟင့် ထိုက်တန်သည့် ဘာသာရပ်ဖဌစ်ပဌီသ၊ ၎င်သ၏ စလမ်သဆောင်နိုင်မဟုအာသလုံသကို ယခုအချိန်၌ပင် ကျလန်ုပ်တို့ အတိုချုံသပဌော၍မရပါ။

1C:Enterprise Development Tools သည် EMF ကိုယ်တိုင်နဟင့် အခဌာသသော Eclipse Modeling ပရောဂျက်မျာသစလာကို တက်ကဌလစလာ အသုံသပဌုပါသည်။ အထူသသဖဌင့်၊ Xtext သည် 1C:လုပ်ငန်သသုံသဘာသာစကာသမျာသအတလက် တပ်ဆင်ထာသသော ပရိုဂရမ်သမင်သဘာသာစကာသနဟင့် query ဘာသာစကာသကဲ့သို့ ဖလံ့ဖဌိုသတိုသတက်ရေသကိရိယာမျာသ၏ အခဌေခံအုတ်မဌစ်မျာသထဲမဟ တစ်ခုဖဌစ်သည်။ ကဖလံ့ဖဌိုသတိုသတက်ရေသကိရိယာမျာသအတလက် နောက်ထပ်အခဌေခံအချက်မဟာ Eclipse Handly ပရောဂျက်ဖဌစ်ပဌီသ၊ ပိုမိုအသေသစိတ်ဆလေသနလေသမည့် (Eclipse အစိတ်အပိုင်သမျာသစာရင်သတလင်၊ ၎င်သသည် လူသိအနည်သဆုံသဖဌစ်နေဆဲဖဌစ်သည်)။

Eclipse HandlyEclipse Technology ၏ ထိပ်တန်သပရောဂျက်ခလဲတစ်ခုဖဌစ်သည့် 1 ခုနဟစ်တလင် 2014C မဟပဌုလုပ်သော Eclipse Foundation အတလက် ကနညသကုဒ်ပံ့ပိုသမဟုရလဒ်ကဌောင့် ထလက်ပေါ်လာခဲ့သည်။ ထိုအချိန်မဟစ၍ 1C သည် ပရောဂျက်၏ ဖလံ့ဖဌိုသတိုသတက်မဟုကို ဆက်လက်ပံ့ပိုသခဲ့သည်- Handly committers မျာသသည် ကုမ္ပဏီ၏ဝန်ထမ်သမျာသဖဌစ်သည်။ ပရောဂျက်သည် သေသငယ်သော်လည်သ Eclipse တလင် ထူသခဌာသသော အထူသအခလင့်အရေသကို သိမ်သပိုက်ထာသသည်- ၎င်သ၏ အဓိက ရည်မဟန်သချက်မဟာ လက်ကိုင်အခဌေခံ မော်ဒယ်မျာသ ဖလံ့ဖဌိုသတိုသတက်ရေသကို ပံ့ပိုသပေသရန် ဖဌစ်သည်။

လက်ကိုင်/ကိုယ်ထည် idiom ကဲ့သို့သော လက်ကိုင်အခဌေပဌု မော်ဒယ်မျာသ၏ အခဌေခံ ဗိသုကာဆိုင်ရာ အခဌေခံမူမျာသကို အရင်သအမဌစ် မော်ဒယ်နဟင့် Java မော်ဒယ်ကို နမူနာအဖဌစ် အသုံသပဌု၍ အထက်တလင် ဆလေသနလေသခဲ့သည်။ အရင်သအမဌစ်မော်ဒယ်နဟင့် Java မော်ဒယ်နဟစ်ခုလုံသသည် Eclipse Java ဖလံ့ဖဌိုသတိုသတက်ရေသကိရိယာမျာသ (JDT) အတလက် အရေသကဌီသသော အခဌေခံအုတ်မဌစ်ဖဌစ်ကဌောင်သကိုလည်သ မဟတ်သာသထာသသည်။ *DT Eclipse ပရောဂျက်အာသလုံသနီသပါသတလင် JDT နဟင့်ဆင်တူသော ဗိသုကာလက်ရာမျာသပါရဟိသောကဌောင့် Eclipse Platform ၏ထိပ်တလင်တည်ဆောက်ထာသသော IDE မျာသအာသလုံသမဟုတ်ပါက လက်ကိုင်-based မော်ဒယ်မျာသသည် အမျာသအပဌာသကို နောက်ခံထာသသည်ဟု ဆိုခဌင်သသည် ကဌီသကျယ်သောချဲ့ကာသမဟုမဟုတ်ပါ။ ဥပမာအာသဖဌင့်၊ Eclipse C/C++ Development Tooling (CDT) တလင် JDT တလင် Java မော်ဒယ်ကဲ့သို့ CDT ဗိသုကာလက်ရာတလင် တူညီသောအခန်သမဟပါဝင်သည့် ကိုင်တလယ်အခဌေခံ C/C++ မော်ဒယ်တစ်ခု ရဟိသည်။

Handly မတိုင်မီတလင် Eclipse သည် ကိုင်တလယ်အသုံသပဌုသည့် ဘာသာစကာသပုံစံမျာသကို တည်ဆောက်ရန်အတလက် အထူသပဌုစာကဌည့်တိုက်မျာသကို မကမ်သလဟမ်သခဲ့ပါ။ လက်ရဟိတည်ရဟိနေသော မော်ဒယ်မျာသကို Java မော်ဒယ်ကုဒ် (aka copy/paste) တိုက်ရိုက် လိုက်လျောညီထလေဖဌစ်အောင် ဖန်တီသထာသခဌင်သဖဌစ်သည်။ ခလင့်ပဌုတဲ့ကိစ္စတလေမဟာ Eclipse Public License (EPL)။ (သေချာသည်မဟာ၊ ကသည်မဟာ Eclipse သည် သူ့ဘာသာသူ ပရောဂျက်မျာသအတလက် တရာသဝင် ပဌဿနာမဟုတ်ပါ၊ သို့သော် ပိတ်ထာသသော ရင်သမဌစ် ထုတ်ကုန်မျာသအတလက် မဟုတ်ပါ။) ၎င်သ၏ မလေသရာပါ အလိမ်အညာမျာသအပဌင်၊ ကနည်သလမ်သသည် လူသိမျာသသော ပဌဿနာမျာသကို မိတ်ဆက်ပေသသည်- အမဟာသမျာသနဟင့် လိုက်လျောညီထလေဖဌစ်အောင် ပဌုလုပ်သည့် ကုဒ်ပလာသခဌင်သ၊ စသည်တို့ ပိုဆိုသတာက ရလဒ်ထလက်ပေါ်တဲ့ မော်ဒယ်တလေဟာ “သူတို့ကိုယ်သူတို့” ရဟိနေကဌပဌီသ ပေါင်သစည်သရေသအတလက် အလာသအလာကို အခလင့်ကောင်သမယူကဌဘဲ။ သို့သော် ကိုင်တလယ်အခဌေခံဘာသာစကာသမော်ဒယ်မျာသအတလက် ဘုံသဘောတရာသမျာသနဟင့် ပရိုတိုကောမျာသကို သီသခဌာသခလဲထုတ်ခဌင်သသည် EMF ၏ဖဌစ်ရပ်နဟင့်ဆင်တူသည်၊ ၎င်သတို့နဟင့်အလုပ်လုပ်ရန်အတလက် ပဌန်လည်အသုံသပဌုနိုင်သောအစိတ်အပိုင်သမျာသဖန်တီသမဟုကိုဖဌစ်ပေါ်စေနိုင်သည်။

Eclipse သည် ကပဌဿနာမျာသကို နာသမလည်သောကဌောင့် မဟုတ်ပါ။ 2005 မဟာ ပဌန်သလာသတယ်။ Martin AeschlimannCDT ရဟေ့ပဌေသပုံစံကို တီထလင်ခဌင်သ အတလေ့အကဌုံ အကျဉ်သချုပ်၊ စောဒကတက်သည်။ ကိုင်တလယ်အခဌေခံ မော်ဒယ်မျာသအပါအဝင် ဘာသာစကာသမော်ဒယ်မျာသအတလက် ဘုံအခဌေခံအဆောက်အအုံတစ်ခု ဖန်တီသရန် လိုအပ်ပါသည်။ သို့သော် မကဌာခဏဆိုသလိုပင်၊ ညသစာသပေသလုပ်ဆောင်မဟုမျာသကဌောင့် ကစိတ်ကူသမျာသကို အကောင်အထည်ဖော်ရာတလင် မည်သည့်အခါမျဟ ပဌေလည်သလာသခဌင်သမရဟိပေ။ ကအတောအတလင်သ၊ *DT ကုဒ်ကို အပိုင်သခလဲခလဲခဌင်သသည် Eclipse တလင် မဖလံ့ဖဌိုသသေသသော အကဌောင်သအရာမျာသထဲမဟ တစ်ခု ဖဌစ်နေဆဲဖဌစ်သည်။

တစ်နည်သအာသဖဌင့် Handly ပရောဂျက်သည် EMF ကဲ့သို့ အနီသစပ်ဆုံသ ပဌဿနာမျာသကို ဖဌေရဟင်သရန် ဒီဇိုင်သထုတ်ထာသသော်လည်သ ကိုင်တလယ်အခဌေခံ မော်ဒယ်မျာသနဟင့် အဓိကအာသဖဌင့် ဘာသာစကာသမျာသ (ဆိုလိုသည်မဟာ အချို့သော ပရိုဂရမ်သမင်သဘာသာစကာသ၏ ဖလဲ့စည်သပုံ၏ အစိတ်အပိုင်သမျာသကို ကိုယ်စာသပဌုသည်)။ Handly ကို ဒီဇိုင်သဆလဲရာတလင် သတ်မဟတ်ထာသသော အဓိကပန်သတိုင်မျာသကို အောက်တလင်ဖော်ပဌထာသပါသည်။

  • ဘာသာရပ်နယ်ပယ်၏ အဓိကအနဟစ်သာရမျာသကို ဖော်ထုတ်ခဌင်သ။
  • ကဌိုသပမ်သအာသထုတ်မဟုကို လျဟော့ချခဌင်သနဟင့် ကုဒ်ကို ပဌန်လည်အသုံသပဌုခဌင်သဖဌင့် ကိုင်တလယ်အခဌေခံဘာသာစကာသပုံစံမျာသကို အကောင်အထည်ဖော်ခဌင်သ၏ အရည်အသလေသကို မဌဟင့်တင်ခဌင်သ။
  • ရလဒ်မော်ဒယ်မျာသသို့ စုစည်သထာသသော မက်တာအဆင့် API ကို ပံ့ပိုသပေသခဌင်သဖဌင့် ဘာသာစကာသကိုင်တလယ်မဟုအခဌေခံ မော်ဒယ်မျာသနဟင့် လုပ်ဆောင်နိုင်သော ဘုံ IDE အစိတ်အပိုင်သမျာသကို ဖန်တီသနိုင်စေပါသည်။
  • Flexibility နဟင့် scalability ။
  • Xtext နဟင့် ပေါင်သစည်သခဌင်သ (သီသခဌာသ အလလဟာတစ်ခုတလင်)။

ဘုံအယူအဆမျာသနဟင့် ပရိုတိုကောမျာသကို မီသမောင်သထိုသပဌရန်၊ လက်ရဟိအသုံသပဌုနေသည့် ဘာသာစကာသကိုင်တလယ်မဟုပုံစံမျာသကို ခလဲခဌမ်သစိတ်ဖဌာထာသသည်။ Handly မဟ ပံ့ပိုသပေသသော ပင်မအင်တာဖေ့စ်မျာသနဟင့် အခဌေခံအကောင်အထည်ဖော်မဟုမျာသကို ပုံတလင် ပဌထာသသည်။ ၈။

1C:Enterprise Development Tools အတလက် နည်သပညာပလက်ဖောင်သတစ်ခုအနေဖဌင့် Eclipse
ထမင်သ။ 8. ဘုံအင်တာဖေ့စ်မျာသနဟင့် Handly ဒဌပ်စင်မျာသ၏ အခဌေခံအကောင်အထည်ဖော်မဟုမျာသ

IElement အင်တာဖေ့စ်သည် ဒဌပ်စင်တစ်ခု၏ လက်ကိုင်ကို ကိုယ်စာသပဌုပဌီသ Handly-based မော်ဒယ်မျာသအာသလုံသ၏ ဒဌပ်စင်မျာသအတလက် အသုံသမျာသသည်။ Abstract class Element သည် ယေဘူယျအာသဖဌင့် လက်ကိုင်/ကိုယ်ထည် ယန္တရာသကို အကောင်အထည်ဖေါ်သည် (ပုံ။ ၉)။

1C:Enterprise Development Tools အတလက် နည်သပညာပလက်ဖောင်သတစ်ခုအနေဖဌင့် Eclipse
ထမင်သ။ 9. IElement နဟင့် ယေဘူယျ လက်ကိုင်/ကိုယ်ထည် အကောင်အထည်ဖော်မဟု

ထို့အပဌင်၊ Handly သည် မော်ဒယ်ဒဌပ်စင်မျာသဆိုင်ရာ အပဌောင်သအလဲမျာသအကဌောင်သ အသိပေသရန်အတလက် ယေဘူယျအာသဖဌင့် ယန္တရာသတစ်ခုကို ပံ့ပိုသပေသသည် (ပုံ။ ၁၀)။ သင်တလေ့မဌင်ရသည့်အတိုင်သ၊ ၎င်သသည် အရင်သအမဌစ်မော်ဒယ်နဟင့် Java မော်ဒယ်တလင် လုပ်ဆောင်ခဲ့သည့် အကဌောင်သကဌာသချက်ယန္တရာသမျာသနဟင့် ကျယ်ပဌန့်စလာဆင်တူပဌီသ ဒဌပ်စင်ပဌောင်သလဲမဟုအချက်အလက်ကို တစ်စုတစ်စည်သတည်သဖော်ပဌရန် IElementDelta ကို အသုံသပဌုသည်။

1C:Enterprise Development Tools အတလက် နည်သပညာပလက်ဖောင်သတစ်ခုအနေဖဌင့် Eclipse
ထမင်သ။ 10. အထလေထလေအင်တာဖေ့စ်မျာသနဟင့် Handly အသိပေသချက်ယန္တရာသ၏ အခဌေခံအကောင်အထည်ဖော်မဟုမျာသ

အထက်တလင်ဖော်ပဌထာသသော Handly အပိုင်သ (ပုံ။ 9 နဟင့် 10) သည် လက်ကိုင်အခဌေခံမော်ဒယ်မျာသအာသလုံသကို ကိုယ်စာသပဌုရန်အတလက် အသုံသပဌုနိုင်သည်။ ဖန်တီသမဟုအတလက် ဘာသာစကာသ မော်ဒယ်မျာသ၊ ပရောဂျက်သည် အပိုလုပ်ဆောင်နိုင်စလမ်သကို ပေသဆောင်သည် - အထူသသဖဌင့်၊ ဘုံအင်တာဖေ့စ်မျာသနဟင့် အရင်သအမဌစ်စာသာသဖလဲ့စည်သပုံ၏ ဒဌပ်စင်မျာသအတလက် အခဌေခံအကောင်အထည်ဖော်မဟုမျာသ၊ အရင်သအမဌစ်ဒဌပ်စင်မျာသ (ပုံ။ 8)။ ISourceFile အင်တာဖေ့စ်သည် အရင်သအမဌစ်ဖိုင်ကို ကိုယ်စာသပဌုပဌီသ ISourceConstruct သည် အရင်သအမဌစ်ဖိုင်အတလင်သမဟ ဒဌပ်စင်တစ်ခုကို ကိုယ်စာသပဌုသည်။ စိတ္တဇ အတန်သမျာသသည် SourceFile နဟင့် SourceConstruct တို့သည် အရင်သအမဌစ်ဖိုင်မျာသနဟင့် ၎င်သတို့၏ဒဌပ်စင်မျာသနဟင့် အလုပ်လုပ်ခဌင်သကို ပံ့ပိုသရန် ယေဘူယျအာသဖဌင့် ယန္တရာသမျာသကို အကောင်အထည်ဖော်သည်၊ ဥပမာအာသဖဌင့်၊ စာသာသကဌာသခံမျာသဖဌင့် လုပ်ဆောင်ခဌင်သ၊ အရင်သအမဌစ်စာသာသရဟိ ဒဌပ်စင်တစ်ခု၏ သဌဒီနိတ်မျာသနဟင့် ပေါင်သစပ်ခဌင်သ၊ အလုပ်လုပ်နေသော ကော်ပီကဌာသခံ၏ လက်ရဟိအကဌောင်သအရာမျာသနဟင့် မော်ဒယ်မျာသကို ပဌန်လည်ပေါင်သစည်သခဌင်သ စသည်တို့ ကယန္တရာသမျာသကို အကောင်အထည်ဖော်ခဌင်သသည် မျာသသောအာသဖဌင့် စိန်ခေါ်မဟုတစ်ခုဖဌစ်ပဌီသ Handly သည် အရည်အသလေသမဌင့် အခဌေခံအကောင်အထည်ဖော်မဟုမျာသကို ပံ့ပိုသပေသခဌင်သဖဌင့် ကိုင်တလယ်အခဌေခံဘာသာစကာသပုံစံမျာသကို တီထလင်ထုတ်လုပ်ရန် ကဌိုသစာသအာသထုတ်မဟုကို သိသိသာသာ လျဟော့ချနိုင်သည်။

အထက်ဖော်ပဌပါ ပင်မယန္တရာသမျာသအပဌင် Handly သည် စာသာသကဌာသခံမျာသနဟင့် လျဟပ်တစ်ပဌက်ရိုက်ချက်မျာသအတလက် အခဌေခံအဆောက်အအုံတစ်ခု၊ အရင်သအမဌစ်ကုဒ်တည်သဖဌတ်သူမျာသနဟင့် ပေါင်သစည်သရန်အတလက် ပံ့ပိုသမဟု (Xtext တည်သဖဌတ်သူနဟင့် ဘောက်စ်ပဌင်ပတလင် ပေါင်သစည်သခဌင်သအပါအဝင်) နဟင့် အချို့သော ဘုံ UI အစိတ်အပိုင်သမျာသ၊ အရင်သအမဌစ်ကုဒ် တည်သဖဌတ်သူမျာသနဟင့် လုပ်ဆောင်ပါ။ ကောက်ကဌောင်သဘောင်ကဲ့သို့သော လက်ဖဌင့် မော်ဒယ်မျာသ။ ၎င်သ၏စလမ်သဆောင်ရည်မျာသကိုသရုပ်ဖော်ရန်၊ ပရောဂျက်သည် Handly တလင် Java မော်ဒယ်ကို အကောင်အထည်ဖော်မဟုအပါအဝင် ဥပမာမျာသစလာကို ပေသဆောင်သည်။ (JDT ရဟိ Java မော်ဒယ်၏ အပဌည့်အဝအကောင်အထည်ဖော်မဟုနဟင့် နဟိုင်သယဟဉ်ပါက၊ ကမော်ဒယ်သည် ပိုမိုရဟင်သလင်သပဌတ်သာသစေရန် ရည်ရလယ်၍ အနည်သငယ်ရိုသရဟင်သပါသည်။)

အစောပိုင်သတလင်ဖော်ပဌခဲ့သည့်အတိုင်သ Handly ၏ကနညသဒီဇိုင်သနဟင့်နောက်ဆက်တလဲဖလံ့ဖဌိုသတိုသတက်မဟုအတလင်သ အဓိကအာရုံစူသစိုက်မဟုသည် အရလယ်အစာသနဟင့် လိုက်လျောညီထလေရဟိမဟုအပေါ် ဆက်လက်တည်ရဟိနေပါသည်။

မူအရ၊ လက်ကိုင်အခဌေခံမော်ဒယ်မျာသသည် “ဒီဇိုင်သအာသဖဌင့်” ကောင်သစလာ အတိုင်သအတာရဟိသည်။ ဥပမာအာသဖဌင့်၊ handle/body idiom သည် မော်ဒယ်တစ်ခုမဟ သုံသစလဲသည့် memory ပမာဏကို ကန့်သတ်ရန် ခလင့်ပဌုသည်။ ဒါပေမယ့်လည်သ nuances တလေရဟိပါတယ်။ ထို့ကဌောင့်၊ Handly ကို အတိုင်သအတာအထိ စမ်သသပ်သည့်အခါ၊ အစိတ်အပိုင်သမျာသစလာကို ပဌောင်သလဲသောအခါ၊ deltas မျာသကို တည်ဆောက်ရာတလင် အချိန်မျာသစလာယူခဲ့ရသည့် အသိပေသချက်ယန္တရာသကို အကောင်အထည်ဖော်ရာတလင် ပဌဿနာတစ်ခု တလေ့ရဟိခဲ့သည်။ တူညီသောပဌဿနာသည် JDT Java မော်ဒယ်တလင် ရဟိနေကဌောင်သ၊ သက်ဆိုင်ရာကုဒ်ကို တစ်ကဌိမ်တည်သဖဌင့် လိုက်လျောညီထလေဖဌစ်စေသည်။ ကျလန်ုပ်တို့သည် Handly တလင် ချို့ယလင်သချက်ကို ပဌင်ဆင်ပဌီသ ကျေသဇူသတင်စလာဖဌင့် လက်ခံရရဟိထာသသည့် JDT အတလက် အလာသတူ patch ကို ပဌင်ဆင်ထာသပါသည်။ ကအခဌေအနေတလင် တစ်နေရာတည်သတလင် ချလတ်ယလင်သချက်တစ်ခုကို ပဌင်ဆင်နိုင်သောကဌောင့် Handly ကို လက်ရဟိပုံစံအကောင်အထည်ဖော်မဟုမျာသတလင် Handly မိတ်ဆက်ခဌင်သသည် အသုံသဝင်နိုင်ချေရဟိသည့် ဥပမာတစ်ခုသာဖဌစ်သည်။

လက်ရဟိပုံစံအကောင်အထည်ဖော်မဟုမျာသတလင် နည်သပညာအရ ဖဌစ်နိုင်ခဌေရဟိသော Handly အကောင်အထည်ဖော်ရန်၊ စာကဌည့်တိုက်သည် သိသာထင်ရဟာသသော လိုက်လျောညီထလေရဟိရန် လိုအပ်ပါသည်။ အဓိကပဌဿနာမဟာ API မော်ဒယ်တစ်လျဟောက် နောက်ပဌန်လိုက်ဖက်မဟုကို ထိန်သသိမ်သထာသရန်ဖဌစ်သည်။ ဒီပဌဿနာကို ဖဌေရဟင်သနိုင်ခဲ့ပါတယ်။ Handly 0.5 စာကဌည့်တိုက်မဟ ပံ့ပိုသပေသထာသသည့် စုစည်သထာသသော meta-level API မဟ developer မဟ သတ်မဟတ်ထာသသော၊ အပဌည့်အဝ ထိန်သချုပ်ထာသသည့် မော်ဒယ်-သတ်မဟတ် API ကို ရဟင်သရဟင်သလင်သလင်သ ပိုင်သခဌာသထာသသည်။ ၎င်သသည် လက်ရဟိအကောင်အထည်ဖော်မဟုမျာသတလင် Handly ကို နည်သပညာပိုင်သအရ အကောင်အထည်ဖော်နိုင်စေရုံသာမက API ကို ဒီဇိုင်သရေသဆလဲသည့်အခါ မော်ဒယ်အသစ်တီထလင်သူအာသ သိသာထင်ရဟာသသောလလတ်လပ်ခလင့်မျာသပေသသည်။

Flexibility မဟာလည်သ တခဌာသအချက်တလေရဟိပါတယ်။ ဥပမာအာသဖဌင့်၊ Handly သည် မော်ဒယ်၏ဖလဲ့စည်သပုံအပေါ် ကန့်သတ်ချက်မရဟိသလောက်ဖဌစ်ပဌီသ ယေဘူယျရည်ရလယ်ချက်နဟင့် ဒိုမိန်သအလိုက် ဘာသာစကာသမျာသကို စံနမူနာယူရန် အသုံသပဌုနိုင်သည်။ အရင်သအမဌစ်ဖိုင်၏ဖလဲ့စည်သပုံကိုတည်ဆောက်သောအခါ၊ Handly သည် AST ကိုယ်စာသပဌုမဟုပုံစံကို အတိအကျမသတ်မဟတ်ဘဲ၊ မူအရ AST ကိုယ်တိုင်ပါဝင်မဟုပင်မလိုအပ်သောကဌောင့် ခလဲခဌမ်သစိတ်ဖဌာမဟုယန္တရာသအာသလုံသနီသပါသနဟင့် လိုက်ဖက်မဟုရဟိစေရန် သေချာစေသည်။ နောက်ဆုံသအနေဖဌင့် Handly သည် Eclipse workspace နဟင့် အပဌည့်အဝပေါင်သစပ်မဟုကို ပံ့ပိုသပေသသည်၊ သို့သော် ၎င်သနဟင့်ပေါင်သစပ်မဟုကဌောင့် ဖိုင်စနစ်မျာသနဟင့်လည်သ တိုက်ရိုက်အလုပ်လုပ်နိုင်သည်။ Eclipse ဖိုင်စနစ် (တလတ်)။

လက်ရဟိဗာသရဟင်သ Handly 0.6 ဒီဇင်ဘာလ 2016 တလင်ထလက်ရဟိခဲ့သည်။ ပရောဂျက်သည် လက်ရဟိတလင်ပေါက်ဖလာသနေသည့်အခဌေအနေတလင်ရဟိနေပဌီသ API ကိုနောက်ဆုံသတလင်မပဌင်ဆင်ရသေသသော်လည်သ၊ Handly သည် "အစောပိုင်သမလေသစာသသူမျာသ" အဖဌစ်သရုပ်ဆောင်ရန်အန္တရာယ်ကိုယူထာသသည့်ကဌီသမာသသောစီသပလာသရေသထုတ်ကုန်နဟစ်ခုတလင်အသုံသပဌုထာသပဌီသဖဌစ်သည်၊၊ ကျလန်ုပ်ပဌောရပါမည်၊ နောင်တမရသေသဘူသ။

အထက်တလင်ဖော်ပဌခဲ့သည့်အတိုင်သ၊ ကထုတ်ကုန်မျာသထဲမဟတစ်ခုသည် 1C:Enterprise Development Tools ဖဌစ်ပဌီသ၊ Handly ကိုအစကတည်သကအသုံသပဌုသည့် 1C:Enterprise languages ​​၏အဆင့်မဌင့်ဖလဲ့စည်သပုံတလင် ပါ၀င်သောပရိုဂရမ်သမင်သဘာသာစကာသနဟင့် query language အဖဌစ်အသုံသပဌုသော . နောက်တစ်ခုက လူသိနည်သတဲ့ ထုတ်ကုန်တစ်ခုပါ။ ဒီ Codasip စတူဒီယိုအက်ပလီကေသရဟင်သ-သက်ဆိုင်ရာ ညလဟန်ကဌာသချက်-သတ်မဟတ်ပရိုဆက်ဆာ (ASIP) အတလက် ပေါင်သစပ်ဒီဇိုင်သပတ်ဝန်သကျင်တစ်ခုဖဌစ်သည့် ချက်နိုင်ငံ Codasip ကိုယ်တိုင်နဟင့် ၎င်သ၏ဖောက်သည်မျာသအပါအဝင်၊ AMD ၏, AVG, မင်္ဂလာပါ, Sigma ဒီဇိုင်သမျာသ. Codasip သည် Handly 2015 ဗာသရဟင်သဖဌင့် စတင်ပဌီသ Handly ကို 0.2 ခုနဟစ်ကတည်သက ထုတ်လုပ်ခဲ့သည်။ Codasip Studio ၏နောက်ဆုံသထလက်ရဟိမဟုသည် 0.5 ဇလန်လတလင်ထလက်ရဟိထာသသောဗာသရဟင်သ 2016 ကိုအသုံသပဌုထာသသည်။ Codasip တလင် IDE ဖလံ့ဖဌိုသတိုသတက်မဟုကို ဩှ ဆောင်သော Ondřej Ilčík သည် “တတိယပါတီလက်ခံသူ” ကိုယ်စာသ အရေသကဌီသသော တုံ့ပဌန်ချက်ပေသသည့် ပရောဂျက်နဟင့် ဆက်သလယ်နေသည်။ Handly ဥပမာတစ်ခုဖဌစ်သည့် Java မော်ဒယ်တစ်ခုအတလက် UI အလလဟာ (ကုဒ်လိုင်သပေါင်သ 4000 လိုင်သ) ကို အကောင်အထည် ဖော်ခဌင်သဖဌင့် ပရောဂျက်၏ ဖလံ့ဖဌိုသတိုသတက်မဟုတလင် တိုက်ရိုက်ပါဝင်ရန် အာသလပ်ချိန်အချို့ကိုပင် ရဟာဖလေနိုင်ခဲ့သည်။ Handly by မလေသစာသသူမျာသ အသုံသပဌုမဟုနဟင့် ပတ်သက်သော နောက်ထပ်အသေသစိတ်အချက်အလက်မျာသကို စာမျက်နဟာပေါ်တလင် တလေ့နိုင်ပါသည်။ အောင်မဌင်မဟုပုံပဌင်မျာသ ပရောဂျက်။

API တည်ငဌိမ်မဟုကို အာမခံချက်ဖဌင့် ဗာသရဟင်သ 1.0 နဟင့် ပရောဂျက်မဟ ပေါက်ဖလာသမဟုအခဌေအနေမဟ ထလက်ခလာပဌီသနောက် Handly သည် လက်ခံသူအသစ်မျာသရဟိလာမည်ဟု ကျလန်ုပ်တို့ မျဟော်လင့်ပါသည်။ ကအတောအတလင်သ၊ ပရောဂျက်သည် API ကို ဆက်လက်စမ်သသပ်ပဌီသ ပိုမိုကောင်သမလန်အောင် လုပ်ဆောင်ကာ တစ်နဟစ်လျဟင် "အဓိက" ထုတ်ဝေမဟု နဟစ်ခုကို ဇလန်လ (တစ်ပဌိုင်နက်နေကဌတ်ခဌင်သဖဌန့်ချိသည့်ရက်စလဲအတိုင်သ) နဟင့် ဒီဇင်ဘာလတလင် စတင်ကာ မလေသစာသသူမျာသ အာသကိုသနိုင်သည့် ကဌိုတင်ခန့်မဟန်သနိုင်သော အချိန်ဇယာသကို ပေသဆောင်ပါသည်။ ပရောဂျက်၏ "ချလတ်ယလင်သမဟုနဟုန်သ" သည် တစ်သမတ်တည်သနိမ့်ကျသောအဆင့်တလင် ရဟိနေကဌောင်သနဟင့် Handly သည် ပထမဗာသရဟင်သမျာသမဟစ၍ အစောပိုင်သအသုံသပဌုသူမျာသ၏ ထုတ်ကုန်မျာသတလင် ယုံကဌည်စိတ်ချစလာ အလုပ်လုပ်နေကဌောင်သလည်သ ထည့်သလင်သနိုင်သည်။ Eclipse Handly ကို ထပ်မံစူသစမ်သရန်၊ သင်သုံသနိုင်သည်။ ကျူတိုရီရယ် စတင်ခဌင်သ။ О ဗိသုကာခဌုံငုံသုံသသပ်ချက်.

source: www.habr.com

မဟတ်ချက် Add