Is dòcha o chionn fhada chan eil feum air ro-rĂ dh sònraichte. Tha mòran dhaoine eòlach air Eclipse le taing dha na h-innealan leasachaidh Eclipse Java (). Is e an Java IDE stòr fosgailte mòr-chòrdte seo a tha aâ mhòr-chuid de luchd-leasachaidh a âceangal ris an fhacalâ Eclipse â. Ach, tha Eclipse an dĂ chuid na Ă rd-Ăšrlar leudachail airson a bhith ag amalachadh innealan leasachaidh (Eclipse Platform), agus grunn IDEan air an togail air a bhunait, JDT nam measg. Is e Eclipse an dĂ chuid Pròiseact Eclipse, am pròiseact Ă rd-ĂŹre a bhios aâ co-òrdanachadh leasachadh Ărd-Ăšrlar Eclipse agus an JDT, agus an Eclipse SDK, toradh lĂŹbhrigidh an leasachaidh sin. Mu dheireadh, tha Eclipse na bhun-stèidh fosgailte le coimhearsnachd mhòr de phròiseactan, agus chan eil iad uile sgrĂŹobhte ann an Java no co-cheangailte ri innealan leasachaidh (mar eisimpleir, pròiseactan и ). Tha saoghal Eclipse glè eadar-mheasgte.
Anns an artaigil seo, a tha na shealladh farsaing ann an nĂ dar, feuchaidh sinn ri coimhead air cuid de bhunaitean ailtireachd Eclipse mar Ă rd-Ăšrlar airson innealan leasachaidh aonaichte a thogail agus beachd tĂšsail a thoirt seachad air na pĂ irtean Eclipse a tha nam bunait don teicneòlas Ă rd-Ăšrlar airson an âConfigurator Ăšrâ 1C: Iomairt. . Gu dearbh, tha e do-sheachanta gum bi ath-sgrĂšdadh mar seo gu ĂŹre mhòr uachdarach agus caran cuibhrichte, a âtoirt a-steach leis gu bheil sinn aâ cuimseachadh chan ann a-mhĂ in air luchd-leasachaidh Eclipse mar an luchd-èisteachd cuimsichte. Ach, tha sinn an dòchas gum bi eadhon luchd-leasachaidh eòlach Eclipse comasach air fiosrachadh inntinneach a lorg san artaigil. Mar eisimpleir, bruidhnidh sinn mu aon de na âdĂŹomhair Eclipseâ, pròiseact an ĂŹre mhath Ăšr agus air nach eil mòran eòlach. , a chaidh a stèidheachadh agus le taic bho 1C.

Ro-rĂ dh gu ailtireachd Eclipse
Bheir sinn sĂšil an-toiseach air cuid de thaobhan coitcheann de ailtireachd Eclipse aâ cleachdadh an eisimpleir (JDT). Chan eil an taghadh de JDT mar eisimpleir gun fhiosta. Is e seo aâ chiad Ă rainneachd leasachaidh amalaichte a nochd ann an Eclipse. Chaidh pròiseactan * DT Eclipse eile, leithid Eclipse C / C ++ Development Tooling (CDT), a chruthachadh nas fhaide air adhart agus fhuair iad iasad air an dĂ chuid prionnsapalan ailtireachd bunaiteach agus pĂŹosan còd stòr fa leth bho JDT. Tha bunaitean na h-ailtireachd a tha air a chuir sĂŹos ann an JDT buntainneach chun an latha an-diugh airson cha mhòr IDE sam bith a chaidh a thogail air mullach an Ărd-Ăšrlar Eclipse, aâ toirt a-steach 1C: Innealan Leasachaidh Iomairt.
An toiseach, bu chòir a thoirt fa-near gu bheil Eclipse air a chomharrachadh le còmhdach ailtireil a tha gu math soilleir, le sgaradh gnĂŹomh neo-eisimeileach cĂ nain bho ghnĂŹomhachd a chaidh a dhealbhadh gus taic a thoirt do chĂ nanan prògramaidh sònraichte, agus sgaradh phĂ irtean âbunaiteachâ neo-eisimeileach UI bho phĂ irtean co-cheangailte. le eadar-aghaidh cleachdaiche taiceil.
Mar sin, tha Ărd-Ăšrlar Eclipse aâ mĂŹneachadh bun-structar cumanta, neo-eisimeileach aâ chĂ nain, agus tha na h-innealan leasachaidh Java aâ cur Java IDE lĂ n-nochdadh ri Eclipse. Tha an dĂ chuid Ărd-Ăšrlar Eclipse agus an JDT air an dèanamh suas de ghrunn phĂ irtean, agus buinidh gach fear dhiubh do âcridheâ neo-eisimeileach UI no còmhdach UI (Figear 1).

