αααα αα,
αα
αααα»αα’αααααααα αααααΆαα·αααααΆαααΌαα
αα
αααα»αααααααΆαα· ααΎαααΉαααααΆααΆαααααΎαααΌαααααΆαααααΉααα½αα
ααα½αααααααΆαααααααα Eclipse ααΆαααα·ααΆαααααΆαααααααΎαα§αααααα’αα·αααααααα½ααααα
αΌαααααΆ αα·αααααααααα·αααααΌαα’αααΈαααΆαααΆαα» Eclipse ααααααααΎαααΆααΌαααααΆαααααΉααααα
αα
αααα·ααααΆα αααα·ααΆαααααΆαα "α’αααααααααα
ααΆααααααααααααΈ" 1C: αα ααααΆαα
ααΆαααααΆαα’αααΈααααΆαααααααα Eclipse
ααΆααααΌα ααΌααααα‘ααααΎααα·αααααΆαααΌαα
αα½αα
ααα½αααααααΆαααααααα Eclipse αααααααΎα§ααΆα ααα
ααΆααααΌα ααΆαα½αααααααΌαααΆαααααααααΆααααΆ Eclipse ααααΌαααΆααααααααααααααααααααΆααααααΆααααααααα αααΆααααΆαα ααΆαα½αααΉαααΆαααααααα»αααΆαα―αααΆαααααΆααΆααΈαα»αααΆααααααΆααα ααΆα‘αΎαααΎααααΈααΆααααααΆααΆααααααααααα·ααΈααΆααααΆαα αα·αααΆααααααααααα "ααααΌα" α―αααΆααα UI ααΈαααΆαααΆαα»αααααΆαααααααα ααΆαα½αα ααα»α αααααΆααα’αααααααΎαααααΆααααα
ααΌα αααα Eclipse Platform αααααα αααααΆαα ααΆααααααααααΌαα ααααα·αα’αΆαααααααΎααΆααΆ α αΎαα§αααααα’αα·αααααα Java αααααα Java IDE αααααΆααααααααα·ααααααααααα Eclipse α ααΆαα Eclipse Platform αα·α JDT ααΆαααΆαα»ααααααΆα αααΎα αααααΈαα½ααααΆαααααα·αααα·αααα UI-independent βcoreβ α¬αααααΆαα UI (ααΌαααΆαααΈ 1)α
α’ααααα 1. Eclipse Platform αα·α JDT
α αΌαααΆααααααΈαααΆαααΆαα»ααααΆααααααααα·ααΆ Eclipseα
- αααααα - ααααααα ααΆαααααααααααααα·ααΈαααα½αα ααΌαααααααΆαααααΌαααΆαααααααααααααααααααΆαααααααααααΌαα»αα ααααΆαα Eclipse ααΊααΆααΆααααααΌααααα»ααα "α ααα»α αααααα" αα·α "ααααααααααα" α
- ααααααααααΎααΆα - ααααααααααααααααα½α α¬α αααΎαα αααααααα½αααΆαααα―αααΆα αα·αα―αααΆααααααααΌαααΆαααΌααααααΈαααααααΆαααα ααααααααα―αααΆαα
- Standard Widget Toolkit (SWT) - αααααααΌαααΆαα»α ααα»α αααααΆααα’αααααααΎααΆααΌαααααΆααα½ααααα αΌαααΆαα½αααααααααααααα·ααααα·ααΆαα
- JFace - αααααααΌαααααααααα UI αα½αα ααα½αααααααααΎαα‘αΎααα ααΎααααΌααα SWT α
- Workbench - αααααααααΌ Eclipse UIα α’αααααααααα½α αααααα ααααααα·αααα
ααΆααααΌααααα·ααΆαααΆ Eclipse Platform αααααααααΌααααΆαααΆαα»ααΆαααααααααααΆα αααΎαααααααααΆααααΆααααΆαα§αααααα’αα·αααααααα½ααααα αΌαααααΆ αα½αααΆα Debug, Compare, Search αα·α Teamα ααΆαααΎαα‘αΎααα·ααααα½αααααααΌαααΆαααααΎα‘αΎαααΈ JFace Text αααααΆααΌαααααΆααααααΆαααααααΎα "αααααα·ααΈαα·ααααααααΆααα" ααααΌααααααα ααΆα’αα»αα ααΌααααΈααααΆααα·αα·ααα cursory αααααΆαααΆαααΆααααα ααααΌα ααΆαααΆαααΆαα»αααααΆαα UI αααα·αα’αΆα ααααΎαα ααΆααααα»ααα·ααΆαααΆαααα’αααααααα ααΌα αααααα αααα»ααααααααααα ααααααααααααα ααΎαααΉαααααααααα½αααΎααα ααΉααα·αααααΆαααΌαα αααααΆαααΆαα» "ααααΌα" ααααΆααααα Eclipse Platform αα·α JDT α
αααααααΆααααΎαααΆαααααΌα
α αααααΆαα
ααΆαααααααααααααα·ααΈαααα½α Eclipse ααΊααα’ααααΎ
ααααααααααΎααΆαααααΌα
ααααΎααααααααααα·ααΆααΆαα’αα·αααααααα½ααααα
αΌαααααΆααααααααΎαα‘αΎααα
ααΎααααΌααααααα·ααΆ Eclipse ααααΎαααΆαααΆαα½αααααααααααΎααΆα Eclipse α ααΆααΆααααααααααΎααΆααααααΆααααααΆααΆαααΌαααααααααααααα·ααΈαααααΆααααααΎαα‘αΎααα
αααα»α IDE α αααααΈααααααααααΎααΆααααααααΆαααα
ααααααααα―αααΆα αα·αααΆααααααααααααΆαααα―αααΆα αα·αα―αααΆαα αααααα ααα―αααΆα αα·αα―αααΆαααΆαααααααααΌαααΆαααα α
ααΆ ααααΆα ααααααααααΎααΆαα ααΆαα’αα»ααααααααααααααΎααΆααα
αααα»α Eclipse αααααΎααΆααααΆαααααααΆααααΆααααααΉαααααααααα―αααΆα αααααααΎα±ααααΆα’αΆα
ααααΎαα
ααΆαααΎααααΈαααααΎαααααΏαααααααΆαααααααΆαααααΆααααΆαααααΆααα ααΎαααΈαααααα ααααααααααΎααΆααααααααΌαααααΆαααααααααααα½αα
ααα½α αα½αααΆαα
αααΆαααΆαα»ααααΆαααααΌα (org.eclipse.core.resources plugin) ααα½ααα»αααααΌαα
ααααααΆαααΆααααααααααααααΎααΆα αα·αααααΆαααααααΆα ααΆαα·ααα αααΆαααΆαααααααααααΌαααΆαα
αΌαααααΎαααΆαααΆααααααα·ααΈαα
ααΆααααααααααααΎααΆααααα»ααααααα ααααΌααααΆα. ααΎααααΈααααΎααΆαααααααααααααα·αααααΆαααΆαα½αααααΌααα α’αα·αα·ααααααΌαααΆααα·ααΈααΆαααααα½αααΎααααΈαααα αΆαααααα
ααΆααααααΆαα αααα»αααααΈααα ααΆααΆααΆαα
ααααΆααααααα»ααααααααΆαα»ααααααααΆααααΌαααααΆαααΆαααααααΆααα
αααα»αααααΌααΈααΆαα
αΌαααααΎααααα’αα·αα·ααα ααΎαα·αααΌα
αααααα αααα»αααααΈα§ααΆα ααα ααΆααα»αα―αααΆα α’αα·αα·ααα’αΆα
ααααααΆααααααα»ααααααααΆααα
αααα»αααααΌ αααααΆααααα αΆααΆαααααααααΆααα Eclipse αααααααΆααααα αΆααααααααααΎα’αααΈαααααα α
ααΆ αααααααΆα ααααΆαα Handle ααΎααα½ααΆαααααΉα (ααΆααααΆααααααααΌααα
ααΆααααααΆααααα»αααααααααααΎααΆα) αα·ααααααααααααΆαααααα»αααΌαααΆαα
αΌααα
ααΆααααααα»ααααΌααΆααααα»α ααααααααΆαα»αααααααΆααααααααΆααα’αααΈααααΆαααΆαααααααΆαα ααΆααα
ααΆαααααΊααΆααΆααααααααα½αααααααΌ
α’ααααα ααΌαααΆαααΈ 2 αααα αΆαααΈααΆααα Handle/Body idiom ααΌα αααααΆαα’αα»ααααα ααααααααΌααααΆαα α ααα»α αααααΆαα IResource ααααΆαα±ααα ααα»α ααΆαααααααΆα αα·αααΆ API αα·αααΌα ααααΆααααααΆα αααα’αα»ααααα ααα»α αααααΆααααα αα·αααααΆααααααΆαααααααΆα αααααααΆαα±αααα½ααααα·ααααααΆ APIs α ααΎααααααααααααααΆ α ααα»α ααΆαααΉαααααααΌααα ααΆααααααΆααααααΆαααααα ααΉαα«αααααααααααΎααΆα α αΎααα·αααΆααααααααΆαααα ααΆααααααααΆαααααΆαααα ααααα»ααααααΆαααααΆααααααΎαααΆαααΆ "αααααΆαααΆαα»" α αα ααΆαααααααααα·αααααααααααααΌαααΆααααααΎαα‘αΎαααΆαααααα»ααα αααα»αα’αααα αα αΆαα ααΎααααΈαααααααα§ααΆα αααααααααΆαααααΆααααααααΌαααααΆααΉαα ααα»α ααΆα αααααΆαααΆαα»ααααΌαααΆαααααααΆααααααααααΆαααααΌαααααααα»ααα αααα»αα ααα»α ααΆααααα
α’ααααα 2. IResource αα·α ResourceInfo
ααΌα αααααΎαααΉαααΎααα αααααααα ααΆααα ααΆααΆααΌαααααΆαααααααΌααααΆα (ααΎαα’αΆα α α ααΆααΆ α ααα»α ααΆα) ααααΌαααΆαααααΎαα αααα»α Eclipse αααααΆαααααΌααααααααααααααααα αααααΆαααααααα α αΌαααΆααααααΈαααααααααααααα·αααααααα½αα ααα½αααααΆααα ααΆαααα
- α ααα»α ααΆαααΊααΆααααα»αααααα ααααα»αααααααΊααΆααααα»ααααα·αα’αΆα ααααΆααααααΌαααΆα αααααααΆααα·αααα’ααααΎα’ααααααααΆαα ααααα»ααααααα’αΆα ααααΌαααΆαααααΎααααΆααααααα»ααααα·ααΆαααΆαααα αααα»ααα»α hashed α α ααα»α ααΆαααΆα αααΎαα’αΆα αααααααΆαααΌα ααααΆα ααΎααααΈαααααααααα½αααΆ α’αααααααΌαααααΎαα·ααΈααΆαααααααααΎ(ααααα»)α
- Handle αααααα₯αα·ααΆααααααααααΆα ααα»αααααα·αααΆαααααααΆαα’αααΈααααΆαααΆαααααααΆα (αα·αααααααααα½αααααααααΆαααααΆαα»αααΊ "αααααΉα" αααααΆααααΌααα ααΆααααααΆα)α
- Handle α’αΆα αααα αα ααΎααααΆαααααα·αααΆααααΆα (ααΆααααααΆαααααα·αααΆααααααΌαααΆααααααΎα α¬ααααΆααααααααΌαααΆααα»ααα½α α αΎα)α α’αααα·ααΆαααααααΆαα’αΆα ααααΌαααΆααα·αα·ααααααααααΎαα·ααΈααΆααααα IResource.exists() α
- ααααα·ααααα·ααΆααα½αα ααα½αα’αΆα ααααΌαααΆαα’αα»αααααααααα’ααααααΎααααααΆαααααααααΆαα»ααααα»αα ααα»α ααΆαααααααα½αα―α (α α ααΆααααα·ααααα·ααΆαααααααα»ααααα)α α§ααΆα αααααΊ IResource.getParent(), getFullPath(), αα ααααΆααα·αα αΆαααΆα αααΆααααααΆααααααα·ααααα·ααΆαααααααααΎααααΈαααααααααααα ααααα·ααααα·ααΆααααααΆαααΆαααααΆαααΎααααΈα±ααααααααααα CoreException ααααα·αααΎααααΆααα·αααΆαα
Eclipse αααααααΌαααααααΆαααααΆαααααα·αααααΆααα½ααααααΆααααΆαααΌαααααΉαα’αααΈααΆαααααΆααααααΌαααααΆαααααααααααΎααΆα (ααΌαααΆαααΈ 3) α ααααΆαα’αΆα ααααΆααααααΌαααΆαααααααααααααααΆααααααΆαα’αα»αααααα αααα»α Eclipse IDE αααα½αααΆααααΆαα α¬ααΆααααααααααΆαααααΎααααΆαααααααΆαα½αααααααααα―αααΆαα αααα»αααααΈααΆααααΈαααα α’αα·αα·αααααααΆαααΆαααΌαααααΉαααααΌαααΆααααααααααααΆααααα’α·αα’αααΈααΆαααααΆααααααΌααα αααα»ααααααααα "ααααΆα deltas" α ααΈαααααααααΆα’αααΈααΆαααααΆααααααΌααααΆαααααααΈαααααααΆαααααααααααΎααΆα (α’αα»-) αααααΆα α αΎααααα½αααΆααααΆααααΆαααααΆα αααααααΆααααΈαα½αααααααΆα’αααΈααΆαααααΆααααααΌααα ααααΆα αα·αααΆααααααΈααΈαααααα ααααα·ααααααΆααααααα·αααααΆα’αααΈααΆαααααΆααααααΌαααααΆααα»ααΆαα
α’ααααα 3. IResourceChangeEvent αα·α IResourceDelta
ααααααΆαααΌαααααΉααααααα’ααααΎ deltas ααααΆαααΆαααααααααΌα ααΆααααααα
- ααΆαααααΆααααααΌααααα½α αα·αααΆαααααΆααααααΌαααΆα αααΎαααααΌαααΆααα·αααααΆαααααααΎαα ααΆααααααααααΌα ααααΆ α αΆααααΆααααΈαααααααΈααααααααΌαααΆαααΆαααααααααααΎαααααΆααααααααΆαααΆαα‘αΎααα·αα α’αα·αα·αααααααΆαα’αΆα ααααΎαααΆαααΆαααΌαααααΉαα’αααΈααΆαααααΆααααααΌαααααΆααααααααΎαααααΌααααααααΆαααααααααΆαααααΈααααα
- αααααααΈααααααΆαααααααΆαααααααα’αααΈααΆαααααΆααααααΌαααααΆα αα½αααΆααα αααΆααααααΆ αα·α/α¬ααΆαααααΆααααααΌααα αααα»α "αααααΆαααααΆαα" αααααααΆααααΆαα½αααΆ (α§ααΆα ααα ααα α»ααααα»αααΆαα αααααααααΌαααΆαααααΆαααΆαααααΆαααααΆαα)α
- αααααΆαααα ααααΈαααααααΆαααααΌαααΆαααααΎα‘αΎαααΆααααα ααα»α ααΆα ααΈααααα’αΆα αααααααΆαααΈα ααααΆααααααααααΆαα·α
ααΌα αααααΎαααΉαααΎααααα»ααααααΆαααααα ααΆαα»ααααααααΆαααααααΆααα ααΆααααααααΆαααΌαααααΉαα’αααΈααΆαααααΆααααααΌαααααΌααααΆαααααΆαααααααααααααααααΆαααααΌααααααααα’ααααΎα ααα»α ααΆαααααααααα
ααααΌα JDT
ααααΌααααΆαααααααααααΎααΆα Eclipse ααΊααΆααααΌααΆααΆααΌαααααΆα - agnostic α αααΆαααΆα JDT Core (αααααα·ααΈαααα½α org.eclipse.jdt.core) ααααα API αααααΆαααα»ααα αα·ααα·ααΆααα ααΆααααααααααααααααααΎααΆαααΆααααααααααα Java αααα α ααΆ "ααααΌ Java" (αααΌααα Java) API αααβααααΌαβααΆαβαααααβαααα»αβααααααααβααβααΆαα» Java αααβαααα»αβαα βααΉα API ααααΌβααααΆαβααΌαααααΆα αααβααααΌαβααΆαβαααααβαααα»αβααααααααβαα folder αα·αβα―αααΆαα α ααα»α αααααΆααα αααααααααααΆαααΆαα» Java ααααΌαααΆααααα αΆααα αααα»αααΌαααα α€.
α’ααααα 4. ααΆαα»ααααΌ Java
ααααΌ Java ααααΎααΆααα handle/body idiom ααΌα ααααΆααΉαααααΌααααΆα (ααΌαααΆαααΈ 5)α IJavaElement ααΊααΆα ααα»α ααΆα α αΎα JavaElementInfo ααΎααα½ααΆαα½αααα½αα α ααα»α αααααΆαα IJavaElement ααααααα·ααΈααΆαααΌαα α ααααααΆαα» Java ααΆααα’ααα αα·ααΈααΆααααααα½αα ααα½αααααααΆααΊαααααΆαααααααααααΆαααα»αααααα getElementName(), getParent(), αα ααααα» JavaElementInfo αααααΆαα»αααααΆαααΆαααααΆαα»αααααααΌαααααΆα αα ααΆαααααααα αα·ααα»αααααααααααααΆα
α’ααααα 5. IJavaElement αα·α JavaElementInfo
ααααΌ Java ααΆαααΆααα»ααααααααααΆαααααααα»αααΆαα’αα»ααααααΆααα ααΆα ααα»α ααΆα/αα½ααΌαααααΆα ααΎαααααααααα ααΉαααααΌααααΆαα ααΌα αααααΆαααααααααΆααααΆαααΎ αα αααα»αααααΌααααΆα αααααΆαααΆαα» αααααααΆαααααααα½αααααΆααααα»ααααααΆαααααΆα ααΊααΆαααΆαααααα»ααα αααα»αα’αααα αα αΆαα ααα»ααααααααΌ Java α’αΆα ααΆαα ααα½αααΆαα»ααααΆαααααΆααααααΆα αααααααΆααααΆαα±αααα ααΆααααααααααΆααααα»αααααα―αααΆα .java αα·α .class αααααα αααααα ααΆα αα·ααα·ααΈααΆαααααα
ααΎααααΈαααααΆαααΆααααααΎααααααΆαααααΆαα»ααΆααααΌααα αααα»αα’αααα αα αΆα ααΆαα’αα»ααααααααΌ Java ααααΎααα αααααα LRU ααααΆαααααααΆααααααααααΆαααΆαα» ααααααααΉαααΊαααααααΆα IJavaElement α ααααα»ααααααΆαααΆαα»ααααΌαααΆααααααΎαααΆααααααΌαααΆα αα αααααααααααΆαααΆαα»ααααΌαααΆααα»αααα αααα»αααααΈααα ααΆαα»αααααααΎααΉαααΆαααα·α αααα»αααααΌαααΆαααααααα ααααΈααααΆαααααααΆαα α αΎαααΆαααααΎααααΆααα’αααα αα αΆααααααααΌααααα ααααΆαααααα·αα ααααααα αααααΆαααααααΆαααααααΆααααααΆααα αααααΊααΆα’ααααααααααααα½ααααααααΆααα ααΆααα’ααααΎα ααα»α ααΆα αααααΆααααΆαααααα»αααΌαααααααΆααααα’α·αααααΆαα’αα»ααααααΈααΌαα’αα·αα·ααα
ααααααΆαβαααααΆααβααΆαβααΌαβααααΉαβααΆαβααααΆααβααααΌβαβαα βααΎβααΆαα» Java ααΊβααΆβααΌαα βααααααβααααΆβααΉαβααααααΆαβαααααΆααβααΆαβααΆαααΆαβααΆαβααααΆααβααααΌβαβααααΆαβααααααβααααΎααΆαβαααβααΆαβαα·ααΆααααΆβααΆαβααΎβα α’αα·αα·αααααα ααααΆαααΆαααΆαααααΆααααααΌααα αααα»αααααΌ Java ααΆαααΆαααΌαααααΉα αααααααΌαααΆαααααΆαααΆααααα» ElementChangedEvent αααααΆα IJavaElementDelta (ααΌαααΆα 6) α
α’ααααα 6. ElementChangedEvent αα·α IJavaElementDelta
ααααΌ Java αα·αααΆαααααααΆαα’αααΈαα½αα·ααΈααΆααααα α¬αααααααααΆαααααααα ααΌα
αααααααααΆααααΆααα·ααΆααααα’α·αααααΌααααααααααααα»α Java JDT Core αααααααΌαααααΌαααααα (αα·αααα’ααααΎα
ααα»α
ααΆα)α
αααααΆαααααΎαααΎααΆαααααααααααα’αΆα ααααΎααααΆααα’αααα αα αΆααααΆαα αααΎα JDT αα»ααα AST αα½αααα»ααααααααααΆαααααααα·ααΈαα·αααααααααα αα·αααΌα ααααΌ Java αα AST ααΆααααααΆααααΌαααΆαααΎαααΆααΆααααΌ "ααααα" "ααααααα’αΆαααα" αααααΆαα»αααα’αα·αα·αααα·ααα½αααΆαα―αααΆαααααα ααΆααααα ααα·ααααααααα·ααααα·ααΆααααααΆααα αααααΆααααααΎα AST α
ααααΌααΆααααΈαααααΆαααΆααααααΈ (Java model, AST, bindings) αα½αααααΆαααααΎαααΆααΌαααααΆααααααΆαααααααΎα "α§αααααα’αα·ααααααααααΆααα" αα αααα»α JDT αα½αααΆαααααααα·ααΈαα·αααα Java ααααΆαα’αΆαα»ααΆαααΆαα½αααΉα "α’ααααααα½α" αααααα αααααααΆααααααααααααΆααααααΎαααΆαααΌαααααα (αα½αααΆααααΆααααα ααααααΈααααΆαααΆαα αΌαα αααααβαα·αβααΆαβααααΎβαααααααααΆαβαααβαααβααΆαβαα ααΆαααααβαααβααΆαβααααΌαβααΆαβαααα) α§αααααβαααααβααβαα·αβααΆαβααβααααα½αα αααα»αααααΈααα ααααΌ Java ααΎααα½ααΆααΈαα·ααα αααααααΆααααΌαααΆαααααΎααΆααΌαααααΆααααααΆααααααΆααααααΎαααΎααααα ααΆαααααααααααααααα·ααΈααααααα»αααααΌαααΆααααααΎαα‘αΎα (α§ααΆα ααα αα αααα»α Package Explorer, Outline, Search, Call Hierarchy αα·α αααααα ααΆααΆαα»αααα) α
αααΆαααΆαα» Eclipse αααααααΎαααα»α 1C:Enterprise Development Tools
αα αααα»αααΌαααα ααΌαααΆαααΈ 7 αααα αΆαααΈαααΆαααΆαα» Eclipse ααααααααΎαααΆααΌαααααΆαααααΉααααααα·ααΆαα αα αααα·ααααΆαααααΆαα 1C:Enterprise Development Tools α
α’ααααα 7. Eclipse ααΆαααα·ααΆαααααΆαα 1C: α§αααααα’αα·αααααααα ααααΆα
αααα·ααΆ Eclipse αααααα αααααΆαα ααΆααααααααααΌαααααΆαα ααΎαααΆααα·αα·αααααΎααα·αααααΆααα½αα ααα½αααα αααααΆαα ααΆααααααααααααα αααα»αααααααα»αα
ααΌα
ααΆα§ααααααααααΆααααααααααΌαα
αα·αααααΆαα EMF ααΊαααααααααααΆααααΆααααααααΆααααα αΆααααΌααΆα
αααΎα ααα»αααααααααααα½αα
ααα½ααααααΌααα (α§ααΆα ααα αααΌααααααααα’ααααΎα
ααα»α
ααΆααααααΆααα·ααΆααααΆααΆαααΎ) α’αΆα
ααααΌαααΆαα§αααααααααΌαα·ααααααααααααα ααΆααα·ααΆαα’αααΈ EMF ααΊααΆαα·α
αα
ααΆααααααααΆαααΆαααΉααα»α ααΆαα·ααααα
αααα»ααααααααααααααΆααααααααα’ααααααα½α ααααααααααΊααΆαααααΆαααααααααα
ααΆα
ααααα‘αα αα·αααααΆααααΆαα α’αα»ααααΆαα±ααααΎααααααααΆααααΆαααααααααααααΆααα»αααΆααααααααααΆαααααΎααΌαα
αααααα’ααααΎ EMF ααΆαα’αα»ααααΆαα±αααααααΎαααααααααΆααααΌααααα§αααα·ααααααΆαααααΎααααΌ αααααααΌαααΆααα½ααααα
αΌααα
αααα»αααααααααααα·αααααΌαα
1C: α§αααααα’αα·αααααααα ααααΆαααααΎααααΆαααααΆααααααααΆαα EMF αααα½αααΆααααΆαα αα·ααααααα Eclipse Modeling αα½αα ααα½αααααααααα ααΆαα·ααα Xtext ααΊααΆααΌαααααΆαααααΉααα½αααα§αααααα’αα·αααααααααααΆαα 1C:Enterprise languages ββααΆααΆααΆααααααααααα·ααΈ αα·αααΆααΆαααα½ααααααααΆααααααΆαα½αα ααΌαααααΆααα½αααααααααΆααα§αααααα’αα·ααααααααΆαααααααΊαααααα Eclipse Handly αααααΎαααΉααα·ααΆααααΆαααα’α·αααααααααα (αααααΆαααΆαα» Eclipse αααααΆαααΆααααααΈ ααΆαα ααααααΌαααΆαααααααΆαααα·α αααα»α)α
αααααΆαααααααΆααααααααααΆααΌαααααΆααααααΌααααααααΆαααΌαααααΆαααΎα ααα»α ααΆα ααΌα ααΆααΆαααααααΈα ααα»α ααΆα/αα½ ααααΌαααΆααα·ααΆααααΆααΆαααΎαααααααΎααααΌααααΆα αα·αααααΌ Java ααΆα§ααΆα αααα ααΆααααΆαααααααααΆαααααααααΆααΆααααααΌααααΆααα·αααααΌ Java ααΊααΆααΌαααααΆαααααΉαααααααΆαααααααΆααα§αααααα’αα·αααααα Eclipse Java (JDT) α α αΎαα αΆααααΆααααΈαααααα * DT Eclipse ααααΎαααααΆααα’ααααΆαααααΆααααααααααααααααΉα JDT ααΆαα·ααααααΆααΆαααααααΎαααα’ααα αΆααααααααα»αααΆααα·ααΆαααΆαααΌααααααααΆαααΌαααααΆαααΎα ααα»α ααΆαααΆαααΌαααααΆαααΎααΆα αααΎα ααααα·αααΎαα·αααα IDE ααΆααα’αααααααΆαααΆαααααα ααΎααααΌααααααα·ααΆ Eclipse αααααα α§ααΆα ααα α§αααααα’αα·αααααα Eclipse C/C++ (CDT) ααΆαααααΌ C/C++ αααααΆαααΌαααααΆαααΎα ααα»α ααΆα αααααΎααα½ααΆααΈααΌα ααααΆαα αααα»αααααΆαααααααα CDT ααΌα αααΌααα Java ααααΎαα αααα»α JDT α
αα»αααα Handly Eclipse αα·αααΆαααααααααααΆαααα―αααααααααΆαααααααΎαααααΌααΆααΆαααααα’ααααΎα ααα»α ααΆααααααα αααΌαααβαααβααΆαβαα αα α»ααααααβααααΌαβααΆαβαααααΎαβα‘αΎαβααΆβα ααααβαααβααΆαβαααααβαααα½αβαααβααααΆααβααΌαβααΌαβααααΌ Java (aka copy/paste) αααα»αααααΈαααααΆα’αα»ααααΆα Eclipse Public License (EPL) α (ααΆααααααα αααααΆααααααΆαα·ααααααΆαααα αΆααααΌαα αααΆαααααααΆαααααααα Eclipse ααααααα½αααΆααααΆαα ααα»αααααα·αααααααααΆααααα·αααααααααα·ααα·ααααααα) ααααααααΈααΎααΆααα»αααααααααααΆ αα αα ααααααααααααΆαα’αααΈαααα αΆααααΈαααααα ααΆαα ααααααΌααααααααΆαααααα αααααααααααα½ααα ααΉαααα α»αα αα α’αααΈβαααβα’αΆαααααβααΆαβαααβααΊβααΆβααααΌβααααααβαα βααβααΆ "ααααβαααα½αβα―α" α αΎαβαα·αβααΆαβααβααααααααβααΈβαααααΆαα»ααβαααααΆααβααΆαβααααα½αααααα½αβα‘αΎαα ααα»ααααααΆααααα ααααΌαααααααα·α αα·ααα·ααΈααΆαααΌαα αααααΆααααααΌααΆααΆαααααα’ααααΎα ααα»α ααΆαα’αΆα ααΆαα±ααααΆαααΆααααααΎααααΆαααΆαα»αααα’αΆα ααααΎα‘αΎααα·αααΆααααααΆααααααΎααΆαααΆαα½ααα½ααα αααααααα ααΉαα’αααΈαααααΆαααΎαα‘αΎααα αααα»αααααΈ EMF αααα
ααΆαα·ααααααΆ Eclipse αα·ααααααΈαααα αΆααΆαααααααα αααααααα
ααααΆα 2005
αααα»ααααααΆααααΆαααα½α αααααα Handly ααααΌαααΆααα ααΆα‘αΎαααΎααααΈαααααααΆααααα αΆαααα αΆαααααα ααααΉα EMF ααα»αααααααααΆαααααΌααααααααΆαααΌαααααΆαααΎα ααα»α ααΆα αα·αααΆααΆααΆα αααα (α§ααΆα ααα ααααΆαα±ααααΆαα»αααα ααΆααααααααααααΆααΆααααααααααα·ααΈαα½αα ααα½α)α ααααα α αααααααααΆαααααααα ααααα ααΆ Handly ααααΌαααΆαααΆαααΆααααααα
- ααΆααααααα’ααααααααΆαα’ααΌααΈααααΆααααααααααΆαααα
- ααΆαααααααααΆααα·αααααααΉαααααα αα·αααΆααααααα’αα»αααΆαααααΆαα’αα»ααααααααΌααΆααΆαααααα’ααααΎα ααα»α ααΆαααΆααααααΆαααααΎααααΆααααΌαα‘αΎααα·αα
- ααΆαααααα API ααααα·αααααΆααααα½αααααα½ααα ααΉαααααΌαααααα ααααΎα±ααααΆα’αΆα αααααΎααααΆαααΆαα» IDE ααΌαα αααααααΎαααΆαααΆαα½αααααΌαααααα’ααααΎααΆααΆα
- ααΆααααααα αα·ααα·ααΆαααΆαα
- ααΆααα½ααααα αΌαααΆαα½α Xtext (αααα»ααααααΆααααΆα ααααα‘αα) α
ααΎααααΈααααα αααα·α αα·ααα·ααΈααΆαααΌαα ααΆαα’αα»αααααααααΆαααααΆααααααααΌαααααα’ααααΎααΆααΆααααΌαααΆααα·ααΆαα α ααα»α αααααΆααα αααα αα·αααΆαα’αα»ααααααΆααΌαααααΆαααααααααααα Handly ααααΌαααΆααααα αΆααα αααα»αααΌαααα α¨.
α’ααααα 8. α
ααα»α
αααααΆααααΌαα
αα·αααΆαα’αα»ααααααΆααΌαααααΆαααααΆαα» Handly
α ααα»α αααααΆαα IElement ααααΆαα±ααα ααα»α ααΆαααααΆαα»αα½α αα·αααΆααΏαααααααΆαααααΆααααΆαα»ααΆααα’αααααααΌααααααααΆαααΌαααααΆαααΎααα ααΆαα»ααααΆααα’ααΌααΈα’αα»ααααααααααΆαα ααα»α ααΆα/αα½ααΌαα (ααΌαααΆα 9) α
α’ααααα 9. IElement αα·αααΆαα’αα»ααααα
ααα»α
ααΆαααΌαα
/ααΆαααΆα
ααΎαααΈαααααα Handly αααααααΌαααααααΆαααΌαα αααααΆααααΆαααΌαααααΉαα’αααΈααΆαααααΆααααααΌααα αααα»αααΆαα»ααααΌ (ααΌαααΆα 10) α ααΌα αααα’αααα’αΆα ααΎα ααΆααΆααααααααααααααα ααΉαααααααΆαααΌαααααΉααααααΆαα’αα»αααααα αααα»αααααΌααααΆα αα·αααααΌ Java α αΎαααααΎ IElementDelta ααΎααααΈαααααααΌαααααΆαααααα½αααααα½αααααααααΆαααΆαααααΆααααααΌαααΆαα»α
α’ααααα 10. α
ααα»α
αααααΆααααΌαα
αα·αααΆαα’αα»ααααααΆααΌαααααΆαααααααααΆαααΌαααααΉαααααα
ααααα Handly αααααΆααα·ααΆααααΆααΆαααΎ (ααΌαααΆα 9 αα·α 10) α’αΆα ααααΌαααΆαααααΎααΎααααΈααααΆαααααΎαααααααααααΌααααααααα’ααααΎα ααα»α ααΆαα αααααΆααααΆααααααΎα ααΆααΆ αααΌααα αααααααααααααΌααα»αααΆααααααα - ααΆαα·ααα α ααα»α αααααΆααααΌαα αα·αααΆαα’αα»ααααααΆααΌαααααΆααααααΆααααΆαα»αααα ααΆααααααααα’αααααααααα αααα α ααΆ ααΆαα»ααααα (ααΌαααΆαααΈ 8) α α ααα»α αααααΆαα ISourceFile ααααΆαα±ααα―αααΆαααααα α αΎα ISourceConstruct ααααΆαα±ααααΆαα»αα αααα»αα―αααΆααααααα ααααΆααα’ααΌααΈ SourceFile αα·α SourceConstruct α’αα»ααααααααααΆαααΌαα ααΎααααΈααΆααααααΆαααααΎααΆαααΆαα½αα―αααΆαααααα αα·αααΆαα»αααααα½ααα α§ααΆα ααα ααααΎααΆαααΆαα½αααα·ααααααα’αΆααααα’ααααα ααΆαα ααα ααΉαααΌα’αααααααααΆαα»αα αααα»αα’αααααααααα ααΆαααααααααΆααααΌααΆαα½αααΉαααΆαα·ααΆαα αα α»ααααααααααα·ααααααα’αΆααααα ααααααααααα»αααααΎαααΆα αα ααΆαα’αα»ααααααααααΆαααΆαααααααΆααααααΆααΆααααα αΆααααα α αΎα Handly α’αΆα ααΆααααααααααΆαααααΆααααΌααα·α αα αα·αααααααΉαααααααααα»αααΆαα’αα·ααααααααΌααΆααΆαααααα’ααααΎα ααα»α ααΆαααααααααααΌαααΆαα’αα»ααααααΌαααααΆααααααΆααα»αααΆααααααα
ααααααααΈααΎααααααΆαααααΌααααααΆαααΆααααααΈααΆαααΎ Handly αααααααΌαα αααααΆαα ααΆαααααααααααααΆααααααα»αα’ααααα αα·αααΌααα ααΆαααΆαααααααααΆααααΆααα½ααααα αΌαααΆαα½αα’αααααααααα½αααΌαααααα (αα½αααΆααααΆααα½ααααα αΌααααα αααα’ααααΆαα½ααααααα·ααΈαα·αααα Xtext) ααααΌα ααΆαααΆαααΆαα» UI ααΌαα αα½αα ααα½αααα ααααΎααΆαααΆαα½ααααααα·ααΈαα·ααααααΌαααααααααααααΌα ααΆ αααααααΆααααααααα ααΎααααΈαααα αΆαααΈαααααααΆαααααααΆ ααααααααααααααααΌαα§ααΆα αααααΆα αααΎα αα½αααΆααααΆαα’αα»ααααααααΌ Java αα αααα»α Handly α (ααΎαααααααααα ααΉαααΆαα’αα»ααααααααααααααααΌ Java αα αααα»α JDT ααααΌαααααααΌαααΆαααααΎα±ααααΆααααααααα·α αααα ααααΆαααααΆααααΆαα αααΆααααΆααααΆααααα αααΎαα )
ααΌα αααααΆαααααααααΆααααΈαα»α ααΆααααααααααΆαααα½ααααα»αα’αα‘α»ααααααΆααα ααΆααααΌααααα Handly αα·αααΆαα’αα·ααααααααΆαααααααααΆααααΊ αα·ααααααα ααΎααΆαααααΎααΆαααααααΆα αα·αααΆαααααααα
ααΆαααααΆααα αααΌααααααααΆαααΌαααααΆαααΎα ααα»α ααΆαααααΎααΆαααααααΆαααΆααααΆαααα’ "ααΆαααΆααα ααΆ"α α§ααΆα ααα α ααα»α ααΆα/αα½αααα½α idiom α’αα»ααααΆαα±ααα’ααααααααα ααα½αα’αααα αα αΆααααααααΎααααΆαααααααααΌαα½αα ααα»ααααααααΆα nuances αααααα ααΌα αααααα αααααΆααααα Handly αααααΆααααΆαααααΎααΆαααααααΆα αααα αΆαα½αααααΌαααΆαααααΎααα αααα»αααΆαα’αα»ααααααααααΆαααΌαααααΉα - αα ααααααααΆαα»αα½αα ααα½αααααααΌαααΆαααααΆααααααΌα ααΆαααΆαααα deltas α αααΆααααα αααΎααααα ααΆααΆαααααααααΆαααΆαααα αΆααΌα ααααΆαααααΆαααααααΆααα αααα»αααααΌ JDT Java ααααααααΌααααααααΌαααααΆααααΌαααΆαααααααα½αααααα ααΎαααΆααα½ααα»αααα α»ααα αααα»α Handly αα·ααααα αααααααααααααααΆαααααΆαα JDT αααααααΌαααΆαααα½ααααα’ααααα»αα αααααααΆααααααΆα§ααΆα ααααα½ααααααΆαααααΆα Handly αα αααα»αααΆαα’αα»ααααααααΌαααααΆαααααΆααα’αΆα ααΆααααααααα ααΈααααααααα»αααααΈααα ααα α»αααααααα’αΆα ααααΌαααΆααα½ααα»ααα αααααααααα½αα
ααΎααααΈααααΎα±ααααΆαα’αα»αααα Handly αα
αααα»αααΆαα’αα»ααααααααΌαααααΆαααααΆααααΆααααααααα
αα
ααααα αααααΆαααααααΌαααααΆαααΆααααααααααΆαααααΆααα αααα αΆα
ααααααΊαααααΆααΆαααααΌαααααΆααααααααα
ααΌααΆααααααΌ API α αααα αΆαααααααΌαααΆααααααααΆααα
αααα»α
ααΆαααααααααααΆααα·αααααΆααααααααααααααα α§ααΆα ααα Handly ααααΎαααααααΆαααΆαααΉααααααΉαααΎαα
ααΆααααααααααααααΌ α αΎαα’αΆα
ααααΌαααΆαααααΎααΎααααΈααααΎααααΌααΆααααΆααΆαααααααααΌαα
αα·αααΆααΆααΆααααΆαααααααα αα
ααααααααΎααα
ααΆααααααααααα―αααΆαααααα Handly αα·αα
ααααααααααααΆααααααααΆααααΆααααΆαα½αααααΆαααααΆα AST α αΎαααΆαααααΆααααα·ααααααΌαα±ααααΆαααααααΆααααα AST αααα½αα―ααα ααΌα
ααααα αΎαααΆααΆααΆαααΌαααΆαααααααΆααΆαα½αααααΎααααααααααααααΆααα·ααΆαα ααΆα
α»αααααα Handly ααΆααααααΆααα½ααααα
αΌαααααααααΆαα½α Eclipse workspace ααα»ααααααα’αΆα
ααααΎααΆααααααααΆααααΆαα½αααααααααα―αααΆαααααα αααααΆαααΆααα½ααααα
αΌαααααααΆααΆαα½α
αααααα
αα
α»αααααα
ααΌα
αααααΆαααααααααΆααααΆαααΎ ααα·ααααα½ααααα»αα
ααααααα·αααααΆαααααααΊ 1C:Enterprise Development Tools ααα Handly ααααΌαααΆαααααΎααΆααααΈααΎαααααΌααα αΌααααααΆαα»ααααΌαααα
ααΆααααααααααααα·αααααααα 1C:Enterprise languages ββααΆααΆααΆααααααααααα·ααΈ αα·αααΆααΆαααα½ααααααΆαααααΆααα . ααα·αααβαα½αβαααβαα·αβααΌαβααΆαβα’αααβααααΆααβα
αααΎαβααα αααα
ααΎααααααΉαααΆαααααΆααααΈααΆαα
ααααααΆααααα 1.0 ααΆαα½αααΉαααΆαααΆααΆαααααααααΆα API αα·αααααααα
αΆαα
ααααΈααααΆαααΆα incubation, Handly ααΉαααΆαα’αααα’αα»αααααααΈα αααα»ααααααΆαα½αααααΆααα ααααααααααααΆααααα αα·ααααααα’ API ααααααααα αααααΆαα
ααααααΆαααΆαα
ααααααΆα "ααααΆαα" α
ααα½αααΈααααα»ααα½αααααΆα - αααα»ααααα·αα»ααΆ (ααΆαααα·α
ααααααΌα
ααααΆααΉαααΆαα
ααααααΆα Eclipse ααααΆαααααΆ) αα·αααααααΌ ααααααααααΌαααΆααα·ααΆααααα’αΆα
ααααΆααααααΆααααα’αααα’αα»αααα’αΆα
ααΉαααα’ααααΎα ααΎαααα’αΆα
ααααααααΆ "α’ααααΆααα α»α" αααααααααααα
αααααα·ααααα»αααααα·αααΆαααΆααααΆαα α αΎα Handly ααΆαααααΎααΆαααααααααααΆαααΏααΆαααα
αααα»αααα·αααααααα’αααααα½αααααααΌαααΆααααΈααααααααΌαα ααΎααααΈαααααααααααααα Eclipse Handly α’αααα’αΆα
ααααΎ
ααααα: www.habr.com