Reis. 1. Ărd-Ăšrlar Eclipse agus JDT
Leig leinn liosta de na prĂŹomh phĂ irtean den Ărd-Ăšrlar Eclipse:
- Runtime - Aâ mĂŹneachadh bun-structar nam plugan. Tha Eclipse air a chomharrachadh le ailtireachd modular. Gu bunaiteach, tha Eclipse na chruinneachadh de âpuingean leudachaidhâ agus âleudachadhâ.
- Ăite-obrach - Aâ riaghladh aon phròiseact no barrachd. Tha pròiseact air a dhèanamh suas de phasganan agus faidhlichean a tha air am mapadh gu dĂŹreach chun t-siostam faidhle.
- Uidheam widget Ă bhaisteach (SWT) - Aâ toirt seachad eileamaidean eadar-aghaidh cleachdaiche bunaiteach ceangailte ris an t-siostam obrachaidh.
- J Aghaidh - Aâ toirt seachad grunn fhrèamaichean UI a chaidh a thogail a bharrachd air SWT.
- Meur-obrach - Aâ mĂŹneachadh paradigm UI Eclipse: luchd-deasachaidh, beachdan, seallaidhean.
Feumar a rĂ dh gu bheil an Ărd-Ăšrlar Eclipse cuideachd a âtoirt seachad mòran phĂ irtean feumail eile airson innealan leasachaidh aonaichte a thogail, aâ toirt a-steach Debug, Compare, Search, agus Sgioba. Bu chòir iomradh sònraichte a thoirt air JFace Text - am bunait airson âluchd-deasachaidh snasailâ a thogail de chòd stòr. Gu mĂŹ-fhortanach, chan eil eadhon sgrĂšdadh mallachdach air na co-phĂ irtean sin, a bharrachd air na co-phĂ irtean còmhdach UI, comasach taobh a-staigh raon an artaigil seo, agus mar sin anns aâ chòrr den roinn seo bidh sinn gar cuingealachadh fhèin gu sealladh farsaing air na prĂŹomh phĂ irtean âbunaiteachâ de Ărd-Ăšrlar Eclipse agus JDT.
Ăine ruith bunaiteach
Tha bun-structar plugan Eclipse stèidhichte air agus air a thoirt seachad leis aâ phròiseact . Tha gach plugan Eclipse na phasgan OSGi. Tha an sònrachadh OSGi aâ mĂŹneachadh, gu sònraichte, dòighean airson dreachdadh agus fuasgladh eisimeileachd. A bharrachd air na h-innealan Ă bhaisteach sin, tha Equinox aâ toirt a-steach aâ bhun-bheachd puingean leudachaidh. Faodaidh gach plugan na puingean leudachaidh aige fhèin a mhĂŹneachadh, agus cuideachd comas-gnĂŹomh a bharrachd (â leudachadh â) a thoirt a-steach don t-siostam aâ cleachdadh puingean leudachaidh a tha air am mĂŹneachadh leis na h-aon plugins no plugins eile. Tha tuairisgeul mionaideach sam bith air na h-innealan OSGi agus Equinox taobh a-muigh raon an artaigil seo. Na toir sinn an aire ach gu bheil modularization ann an Eclipse gu h-iomlan (tha fo-shiostam sam bith, Runtime nam measg, air a dhèanamh suas de aon plugins no barrachd), agus cha mhòr a h-uile dad ann an Eclipse na leudachadh. A bharrachd air an sin, bha na prionnsapalan sin freumhaichte ann an ailtireachd Eclipse fada mus deach OSGi a thoirt a-steach (aig an Ă m sin chleachd iad an teicneòlas aca fhèin, gu math coltach ri OSGi).
Ăite-obrach bunaiteach
Bidh cha mhòr Ă rainneachd leasachaidh aonaichte a chaidh a thogail air mullach Ărd-Ăšrlar Eclipse ag obair le Ă ite-obrach Eclipse. Is e an t-Ă ite-obrach a bhios mar as trice aâ toirt a-steach còd stòr an tagraidh a chaidh a leasachadh san IDE. Mapaichean Ă ite-obrach gu dĂŹreach chun t-siostam faidhle agus tha e air a dhèanamh suas de phròiseactan anns a bheil pasganan agus faidhlichean. Canar na pròiseactan, na pasganan agus na faidhlichean sin goireasan Ă ite-obrach. Tha buileachadh Ă ite-obrach ann an Eclipse aâ frithealadh mar thasglann an co-cheangal ris an t-siostam faidhle, a tha ga dhèanamh comasach luathachadh mòr a dhèanamh air slighe na craoibhe ghoireasan. A bharrachd air an sin, tha Ă ite-obrach aâ toirt seachad grunn sheirbheisean a bharrachd, nam measg и .
Tha uallach air aâ phĂ irt Goireasan Bunaiteach (org.eclipse.core.resources) airson taic a thoirt don Ă ite-obrach agus na goireasan aige. Gu sònraichte, tha am pĂ irt seo aâ toirt cothrom prògramaichte don Ă ite-obrach san fhoirm modailean stòrais. Gus obrachadh gu h-èifeachdach leis aâ mhodail seo, feumaidh luchd-dèiligidh dòigh shĂŹmplidh air ceangal gu goireas a thaisbeanadh. Anns a 'chĂšis seo, bhiodh e ion-mhiannaichte a bhith a' falach an nĂŹ a tha gu dĂŹreach a 'stòradh staid a' ghoireas sa mhodail bho ruigsinneachd luchd-cleachdaidh. Rud eile, ann an cĂšis, mar eisimpleir, cuir Ă s do fhaidhle, dhâ fhaodadh an neach-dèiligidh cumail a âdol aâ cumail rud nach eil sa mhodail tuilleadh, leis na duilgheadasan a tha romhainn. Bidh Eclipse aâ fuasgladh na duilgheadas seo le bhith aâ cleachdadh rudeigin ris an canar lĂ imhseachadh stòras. Tha Handle ag obair mar iuchair (chan eil fios aige ach air an t-slighe chun ghoireas san Ă ite-obrach) agus bidh e gu tur aâ cumail smachd air ruigsinneachd don nĂŹ modail a-staigh, a bhios gu dĂŹreach aâ stòradh fiosrachadh mu staid aâ ghoireas. Tha an dealbhadh seo na atharrachadh den phĂ tran .
Reis. Tha Figear 2 aâ sealltainn gnĂ thasan-cainnte Handle/Boy mar a chaidh a chur an sĂ s sa mhodail stòrais. Tha an eadar-aghaidh IResource aâ riochdachadh lĂ imhseachadh goireas agus tha e na API, eu-coltach ris aâ chlas Goireas, a bhios aâ cur an eadar-aghaidh seo an gnĂŹomh, agus an clas ResourceInfo, a tha aâ riochdachadh aâ chuirp, nach eil nan APIan. Tha sinn aâ daingneachadh nach eil fios aig an neach-lĂ imhseachaidh ach air an t-slighe chun ghoireas an coimeas ri freumh an Ă ite-obrach agus nach eil ceangal ann ri fiosrachadh ghoireasan. Tha stuthan fiosrachaidh stòrais aâ dèanamh suas âcraobh eileamaidâ ris an canar. Tha an structar dĂ ta seo air a thoirt gu buil gu tur mar chuimhneachan. Gus an t-eisimpleir fiosrachaidh stòrais a lorg a tha co-chosmhail ri cas, thathas aâ dol thairis air aâ chraobh eileamaid a rèir an t-slighe a tha air a stòradh san lĂ mh sin.

Reis. 2. IResource and ResourceInfo
Mar a chĂŹ sinn nas fhaide air adhart, tha dealbhadh bunaiteach aâ mhodail ghoireasan (is dòcha gu bheil sinn ga ainmeachadh stèidhichte air lĂ imhseachadh) air a chleachdadh ann an Eclipse airson modalan eile cuideachd. Airson a-nis, leigamaid liosta de chuid de fheartan sònraichte an dealbhaidh seo:
- Tha lĂ imhseachadh na nĂŹ luach. Is e nithean luach a thâ ann an nithean nach gabh atharrachadh aig nach eil co-ionannachd stèidhichte air dearbh-aithne. Faodar stuthan mar seo a chleachdadh gu sĂ bhailte mar iuchair ann an soithichean hashed. Faodaidh grunn eisimpleirean de lĂ imhseachadh iomradh a thoirt air an aon ghoireas. Airson coimeas a dhèanamh dhiubh, feumaidh tu an dòigh equals (Rud) a chleachdadh.
- Tha Handle aâ mĂŹneachadh giĂšlan goireas, ach chan eil fiosrachadh ann mu staid aâ ghoireas (is e an aon dĂ ta a bhios e aâ stòradh an âiuchairâ, an t-slighe chun ghoireas).
- Faodaidh Handle iomradh a thoirt air goireas nach eil ann (an dĂ rna cuid goireas nach deach a chruthachadh fhathast, no goireas a chaidh a dhubhadh Ă s mar-thĂ ). Faodar sgrĂšdadh a dhèanamh air gu bheil goireas ann aâ cleachdadh modh IResource.exists().
- Faodar cuid de ghnĂŹomhachdan a chuir an gnĂŹomh a-mhĂ in stèidhichte air fiosrachadh a tha air a stòradh san lĂ mh fhèin (obraichean lĂ imhseachaidh a-mhĂ in). Is e eisimpleirean IResource.getParent(), getFullPath(), msaa. Chan fheum an goireas a bhith ann gus an soirbhich le leithid de dhâ obair. Bidh gnĂŹomhachd a dh âfheumas goireas a bhith ann gus soirbheachadh aâ tilgeil CoreException mura h-eil an goireas ann.
Tha Eclipse aâ toirt seachad inneal èifeachdach airson fios a chuir gu atharrachaidhean ann an goireasan Ă ite-obrach (Figear 3). Faodaidh goireasan atharrachadh an dĂ rna cuid mar thoradh air gnĂŹomhan a chaidh a dhèanamh taobh a-staigh an Eclipse IDE fhèin no mar thoradh air sioncronadh leis an t-siostam faidhle. Anns gach cĂšis, gheibh teachdaichean a bhios aâ gabhail ri brathan fiosrachadh mionaideach mu na h-atharrachaidhean ann an cruth âresource deltasâ. Tha delta aâ toirt cunntas air atharrachaidhean eadar dĂ staid de chraobh goireas Ă ite-obrach (fo-) agus is e craobh a thâ ann fhèin, le gach nĂłd aâ toirt cunntas air atharrachadh air goireas agus anns a bheil liosta de deltas aig an ath ĂŹre a tha aâ toirt cunntas air atharrachaidhean air goireasan cloinne.

Reis. 3. IResourceChangeEvent agus IResourceDelta
Tha na feartan a leanas aig an inneal fios stèidhichte air goireasan deltas:
- Thathas aâ toirt iomradh air aon atharrachadh agus mòran atharrachaidhean aâ cleachdadh an aon structar, leis gu bheil an delta air a thogail aâ cleachdadh prionnsapal co-dhèanamh ath-chuairteach. Faodaidh teachdaichean ballrachd fiosan atharrachadh ghoireasan a phròiseasadh aâ cleachdadh teĂ rnadh ath-chuairteach tro chraobh deltas.
- Tha fiosrachadh iomlan anns an delta mu atharrachaidhean air aâ ghoireas, aâ gabhail a-steach a ghluasad agus/no atharrachaidhean anns na âcomharranâ co-cheangailte ris (mar eisimpleir, tha mearachdan cruinneachaidh air an riochdachadh mar chomharran).
- Leis gu bheilear aâ toirt iomradh air goireasan tron ââlĂ mh, faodaidh delta iomradh nĂ darrach a thoirt air goireas iomallach.
Mar a chĂŹ sinn a dhâ aithghearr, tha na prĂŹomh phĂ irtean de dhealbhadh an uidheamachd fios atharrachadh modail stòrais cuideachd buntainneach airson modalan eile stèidhichte air lĂ imhseachadh.
JDT Core
Tha modal goireas Ă ite-obrach Eclipse na mhodail bunaiteach cĂ nain-agnostic. Tha am pĂ irt JDT Core (plugin org.eclipse.jdt.core) aâ toirt seachad API airson a bhith aâ seòladh agus aâ sgrĂšdadh structar an Ă ite-obrach bho shealladh Java, am âmodal Javaâ ris an canar (Java modail). Tha an API seo air a mhĂŹneachadh a thaobh eileamaidean Java, an taca ris aâ mhodail stòrais bunaiteach API, a tha air a mhĂŹneachadh a thaobh pasganan is faidhlichean. Tha prĂŹomh eadar-aghaidh craobh eileamaid Java air a shealltainn ann am Fig. 4.

Reis. 4. Java Model Elements
Bidh am modal Java aâ cleachdadh an aon gnĂ thasan-cainnt / bodhaig ris aâ mhodail stòrais (Figear 5). Is e IJavaElement an lĂ mh, agus tha JavaElementInfo aâ cluich pĂ irt bodhaig. Tha an eadar-aghaidh IJavaElement aâ mĂŹneachadh protocol a tha cumanta do gach eileamaid Java. Tha cuid de na dòighean aige lĂ imhseachadh a-mhĂ in: getElementName(), getParent(), etc. Bidh an nĂŹ JavaElementInfo aâ stòradh staid an eileamaid fhreagarrach: an structar agus na feartan aige.

Reis. 5. IJavaElement agus JavaElementInfo
Tha beagan eadar-dhealachaidhean ann am modal Java ann a bhith aâ buileachadh an dealbhadh lĂ imhseachaidh / bodhaig bunaiteach an taca ris aâ mhodail stòrais. Mar a chaidh a rĂ dh gu h-Ă rd, anns a 'mhodail ghoireasan, tha an craobh eileamaid, aig a bheil nodan nan nithean fiosrachaidh stòrais, gu tur air a chumail mar chuimhneachan. Ach faodaidh Ă ireamh mòran nas motha de eileamaidean a bhith aig aâ mhodail Java na an craobh stòrais, oir tha e cuideachd aâ riochdachadh structar a-staigh fhaidhlichean .java agus .class: seòrsaichean, raointean, agus dòighean-obrach.
Gus an craobh iomlan de eileamaidean a sheachnadh gu tur mar chuimhneachan, bidh buileachadh modail Java aâ cleachdadh tasgadan LRU de mheud cuibhrichte de fhiosrachadh eileamaidean, far a bheil an iuchair aâ lĂ imhseachadh IJavaElement. tha nithean fiosrachaidh eileamaid air an cruthachadh a rèir iarrtas mar a thèid craobh na h-eileamaid a sheòladh. Anns a 'chĂšis seo, thèid na stuthan as lugha a chleachdar fhuadach bhon tasgadan, agus tha caitheamh cuimhne a' mhodail fhathast cuingealaichte ris a 'mheud tasgadan ainmichte. Is e buannachd eile a tha seo de dhealbhadh stèidhichte air lĂ imhseachadh, a tha gu tur aâ falach mion-fhiosrachadh gnĂŹomhachaidh mar sin bho chòd an neach-dèiligidh.
Tha an dòigh airson fios a chuir gu atharrachaidhean air eileamaidean Java sa chumantas coltach ris an dòigh airson sĂšil a chumail air atharrachaidhean air goireasan Ă ite-obrach air an deach beachdachadh gu h-Ă rd. Bidh neach-dèiligidh a tha airson sĂšil a chumail air atharrachaidhean ann am modal Java aâ gabhail ri brathan, a tha air an riochdachadh mar nĂŹ ElementChangedEvent anns a bheil IJavaElementDelta (Figear 6).

Reis. 6. ElementChangedEvent agus IJavaElementDelta
Chan eil fiosrachadh anns aâ mhodal Java mu bhuidhnean modh no rĂšn ainm, mar sin airson mion-sgrĂšdadh mionaideach air còd a chaidh a sgrĂŹobhadh ann an Java, tha JDT Core aâ toirt seachad modal a bharrachd (neo-lĂ imhseachail): (craobh co-chòrdadh abstract, AST). Tha AST aâ riochdachadh toradh parsadh an teacsa tĂšsail. Bidh nodan AST aâ freagairt ri eileamaidean de structar modal stòr (fiosrachaidhean, gnĂŹomhaichean, abairtean, msaa) agus tha fiosrachadh ann mu cho-chomharran an eileamaid fhreagarrach anns an teacsa stòr, a bharrachd air (gu roghnach) fiosrachadh fuasglaidh ainm ann an cruth cheanglaichean gu ris an canar ceangail. Is e ceanglachan nithean a tha aâ riochdachadh aonadan ainmichte, leithid seòrsaichean, dòighean-obrach, agus caochladairean, a tha aithnichte don neach-cruinneachaidh. Eu-coltach ri nodan AST, a tha nan craobh, bidh ceangalaichean aâ toirt taic do thar-iomradh agus mar as trice bidh iad aâ cruthachadh graf. Is e an clas eas-chruthach ASTNode an clas bunaiteach cumanta airson a h-uile nod AST. Tha fo-chlasaichean ASTNode aâ freagairt ri structaran sònraichte syntactic den chĂ nan Java.
Leis gum faod craobhan co-chòrdadh mòran cuimhne ithe, chan eil JDT aâ tasgadh ach aon AST airson an deasaiche gnĂŹomhach. Eu-coltach ri modal Java, tha an AST mar as trice air fhaicinn mar mhodal âmeadhanach,â âsealachâ agus cha bu chòir do bhuill a bhith air an ainmeachadh le teachdaichean taobh a-muigh co-theacs na h-obrach a lean gu cruthachadh an AST.
Tha na trĂŹ modalan clĂ raichte (modail Java, AST, ceangail) còmhla mar bhunait airson âinnealan leasachaidh tuigseachâ a thogail ann an JDT, a âtoirt a-steach deasaiche Java cumhachdach le diofarâ luchd-cuideachaidh â, diofar ghnĂŹomhan airson a bhith aâ giullachd còd stòr (a âtoirt a-steach eagrachadh liosta in-mhalairt. ainmean agus cruth a rèir an stoidhle Ă bhaisteach), innealan sgrĂšdaidh agus ath-fhactaraidh. Anns a 'chĂšis seo, tha Ă ite sònraichte aig a' mhodail Java, oir is e sin a tha air a chleachdadh mar bhunait airson riochdachadh lèirsinneach de structar an tagraidh a thathar a 'leasachadh (mar eisimpleir, ann am Package Explorer, Outline, Search, Call Rangy, agus Seòrsa rangachd).
Co-phĂ irtean Eclipse air an cleachdadh ann an 1C: Innealan Leasachaidh Iomairt
Ann am Fig. Tha Figear 7 aâ sealltainn na pĂ irtean Eclipse a tha nam bunait don Ă rd-Ăšrlar teicneòlais airson 1C: Innealan Leasachaidh Iomairt.

Reis. 7. Eclipse mar Ă rd-Ăšrlar airson 1C: Innealan Leasachaidh Iomairt
Ărd-Ăšrlar Eclipse aâ toirt seachad bun-structar bunaiteach. Thug sinn sĂšil air cuid de thaobhan den bhun-structar seo anns an earrainn mu dheireadh.
(EMF) aâ toirt seachad dòigh coitcheann airson dĂ ta structaraichte a mhodaladh. Tha EMF ceangailte ris an Ărd-Ăšrlar Eclipse, ach faodar a chleachdadh air leth cuideachd ann an tagraidhean Ă bhaisteach Java. Gu math tric, tha luchd-leasachaidh Eclipse Ăšr eòlach air EMF mu thrĂ th, ged nach eil iad fhathast aâ tuigsinn cho iom-fhillte âs a tha Ărd-Ăšrlar Eclipse. Is e aon de na h-adhbharan airson a leithid de thoileachas mòr an dealbhadh uile-choitcheann, a tha a âtoirt a-steach, am measg rudan eile, API meta-ĂŹre aonaichte, a leigeas leat obrachadh le modail EMF sam bith ann an dòigh choitcheann. Bidh na buileachadh bunaiteach airson nithean modail air an toirt seachad le EMF agus an fho-shiostam airson còd modail a ghineadh stèidhichte air a âmhodal meta gu mòr aâ meudachadh astar an leasachaidh agus a âlughdachadh an Ă ireamh de mhearachdan. Tha innealan ann an EMF cuideachd airson modalan a chuir ann an sreath, sĂšil a chumail air atharrachaidhean sa mhodail, agus mòran a bharrachd.
Coltach ri inneal fĂŹor adhbhar coitcheann, tha EMF freagarrach airson fuasgladh fhaighinn air raon farsaing de dhuilgheadasan modaladh, ach dhâ fhaodadh gum bi feum aig cuid de chlasaichean de mhodalan (mar eisimpleir, na modalan lĂ imhseachaidh a chaidh a dheasbad gu h-Ă rd) air innealan modaladh nas speisealta. Is e obair gun taing a thâ ann a bhith aâ bruidhinn mu EMF, gu sònraichte taobh a-staigh crĂŹochan cuibhrichte aon artaigil, leis gur e cuspair leabhar air leth a tha seo, agus leabhar caran tiugh. Cha leig sinn a leas ach a thoirt fa-near gun tug an siostam coitcheann de chĂ ileachd Ă rd a tha mar bhunait air an EMF cead do raon iomlan de phròiseactan a tha coisrigte do mhodaladh a bhreith, a tha air an toirt a-steach don phròiseact Ă rd-ĂŹre. còmhla ris an EMF fhèin. Is e aon phròiseact den leithid Eclipse Xtext.
aâ toirt seachad bun-structar âmodaileadh teacsaâ. Cleachdadh xtext airson a bhith aâ parsadh an teacsa tĂšsail agus EMF airson a bhith aâ riochdachadh an ASG a thig Ă s (graf semantach geĂ rr, a tha gu ĂŹre mhòr na mheasgachadh de AST agus ceanglachan), ris an canar cuideachd am âmodail semantachâ. Tha grĂ mar aâ chĂ nain air a dhealbhadh le Xtext air a mhĂŹneachadh ann an cĂ nan Xtext fhèin. Leigidh seo leat chan ann a-mhĂ in cunntas grĂ mair a ghineadh airson ANTLR, ach cuideachd inneal sreathachaidh AST fhaighinn (ie tha Xtext aâ toirt seachad an dĂ chuid parser agus unparser), sanas co-theacsa, agus grunn phĂ irtean cĂ nain eile. Air an lĂ imh eile, chan eil an cĂ nan grĂ mair a thathar aâ cleachdadh ann an Xtext cho sĂšbailte ri, can, an cĂ nan grĂ mair a thathar aâ cleachdadh ann an ANTLR. Mar sin, uaireannan feumar âlĂšbadhâ an cĂ nan gnĂŹomhaichte gu Xtext, rud nach eil na dhuilgheadas mar as trice ma tha sinn aâ bruidhinn mu chĂ nan a bhith air a leasachadh bhon fhĂŹor thoiseach, ach a dhâ fhaodadh a bhith neo-iomchaidh airson cĂ nanan le co-chòrdadh stèidhichte mar-thĂ . A dhâ aindeoin sin, is e Xtext an-drĂ sta an inneal as aibidh, lĂ n feart, agus as ioma-chruthach ann an Eclipse airson cĂ nanan prògramaidh a thogail agus innealan leasachaidh dhaibh. Gu sònraichte, tha e na inneal air leth freagarrach airson prototyping luath (cĂ nan a tha sònraichte do dh'Ă rainn, DSL). A bharrachd air an âcridhe cĂ nainâ gu h-Ă rd a tha stèidhichte air ANTLR agus EMF, tha Xtext aâ toirt seachad mòran phĂ irtean feumail aig ĂŹre Ă rd, aâ gabhail a-steach innealan clĂ r-amais, togail mean air mhean, âneach-deasachaidh snasailâ, agus mòran, mòran a bharrachd, ach aâ fĂ gail a-mach lĂ imhseachadh- modailean cĂ nain stèidhichte. Coltach ri EMF, tha Xtext na chuspair a tha airidh air leabhar air leth, agus cha mhòr gun urrainn dhuinn eadhon bruidhinn goirid mu na comasan aige an-drĂ sta.
1C: Bidh Innealan Leasachaidh Iomairt gu gnĂŹomhach aâ cleachdadh an dĂ chuid EMF fhèin agus grunn phròiseactan Modeling Eclipse eile. Gu sònraichte, tha Xtext mar aon de na bunaitean airson innealan leasachaidh airson a leithid 1C:CĂ nanan iomairt mar an cĂ nan prògramaidh agus cĂ nan ceist. Is e bunait eile airson na h-innealan leasachaidh sin am pròiseact Eclipse Handly, air am bi sinn aâ bruidhinn nas mionaidiche (de na pĂ irtean Eclipse air an liostadh, tha e fhathast mar an fheadhainn as lugha aithnichte).
, fo-phròiseact den phròiseact Ă rd-ĂŹre Eclipse Technology, air nochdadh mar thoradh air tabhartas còd tĂšsail don Eclipse Foundation a rinn 1C ann an 2014. Bhon uairsin, tha 1C air a bhith aâ toirt taic do leasachadh aâ phròiseict: Tha luchd-comadaidh lĂ imhe nan luchd-obrach aig aâ chompanaidh. Tha am pròiseact beag, ach tha e ann an Ă ite sònraichte ann an Eclipse: is e a phrĂŹomh amas taic a thoirt do leasachadh mhodalan stèidhichte air lĂ imhseachadh.
Chaidh beachdachadh gu h-Ă rd air prionnsapalan ailtireachd bunaiteach mhodalan stèidhichte air lĂ imhseachadh, leithid gnĂ thasan-cainnte lĂ imhseachaidh/bodhaig, aâ cleachdadh aâ mhodail ghoireas agus am modal Java mar eisimpleirean. Thug e fa-near cuideachd gu bheil an dĂ chuid am modail ghoireasan agus am modal Java nam bunaitean cudromach airson innealan leasachaidh Eclipse Java (JDT). Agus leis gu bheil ailtireachd coltach ri JDT aig cha mhòr a h-uile pròiseact * DT Eclipse, cha bhiodh e na fhĂŹor iomadachd a rĂ dh gu bheil modalan stèidhichte air lĂ imhseachadh mar bhunait air mòran, mura h-eil a h-uile IDE air an togail air mullach Ărd-Ăšrlar Eclipse. Mar eisimpleir, tha modal C / C ++ stèidhichte air lĂ imhseachadh aig an Eclipse C / C ++ Development Tooling (CDT) aig a bheil an aon Ă ite ann an ailtireachd CDT agus a tha aig modal Java anns an JDT.
Ro Handly, cha do thairg Eclipse leabharlannan sònraichte airson modalan cĂ nain stèidhichte air lĂ imhseachadh a thogail. Chaidh na modailean a thâ ann an-drĂ sta a chruthachadh sa mhòr-chuid le bhith ag atharrachadh gu dĂŹreach còd modail Java (aka copy/paste), ann an cĂšisean far a bheil e aâ ceadachadh Cead Poblach Eclipse (EPL). (Gu dearbh, mar as trice chan e cĂšis laghail a tha seo airson, can, pròiseactan Eclipse fhèin, ach chan ann airson toraidhean stòr dĂšinte.) A bharrachd air cho duilich âs a tha e, tha an dòigh seo aâ toirt a-steach duilgheadasan ainmeil: dĂšblachadh còd air a thoirt a-steach nuair a bhios tu ag atharrachadh gu mearachdan, etc. Is e an rud a tha nas miosa gu bheil na modailean a thig Ă s aâ fuireach nan ârudan annta fhèinâ agus nach eil iad aâ gabhail brath air aâ chomas airson aonachadh. Ach le bhith aâ dealachadh bhun-bheachdan agus phròtacalan cumanta airson modalan cĂ nain stèidhichte air lĂ imhseachadh dhâ fhaodadh sin co-phĂ irtean ath-chleachdadh a chruthachadh airson a bhith ag obair còmhla riutha, coltach ris na thachair ann an cĂšis EMF.
Chan e nach do thuig Eclipse na cĂšisean sin. Air ais ann an 2005 , aâ toirt geĂ rr-chunntas air an eòlas ann a bhith aâ leasachadh prototype CDT, an fheum air bun-structar coitcheann a chruthachadh airson modalan cĂ nain, aâ gabhail a-steach modalan stèidhichte air lĂ imhseachadh. Ach, mar a thachras gu tric, mar thoradh air gnĂŹomhan prĂŹomhachais nas Ă irde, cha deach buileachadh nam beachdan sin timcheall air. Aig an aon Ă m, tha factarachadh còd * DT fhathast mar aon de na cuspairean neo-leasaichte ann an Eclipse.
Ann an dòigh sònraichte, tha am pròiseact Handly air a dhealbhadh gus fuasgladh fhaighinn air timcheall air na h-aon dhuilgheadasan ri EMF, ach airson modalan stèidhichte air lĂ imhseachadh, agus gu sònraichte feadhainn cĂ nain (ie, aâ riochdachadh eileamaidean de structar cuid de chĂ nan prògramaidh). Tha na prĂŹomh amasan a chaidh a shuidheachadh nuair a thathar aâ dealbhadh Handly air an liostadh gu h-ĂŹosal:
- Comharrachadh nam prĂŹomh ghearraidhean den raon cuspair.
- LÚghdachadh oidhirp agus leasachadh cà ileachd buileachadh mhodalan cà nain stèidhichte air là imhseachadh tro ath-chleachdadh còd.
- Aâ toirt seachad API meta-ĂŹre aonaichte dha na modailean a thig Ă s, ga dhèanamh comasach co-phĂ irtean IDE cumanta a chruthachadh a bhios ag obair le modalan stèidhichte air lĂ imhseachadh cĂ nain.
- SĂšbailteachd agus scalability.
- Amalachadh le Xtext (ann an sreath air leth).
Gus bun-bheachdan agus protocolaidhean cumanta a shoilleireachadh, chaidh mion-sgrÚdadh a dhèanamh air buileachadh mhodalan stèidhichte air là imhseachadh cà nain. Tha na prÏomh eadar-aghaidh agus buileachadh bunaiteach a thug Handly seachad air an sealltainn ann am Fig. 8.

Reis. 8. Coitcheann eadar-aghaidh agus buileachadh bunaiteach Handly eileamaidean
Tha an eadar-aghaidh IElement aâ riochdachadh lĂ mh eileamaid agus tha e cumanta do eileamaidean de gach modal stèidhichte air Handly. Bidh an clas eas-chruthach Element aâ buileachadh an uidheamachd lĂ imhseachaidh / bodhaig coitcheann (Fig. 9).

Reis. 9. IElement agus lĂ imhseachadh / corp coitcheann
A bharrachd air an sin, tha Handly aâ toirt seachad uidheamachd coitcheann airson fios a chuir mu atharrachaidhean ann an eileamaidean modail (Fig. 10). Mar a chĂŹ thu, tha e gu ĂŹre mhòr coltach ris na h-innealan fios a chaidh a chuir an gnĂŹomh sa mhodail ghoireasan agus ann am modal Java, agus bidh e aâ cleachdadh IElementDelta gus riochdachadh aonaichte de fhiosrachadh atharrachadh eileamaid a thoirt seachad.

Reis. 10. Eadar-aghaidh coitcheann agus buileachadh bunaiteach inneal fios Handly
Faodar am pĂ irt Handly a chaidh a dheasbad gu h-Ă rd (Fig. 9 agus 10) a chleachdadh gus cha mhòr modalan stèidhichte air lĂ imhseachadh sam bith a riochdachadh. Airson cruthachadh cĂ nanach modalan, tha am pròiseact aâ tabhann comas-gnĂŹomh a bharrachd - gu sònraichte, eadar-aghaidh cumanta agus buileachadh bunaiteach airson eileamaidean den structar teacsa stòr, an rud ris an canar eileamaidean stòr (Fig. 8). Tha an eadar-aghaidh ISourceFile aâ riochdachadh faidhle stòr, agus tha ISourceConstruct aâ riochdachadh eileamaid taobh a-staigh an fhaidhle stòr. Bidh na clasaichean eas-chruthach SourceFile agus SourceConstruct aâ cur an gnĂŹomh uidheamachdan coitcheann gus taic a thoirt do bhith ag obair le faidhlichean stòr agus na h-eileamaidean aca, mar eisimpleir, ag obair le bufairean teacsa, aâ ceangal ri co-chomharran eileamaid san teacsa tĂšsail, aâ rèiteachadh mhodalan le susbaint gnĂ thach bufair leth-bhreac obrach , etc. Mar as trice tha e na dhĂšbhlan mòr a bhith aâ buileachadh nan dòighean sin, agus faodaidh Handly an oidhirp air modalan cĂ nain stèidhichte air lĂ imhseachadh a leasachadh gu mòr a lughdachadh le bhith aâ toirt seachad buileachadh bunaiteach Ă rd-inbhe.
A bharrachd air na prĂŹomh uidheamachdan a tha air an liostadh gu h-Ă rd, tha Handly aâ toirt seachad bun-structar airson bufairean teacsa agus dealbhan-camara, taic airson amalachadh le luchd-deasachaidh còd stòr (a âtoirt a-steach amalachadh taobh a-muigh aâ bhogsa le deasaiche Xtext), a bharrachd air cuid de cho-phĂ irtean UI cumanta a tha ag obair le luchd-deasachaidh còd stòr Modalan lĂ imhe leithid frèam geĂ rr-chunntas. Gus na comasan aige a nochdadh, tha am pròiseact aâ toirt seachad grunn eisimpleirean, aâ toirt a-steach buileachadh modal Java ann an Handly. (An coimeas ri lĂ n bhuileachadh modal Java ann an JDT, tha am modail seo a dhâaona ghnothach beagan nas sĂŹmplidhe airson barrachd soilleireachd.)
Mar a chaidh a rĂ dh na bu thrĂ ithe, bha fòcas mòr ann an dealbhadh tĂšsail Handly agus an leasachadh Ă s deidh sin air a bhith agus aâ leantainn air adhart gu bhith air scalability agus sĂšbailteachd.
Ann am prionnsabal, tha modalan stèidhichte air lĂ imhseachadh a 'sgèile gu math "a rèir dealbhadh". Mar eisimpleir, leigidh gnĂ thasan-cainnte an lĂ mh / bodhaig dhut an ĂŹre de chuimhne a bhios modal aâ caitheamh a chuingealachadh. Ach tha nuances ann cuideachd. Mar sin, nuair a chaidh deuchainn Handly a dhèanamh airson scalability, chaidh duilgheadas a lorg ann a bhith aâ buileachadh an uidheamachd fios - nuair a chaidh Ă ireamh mhòr de eileamaidean atharrachadh, thug togail deltas cus Ăšine. Thionndaidh e a-mach gun robh an aon dhuilgheadas ann am modal JDT Java, Ă s an deach an còd co-fhreagarrach atharrachadh aon uair. ChĂ irich sinn am biast ann an Handly agus dhâ ullaich sinn bad den aon seòrsa airson JDT, agus chaidh fĂ ilte a chuir air le taing. Is e seo dĂŹreach aon eisimpleir far am faodadh toirt a-steach Handly a-steach do bhuileachadh modail a thâ ann mar-thĂ a bhith feumail, oir anns a âchĂšis seo dhâ fhaodadh a leithid de bhiast a shuidheachadh ann an aon Ă ite.
Gus am bi e comasach gu teicnigeach cur an gnĂŹomh Handly a-steach do bhuileachadh modail a thâ ann mar-thĂ , feumaidh sĂšbailteachd mòr a bhith aig an leabharlann. Is e am prĂŹomh dhuilgheadas co-chòrdalachd air ais a chumail air feadh modal API. Chaidh an duilgheadas seo fhuasgladh ann an le bhith aâ sgaradh gu soilleir an API modail-sònraichte, air a mhĂŹneachadh agus air a lĂ n smachd leis an leasaiche, bhon API ĂŹre-ĂŹre aonaichte a bheir an leabharlann seachad. Tha seo chan e a-mhĂ in ga dhèanamh comasach gu teicnigeach Handly a chuir an gnĂŹomh anns na gnĂŹomhan a thâ ann mar-thĂ , ach tha e cuideachd a âtoirt saorsa mòr don leasaiche modail Ăšr nuair a bhios iad aâ dealbhadh an API.
Tha taobhan eile aig sĂšbailteachd cuideachd. Mar eisimpleir, cha mhòr nach eil Handly aâ cur bacadh sam bith air structar aâ mhodail agus faodar a chleachdadh gus an dĂ chuid cĂ nan coitcheann agus cĂ nan sònraichte a mhodail. Nuair a thathar aâ togail structar an fhaidhle stòr, chan eil Handly ag òrdachadh seòrsa sònraichte de riochdachadh AST agus, ann am prionnsapal, chan eil e eadhon aâ feumachdainn AST fhèin a bhith ann, agus mar sin aâ dèanamh cinnteach gu bheil e co-chòrdalachd le cha mhòr inneal parsaidh sam bith. Mu dheireadh, tha Handly aâ toirt taic do lĂ n amalachadh le Ă ite-obrach Eclipse, ach faodaidh e cuideachd obrachadh gu dĂŹreach le siostaman faidhle le taing dha aonachadh le (EFS).
Tionndadh lĂ ithreach thĂ inig e a-mach san DĂšbhlachd 2016. A dh âaindeoin gu bheil am pròiseact an-drĂ sta ann an staid brosnachaidh agus nach eil an API air a shuidheachadh mu dheireadh, tha Handly air a chleachdadh mar-thĂ ann an dĂ thoraidhean malairteach mòr a ghabh an cunnart a bhith nanâ luchd-uchd-mhacachd trĂ th â, agus, feumaidh mi a rĂ dh, na gabh aithreachas fhathast.
Mar a chaidh a rĂ dh gu h-Ă rd, is e aon de na toraidhean sin 1C: Innealan Leasachaidh Iomairt, far a bheil Handly air a chleachdadh bhon fhĂŹor thoiseach gus eileamaidean de structar Ă rd-ĂŹre a mhodail 1C:CĂ nanan iomairt mar an cĂ nan prògramaidh togte agus cĂ nan ceist. . Tha toradh eile nach eil cho aithnichte don mhòr-shluagh. Seo , Ă rainneachd dealbhaidh aonaichte airson pròiseasar seata stiĂširidh sònraichte (ASIP), air a chleachdadh an dĂ chuid taobh a-staigh aâ chompanaidh Seiceach Codasip fhèin agus leis an luchd-dèiligidh, a âtoirt a-steach , , , . Tha Codasip air a bhith aâ cleachdadh Handly ann an cinneasachadh bho 2015, aâ tòiseachadh le dreach Handly 0.2. Bidh an sgaoileadh as Ăšire de Codasip Studio aâ cleachdadh dreach 0.5, a chaidh fhoillseachadh san Ăgmhios 2016. Tha OndĹej IlÄĂk, a tha os cionn leasachadh IDE aig Codasip, ann an conaltradh ris aâ phròiseact, aâ toirt seachad fios air ais deatamach Ă s leth an âuchd-mhacachd treas-phĂ rtaidhâ. Bha e eadhon comasach air beagan Ăšine shaor a lorg gus pĂ irt a ghabhail gu dĂŹreach ann an leasachadh a âphròiseict, aâ cur an gnĂŹomh còmhdach UI (~ 4000 loidhne de chòd) airson aon de na h-eisimpleirean Handly, modal Java. Gheibhear fiosrachadh pearsanta nas mionaidiche mu chleachdadh Handly le luchd-uchd-mhacachd air an duilleag pròiseict.
Tha sinn an dòchas, Ă s deidh an dreach 1.0 a leigeil ma sgaoil le gealltanas seasmhachd API agus am pròiseact aâ fĂ gail na stĂ ite goir, gum bi luchd-uchd-mhacachd Ăšr aig Handly. Anns an eadar-ama, tha am pròiseact a âleantainn air adhart aâ dèanamh deuchainn agus ag adhartachadh an API, a âleigeil a-mach dĂ fhoillseachadhâ mòr âgach bliadhna - san Ăgmhios (an aon cheann-latha ri sgaoileadh Eclipse aig an aon Ă m) agus san DĂšbhlachd, aâ toirt seachad clĂ r dĂšil ris am faod luchd-uchd-mhacachd earbsa a bhith aca. Faodaidh sinn cuideachd a rĂ dh gu bheil âĂŹre bugâ aâ phròiseict fhathast aig ĂŹre gu cunbhalach ĂŹosal agus tha Handly air a bhith ag obair gu earbsach ann am bathar luchd-uchd-mhacachd trĂ th bho na ciad dreachan. Gus tuilleadh sgrĂšdaidh a dhèanamh air Eclipse Handly, faodaidh tu a chleachdadh и .
Source: www.habr.com
