ááá±á¬á
ááá¬ááááŒá¯á¶áá¯á¶áá¯á¶ážáááºáá»ááºááŒá
áºááá·áº á€áá±á¬ááºážáá«ážááœááºá Eclipse áááá¯áá¬áááºáá¬á á¡ááŒá±áá¶á¡áá»áá¯á·ááᯠáá±á«ááºážá
ááºááœá¶á·ááŒáá¯ážááá¯ážáááºáá±ážáááááá¬áá»á¬ážáááºáá±á¬ááºáááºá¡ááœáẠááááºáá±á¬ááºážáá
áºáá¯á¡ááŒá
Ạáá»áœááºá¯ááºááá¯á·ááŒáá¯ážá
á¬ážááŒá®áž áááºážááá¬áá¡ááŒá±áá¶á¡á¯ááºááŒá
áºááŒá
áºáá±á¬ Eclipse á¡á
áááºá¡ááá¯ááºážáá»á¬ážááᯠáááŠážá
áááºáá°ážáá
áºáá¯áá±ážáá«áááºá "ááŒááºáááºááŸá¯á¡áá
áº" 1C: áá¯ááºáááºážá¡ááœáẠááááºáá±á¬ááºážá
Eclipse Architecture ááááºáááº
á¥ááá¬ááᯠá¡áá¯á¶ážááŒá¯á Eclipse áááá¯áá¬á áá±áá¯áá»ááŸá¯áá±á¬áá·áºá¡áá»áá¯á·ááᯠáŠážá
áœá¬ááŒáá·áºááŒáá«á
áá¯á·
ááááŠážá áœá¬á Eclipse ááẠáá®ážááŒá¬ážáááá¯ááááºážáááºážáá¬áá¬á áá¬ážáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáááºá¡ááœáẠáá®ááá¯ááºážáá¯ááºáá¬ážáá±á¬ áá¯ááºáá±á¬ááºááá¯ááºá áœááºážá០áá¬áá¬á áá¬áž-ááœááºáááºáá±á¬áá¯ááºáá±á¬ááºááá¯ááºá áœááºážááᯠááá¯ááºážááŒá¬ážáá¬ážááŒá®áž UI-á¡ááŸá®á¡ááá¯áááºážáá±á¬ âcoreâ á¡á áááºá¡ááá¯ááºážáá»á¬ážááᯠáááºá ááºáá±áá±á¬ á¡á áááºá¡ááá¯ááºážáá»á¬ážá០UI-á¡ááŸá®á¡ááá¯áááºážáá±á¬ âcoreâ á¡á áááºá¡ááá¯ááºážáá»á¬ážááᯠááœá²áá¯ááºááŒááºážááŒáá·áº áááºááŸá¬ážáá±á¬áááá¯áá¬á¡ááœáŸá¬ááŒáá·áº ááá¹ááá¬áá±á¬ááºááŒá±á¬ááºáž áááááŒá¯ááá·áºáááºá á¡áá¯á¶ážááŒá¯áá°á¡ááºáá¬áá±á·á áºáá¶á·ááá¯ážááŸá¯ááŸáá·áºá¡áá°á
ááá¯á·ááŒá±á¬áá·áº Eclipse Platform ááẠá¡áá»á¬ážá¡á¬ážááŒáá·áº áá¬áá¬á áá¬áž-ááœááºáááºáá±á¬ á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááᯠáááºááŸááºáá±ážáá¬ážááŒá®áž Java ááœá¶á·ááŒáá¯ážááá¯ážáááºáá±ážáááááá¬áá»á¬ážááẠEclipse ááœáẠá¡ááºá¹áá«áááºá¡ááŒáá·áºááŸááá±á¬ Java IDE ááᯠááá·áºááœááºážáá¬ážáááºá Eclipse Platform ááŸáá·áº JDT ááŸá áºáá¯áá¯á¶ážááœáẠá¡á áááºá¡ááá¯ááºážáá»á¬ážá áœá¬ áá«áááºááŒá®áž áá áºáá¯á á®ááẠUI-ááœááºáááºáá±á¬ âcoreâ ááá¯á·ááá¯áẠUI á¡ááœáŸá¬ (áá¯á¶ 1) á០áá«áááºáá«áááºá
ááááºážá 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 á¡ááŒá±áá¶á¡áá±á¬ááºá¡áŠááẠá¡ááŒá±áá¶ááŒá
áºáááºá
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 ááŸáá·áº áááºá ááºáá±á¬ á¡áááºážá¡ááŒá áºáá®ááá¯á· áááºážááŒá±á¬ááºážááá¯áá¬áá»áŸáẠááááŸáááŒá®áž á¡áááºážá¡ááŒá áºá¡áá»ááºá¡áááºááá¯á· ááá·áºááºáá áºáá¯ááá«áááºááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á· á¡áá±ážáá±ážáá±á¬áºááŒáá«áááºá á¡áááºážá¡ááŒá áºá¡áá»ááºá¡áááºá¡áá¬ááá¹áá¯áá»á¬ážááẠ"ááŒááºáá áºáááº" áá¯áá±á«áºáááºá á€áá±áá¬ááœá²á·á ááºážáá¯á¶ááẠááŸááºáá¬ááºááœáẠáá¯á¶ážááá¯ááºáá¯á¶ážáá±á«áºáá¬áááºá áááºááá¯ááºáá áºáá¯ááŸáá·áº áááºááá¯ááºááá·áº á¡áááºážá¡ááŒá áºá¡áá»ááºá¡áááºáá»á¬ážááᯠááŸá¬ááœá±áááºá ááŒááºá ááºáá áºáááºááẠááá¯áááºááá¯ááºááœáẠááááºážáááºážáá¬ážáá±á¬ áááºážááŒá±á¬ááºážá¡ááá¯ááºáž ááŒááºáááºážááœá¬ážáááºááŒá áºáááºá
ááááºážá 2. IResource ááŸáá·áº ResourceInfo
áá±á¬ááºááá¯ááºážááœáẠáá»áœááºá¯ááºááá¯á·ááŒááºááœá±á·áááá·áºá¡ááá¯ááºážá á¡áááºážá¡ááŒá áºáá±á¬áºáááºá á¡ááŒá±áá¶áá®ááá¯ááºážááᯠá¡ááŒá¬ážáá±á¬áºáááºáá»á¬ážá¡ááœáẠEclipse ááœááºáááºáž á¡áá¯á¶ážááŒá¯áá¬ážáááºá ááá¯á¡áá»áááºááœááºá á€áá®ááá¯ááºážááá°ážááŒá¬ážáá±á¬áá¯ááºááá¹ááá¡áá»áá¯á·ááá¯áá±á¬áºááŒááŒáá«á áá¯á·á
- áááºááá¯ááºááẠáááºááá¯ážááŸááá±á¬ á¡áá¬ááá¹áá¯áá áºáá¯ááŒá áºáááºá áááºááá¯ážá¡áá¬ááá¹áá¯áá»á¬ážááẠá¡áá±á¬ááºá¡áá¬ážá¡áá±á«áºá¡ááŒá±áá¶á áááºážáá°áá®áá»áŸááŸá¯áááŸááá±á¬ áááŒá±á¬ááºážáá²ááá¯ááºáá±á¬ á¡áá¬áá»á¬ážááŒá áºáááºá ááá¯á¡áá¬áá»á¬ážááᯠhashed containers ááœáẠáá±á¬á·áá áºáá¯á¡ááŒá Ạáá¯á¶ááŒá¯á¶á áœá¬á¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá ááá¯ááºááœááºááŸá¯á¡áá»á¬ážá¡ááŒá¬ážááẠáá°áá®áá±á¬á¡áááºážá¡ááŒá áºááᯠááá¯ážáá¬ážááá¯ááºáááºá áááºážááá¯á·ááᯠááŸáá¯ááºážááŸááºááẠáá®áá»áŸááŒááºáž(Object) áááºážáááºážááᯠá¡áá¯á¶ážááŒá¯ááẠááá¯á¡ááºáááºá
- Handle ááẠá¡áááºážá¡ááŒá áºáá áºáá¯á á¡ááŒá¯á¡áá°ááᯠáááºááŸááºáááºá ááá¯á·áá±á¬áº á¡áááºážá¡ááŒá áºá á¡ááŒá±á¡áá±ááŸáá·áºáááºáááºááá·áº á¡áá»ááºá¡ááẠááá«áááºáá« (áááºážááááºážáááºážáá¬ážááá·áº áá áºáá¯áááºážáá±á¬áá±áá¬ááŸá¬ "áá±á¬á·" ááŒá áºáááºá á¡áááºážá¡ááŒá áºááá¯á· áááºážááŒá±á¬ááºáž)á
- Handle ááẠááááºááŸááá±á¬ áááºážááŒá Ạ(ááááºáá®ážááá±ážáá±á¬ á¡áááºážá¡ááŒá Ạááá¯á·ááá¯áẠáá»ááºááŒá®ážáá¬áž á¡áááºážá¡ááŒá áº) ááᯠáááºááœáŸááºážááá¯ááºáááºá á¡áááºážá¡ááŒá áºáá áºáá¯ááááºááŸáááŸá¯ááᯠIResource.exists() áááºážáááºážááᯠá¡áá¯á¶ážááŒá¯á á á áºáá±ážááá¯ááºáááºá
- á¡áá»áá¯á·áá±á¬ áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááẠáááºááá¯ááºááœáẠááááºážáááºážáá¬ážáá±á¬ á¡áá»ááºá¡áááºáá±á«áºááœááºáᬠá¡ááŒá±áá¶á á¡áá±á¬ááºá¡áááºáá±á¬áºááá¯ááºááẠ(ááá¯ááºááœááº-áááºááẠáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážáᯠáá±á«áºáááº)á á¥ááá¬áá»á¬ážááŸá¬ IRResource.getParent(), getFullPath(), etc. ááá¯ááá¯á·áá±á¬áá¯ááºáááºážá¡á±á¬ááºááŒááºáááºá¡ááœáẠá¡áááºážá¡ááŒá áºááẠááŸááááºáááá¯á¡ááºáá«á á¡á±á¬ááºááŒááºááẠá¡áááºážá¡ááŒá áºáá áºáá¯ááŸáááẠááá¯á¡ááºáá±á¬ áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááẠá¡áááºážá¡ááŒá áºáááŸááá«á CoreException ááᯠáá áºáá»áá«á
Eclipse ááẠá¡áá¯ááºáá±áᬠá¡áááºážá¡ááŒá áºááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááᯠá¡áááá±ážáááºá¡ááœáẠáááá±á¬ááºáá±á¬ ááá¹ááá¬ážáá áºáᯠáá¶á·ááá¯ážáá±ážááẠ(áá¯á¶ 3)á á¡áááºážá¡ááŒá áºáá»á¬ážááẠEclipse IDE á¡ááœááºáž áá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááŒá±á¬áá·áº ááá¯á·ááá¯áẠááá¯ááºá áá áºááŸáá·áº áááºáá°ááŒá¯ááŒááºážá ááááºá¡ááŒá ẠááŒá±á¬ááºážáá²ááá¯ááºáááºá ááŒá áºáááºááŸá áºáá¯á áá¯á¶ážááœááºá á¡ááŒá±á¬ááºážááŒá¬ážáá»ááºáá»á¬ážááᯠá á¬áááºážááœááºážáá¬ážááá·áº áá¯á¶ážá áœá²áá°áá»á¬ážá¡á¬áž "á¡áááºážá¡ááŒá áºááŒá áºááá»áœááºážáá±á«áºáá±á" áá¯á¶á á¶ááŒáá·áº ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážá¡ááŒá±á¬ááºáž á¡áá±ážá áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠáá±ážáá±á¬ááºáá¬ážáá«áááºá ááŒá áºááá»áœááºážáá±á«áºáá±áááẠá¡áá¯ááºáá±áᬠá¡áááºážá¡ááŒá Ạ(áá áºáááºááœá²) áá áºáá¯á ááŒááºáááºááŸá áºáá¯ááŒá¬ážááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠáá±á¬áºááŒáá¬ážááŒá®áž áááºážááẠá¡áááºážá¡ááŒá áºáá áºáá¯ááá¯á· ááŒá±á¬ááºážáá²ááŸá¯áá áºáá¯ááᯠáá±á¬áºááŒááá·áº á¡ááœááºáá áºáá¯á á®ááœáẠáá áºáá¯áá»ááºážá á®ááœáẠááá±ážá¡áááºážá¡ááŒá áºááá¯ááºáᬠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠáá±á¬áºááŒááá·áº áá±á¬ááºá¡ááá·áºááœáẠdeltas á á¬áááºážáá áºáá¯áá«ááŸááááºá
ááááºážá 3. IResourceChangeEvent ááŸáá·áº IResourceDelta
á¡áááºážá¡ááŒá áºááŒá áºááá»áœááºážáá±á«áºá¡ááŒá±áá¶ááá·áº á¡áááá±ážáá»ááºááá¹ááá¬ážááœáẠá¡á±á¬ááºáá«ááá¹ááá¬áá»á¬áž ááŸááááºá
- ááŒá áºááá»áœááºážáá±á«áºáá±áááẠrecursive ááœá²á·á ááºážááŸá¯áááá¬áááᯠá¡áá¯á¶ážááŒá¯á áááºáá±á¬ááºáá¬ážáá±á¬ááŒá±á¬áá·áº áá áºáá¯áááºážáá±á¬ ááŒá±á¬ááºážáá²ááŸá¯ááŸáá·áº á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážá áœá¬ááᯠáá°áá®áá±á¬ááœá²á·á ááºážáá¯á¶ááᯠá¡áá¯á¶ážááŒá¯á áá±á¬áºááŒáá¬ážáá«áááºá á á¬áááºážááœááºážáá°áá±á¬ááºáááºáá»á¬ážááẠááŒá áºááá»áœááºážáá±á«áºáá áºáááºááŸáááá·áº á¡áááºážá¡ááŒá áºááŒá±á¬ááºážáá²ááŸá¯ááááá±ážáá»ááºáá»á¬ážááᯠá á®áá¶áá±á¬ááºááœááºááá¯ááºáá«áááºá
- ááŒá áºááá»áœááºážáá±á«áºáá±áááœáẠáááºážáááœá±á·áá»á¬ážááŸá¯ ááŸáá·áº/ááá¯á·ááá¯áẠáááºážááŸáá·áºáááºá ááºáá±áá±á¬ âá¡ááŸááºá¡áá¬ážáá»á¬ážâ ááá¯ááºáá¬ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážá¡áá«á¡ááẠá¡áááºážá¡ááŒá áºááá¯ááºáá¬ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááŸáá·áºáááºáááºááá·áº á¡áá»ááºá¡áááºá¡ááŒáá·áºá¡á á¯á¶áá«ááŸáááẠ(á¥ááá¬á á á¯á ááºážááŸá¯á¡ááŸá¬ážáá»á¬ážááᯠá¡ááŸááºá¡áá¬ážáá»á¬ážá¡ááŒá Ạááá¯ááºá á¬ážááŒá¯áááº)á
- á¡áááºážá¡ááŒá áºááá¯ážáá¬ážáá»ááºáá»á¬ážááᯠáááºááá¯ááºááŸáá áºááá·áº ááŒá¯áá¯ááºáá¬ážáá±á¬ááŒá±á¬áá·áºá ááŒá áºááá»áœááºážáá±á«áºáá±áááẠá¡áá±ážá០á¡áááºážá¡ááŒá áºáá áºáá¯ááᯠááá¬áá¡ááá¯ááºáž ááá¯ážáá¬ážááá¯ááºáááºá
áááŒá¬áá® áá»áœááºá¯ááºááá¯á·ááŒááºááá±á¬á·ááá·áºá¡ááá¯ááºážá á¡áááºážá¡ááŒá áºáá±á¬áºáááºááŒá±á¬ááºážáá²ááŸá¯ á¡áááá±ážáá»ááºááá¹ááá¬ážá áá®ááá¯ááºážáá¡áááá¡á áááºá¡ááá¯ááºážáá»á¬ážááẠá¡ááŒá¬ážáááºááá¯ááºá¡ááŒá±áá¶áá±á¬áºáááºáá»á¬ážá¡ááœááºáááºáž áááºááá¯ááºáá«áááºá
JDT Core
Eclipse workspace á¡áááºážá¡ááŒá áºáá±á¬áºáááºááẠá¡ááŒá±áá¶áá¬áá¬á áá¬áž-áá¬áá¬áá²á·áá¯á¶á á¶ááŒá áºáááºá JDT Core á¡á áááºá¡ááá¯ááºáž (ááááºá¡áẠorg.eclipse.jdt.core) ááẠJava ááŸá¯áá±á¬áá·áºá០á¡áá¯ááºááœááºááœá²á·á ááºážáá¯á¶á¡á¬áž áááºážááŒá±á¬ááºážááŸá¬ááœá±ááŒááºážááŸáá·áº ááœá²ááŒááºážá áááºááŒá¬áááºá¡ááœáẠAPI áá áºáᯠáá¶á·ááá¯ážáá±ážááá·áº âJava modelâ (Java áá±á¬áºáááº) ဠAPI ááᯠááá¯ááºááœá²áá»á¬ážááŸáá·áº ááá¯ááºáá»á¬ážá áááºááŸááºáá»ááºáá»á¬ážááœáẠáááºááŸááºáá¬ážááá·áº á¡áááºážáá¶á¡áááºážá¡ááŒá áºáá±á¬áºááẠAPI ááŸáá·áº ááá·áºáá»ááºááá·áºá¡áá±ááŒáá·áº Java ááŒááºá ááºáá»á¬ážá á ááºážáááºážáá»ááºáá»á¬ážááŒáá·áº áááºááŸááºáá¬ážáááºá Java ááŒááºá ááºáá áºáááºá á¡ááá á¡ááºáá¬áá±á·á áºáá»á¬ážááᯠáá¯á¶ááœáẠááŒáá¬ážáááºá áá
ááááºážá 4. Java Model Elements áá»á¬áž
Java áá±á¬áºáááºááẠá¡áááºážá¡ááŒá áºáá¯á¶á ᶠ(áá¯á¶ 5) áá²á·ááá¯á· áááºááá¯ááº/ááá¯ááºááá¹áᬠidiom ááᯠá¡áá¯á¶ážááŒá¯áááºá IJavaElement ááẠáááºááá¯ááºááŒá áºááŒá®áž JavaElementInfo ááẠááá¯ááºááá¹áá¬áá¡áááºážááá¹áááŒá áºáááºá IJavaElement á¡ááºáá¬áá±á·á áºááẠJava ááŒááºá ááºá¡á¬ážáá¯á¶ážá¡ááœáẠá¡áá¯á¶ážáá»á¬ážáá±á¬ áááá¯ááá¯áá±á¬ááᯠáááºááŸááºáááºá áááºážááááºážáááºážá¡áá»áá¯á·ááŸá¬ ááá¯ááºááœááº-áááºáááºááŒá áºáááº- getElementName(), getParent(), etc. JavaElementInfo á¡áá¬ááá¹áá¯ááẠáááºááá¯ááºáá¬ááŒááºá ááºá á¡ááŒá±á¡áá±ááᯠááááºážáááºážáááº- áááºážáááœá²á·á ááºážáá¯á¶ááŸáá·áº á¡áááºá¡áá»ááºážáá»á¬ážááᯠááááºážáááºážáá¬ážáááºá
ááááºážá 5. IJavaElement ááŸáá·áº JavaElementInfo
Java áá±á¬áºáááºááẠá¡áááºážá¡ááŒá Ạáá±á¬áºáááºááŸáá·áº ááŸáá¯ááºážááŸááºáá«á á¡ááŒá±áᶠáááºááá¯ááº/ááá¯ááºááẠáá®ááá¯ááºážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá¬ááœáẠááœá¬ááŒá¬ážáá»áẠá¡áá»áá¯á·ááŸááááºá á¡áááºááœááºáá±á¬áºááŒáá²á·ááá·áºá¡ááá¯ááºážá á¡áááºážá¡ááŒá áºáá¯á¶á á¶ááœááºá node áá»á¬ážááẠá¡áááºážá¡ááŒá áºá¡áá»ááºá¡áááºá¡áá¬ááá¹áá¯áá»á¬ážááŒá áºááŒáá±á¬ ááŒááºá ááºáá áºáááºááẠááŸááºáá¬ááºááœáẠáá¯á¶ážááá«áááºáá«áááºá ááá¯á·áá±á¬áº Java áá±á¬áºáááºááẠ.java ááŸáá·áº .class ááá¯ááºáá»á¬ážá á¡ááœááºážááá¯ááºážááœá²á·á ááºážáá¯á¶ááᯠááá¯ááºá á¬ážááŒá¯áá±á¬ááŒá±á¬áá·áºá á¡áá»áá¯ážá¡á á¬ážáá»á¬ážá á¡ááœááºáá»á¬ážááŸáá·áº áááºážáááºážáá»á¬ážááẠáá»á¬ážá áœá¬ááŒá®ážáá¬ážáá±á¬ á¡á áááºá¡ááá¯ááºážáá»á¬áž ááŸáááá¯ááºáá«áááºá
ááŸááºáá¬ááºá¡ááœááºážááŸá ááŒááºá ááºáá áºáááºáá áºáá¯áá¯á¶ážááᯠáá¯á¶ážáá¡áá±á¬ááºá¡áááºááá±á¬áºá á±áááºá Java áá±á¬áºáááºá¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááẠáá±á¬á·ááẠIJavaElement ááá¯ááá¯ááºááœááºááá·áº ááá·áºáááºá¡ááœááºá¡á á¬áž LRU áááºááŸáºááᯠá¡áá¯á¶ážááŒá¯áá¬ážáááºá ááŒááºá ááºáá áºáááºááᯠáááºážááœáŸááºáá¬ážáá±á¬ááŒá±á¬áá·áº ááŒááºá ááºá¡áá»ááºá¡áááºá¡áá¬ááá¹áá¯áá»á¬ážááᯠááá¯á¡ááºáá»ááºá¡á áááºáá®ážáá¬ážáááºá á€ááá á¹á ááœááºá á¡áá¯á¶ážá¡áááºážáá¯á¶ážá¡áá¬áá»á¬ážááᯠáááºááŸáºá០ááŸááºáá¯ááºááŒá®áž áá±á¬áºáááºá áááºááá¯áá®áá¯á¶ážá áœá²ááŸá¯ááẠáááºááŸááºáá¬ážáá±á¬ áááºááŸáºá¡ááœááºá¡á á¬ážá¡áá ááá·áºáááºáá¬ážáááºá á€áááºááŸá¬ áá¯á¶ážá áœá²áá°áá¯ááºá០á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯á¡áá±ážá áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠáá¯á¶ážááá¯á¶ážááœááºáá¬ážááá·áº ááá¯ááºááœááºá¡ááŒá±áá¶áá®ááá¯ááºážá áá±á¬ááºáááºá¡á¬ážáá¬áá»ááºáá áºáá¯ááŒá áºáááºá
Java ááŒááºá ááºáá»á¬ážá¡á¬áž á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠá¡áááá±ážááá·áº ááá¹ááá¬ážááẠáá±áá°áá»á¡á¬ážááŒáá·áº á¡áááºááœáẠááœá±ážááœá±ážáá²á·ááá·áº workspace á¡áááºážá¡ááŒá áºáá»á¬ážááá¯ááºáᬠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááŒá±áá¬áá¶ááá·áº ááá¹ááá¬ážááŸáá·áº áááºáá°áááºá Java áá±á¬áºáááºááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠá á±á¬áá·áºááŒáá·áºááá¯áá±á¬ client ááẠIJavaElementDelta (áá¯á¶ 6) áá«ááŸááá±á¬ ElementChangedEvent á¡áá¬ááá¹áá¯á¡ááŒá Ạááá¯ááºá á¬ážááŒá¯áá¬ážááá·áº á¡ááŒá±á¬ááºážááŒá¬ážáá»ááºáá»á¬ážááᯠá á¬áááºážááœááºážáá«áááºá
ááááºážá 6. ElementChangedEvent ááŸáá·áº IJavaElementDelta
Java áá±á¬áºáááºááœáẠáááºážáááºážáá±á¬ááºáá¬áá»á¬áž ááá¯á·ááá¯áẠá¡áááºááŒá±ááŸááºážááŒááºážááá¯ááºáᬠá¡áá»ááºá¡áááºááá«áááºáá±á¬ááŒá±á¬áá·áº Java ááœáẠáá±ážáá¬ážáá¬ážáá±á¬ áá¯ááºá¡áá±ážá
áááºááœá²ááŒááºážá
áááºááŒá¬ááŸá¯á¡ááœáẠJDT Core ááẠáá±á¬ááºááẠ(áááºááá¯ááºá¡ááŒá±áá¶ááá¯ááºáá±á¬) áá±á¬áºáááºááᯠáá¶á·ááá¯ážáá±ážáááº-
á¡áá¬ážá¡ááá¯áá áºáá»á¬ážááẠááŸááºáá¬ááºááá¬ááá»á¬ážá áœá¬ááᯠá á¬ážáá¯á¶ážááá¯ááºáá±á¬ááŒá±á¬áá·áº 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 á¡á áááºá¡ááá¯ááºážáá»á¬ážááᯠááŒááá¬ážáááºá
ááááºážá 7. Eclipse ááẠ1C:Enterprise Development Tools á¡ááœáẠplatform áá
áºáá¯á¡áá±ááŒáá·áº
áá±ááŒááºá ááºá¹ááŒá¬ á¡ááŒá±áá¶á¡áá±á¬ááºá¡áŠáá»á¬áž áá±á¬ááºáá¶á·áá±ážáááºá ááááºá¡ááá¯ááºážááœáẠá€á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶á ááŸá¯áá±á¬áá·áºá¡áá»áá¯á·ááᯠáá»áœááºá¯ááºááá¯á·ááŒáá·áºááŸá¯áá²á·áááºá
á¡ááŸááºáááẠáá±áá°áá»áá¯á¶ážááá·áº áááááá¬áá»á¬ážáá²á·ááá¯á·ááẠEMF ááẠáá»ááºááŒáá·áºáá±á¬ áá±á¬áºáááºáẠááŒá¿áá¬áá»á¬ážááᯠááŒá±ááŸááºážáááºá¡ááœáẠááá·áºáá»á±á¬áºáá±á¬áºáááºáž á¡áá»áá¯á·áá±á¬ áá±á¬áºáááºáá»á¬áž (á¥ááá¬á á¡áááºááœáẠááœá±ážááœá±ážáá¬ážáá±á¬ áááºááá¯ááºá¡ááŒá±áᶠáá±á¬áºáááºáá»á¬áž) ááẠááá¯ááᯠá¡áá°ážááŒá¯ áá±á¬áºáááºáẠáááááá¬áá»á¬áž ááá¯á¡ááºáá«áááºá EMF á¡ááŒá±á¬ááºáž ááŒá±á¬ááŒááºážááẠá¡áá°ážáááŒáá·áº áá±á¬ááºážáá«ážáá
áºáá¯á ááá·áºáááºááá·áºáááºáá»ááºáá»á¬ážá¡ááœááºážá á€á¡áá¬ááẠáá®ážááŒá¬ážá
á¬á¡á¯ááºá á¡ááŒá±á¬ááºážá¡áá¬ááŒá
áºááŒá®áž á¡áá°á¡áá«ážááŒá
áºáá±á¬ááŒá±á¬áá·áº ááŒá
áºáááºá EMF ááᯠáá±á¬ááºáá¶ááŒá¯áá¬ážáá±á¬ á¡áááºá¡ááœá±ážááŒáá·áº á
áá
áºááẠááááºáááºážá¡ááá·áº ááá±á¬áá»ááºááœáẠáá«áááºáá±á¬ áá±á¬áºáááºááŒá¯áá¯ááºááŒááºážá¡ááœáẠáááºááœááºáá±á¬ ááá±á¬áá»ááºáá»á¬áž á¡á¬ážáá¯á¶ážááᯠááœá±ážááœá¬ážááœáá·áºááŒá¯ááŒá±á¬ááºáž áááááŒá¯ááŒáá«á
áá¯á·á
1C:Enterprise Development Tools ááẠEMF ááá¯ááºááá¯ááºááŸáá·áº á¡ááŒá¬ážáá±á¬ Eclipse Modeling ááá±á¬áá»ááºáá»á¬ážá áœá¬ááᯠáááºááŒáœá áœá¬ á¡áá¯á¶ážááŒá¯áá«áááºá á¡áá°ážáááŒáá·áºá Xtext ááẠ1C:áá¯ááºáááºážáá¯á¶ážáá¬áá¬á áá¬ážáá»á¬ážá¡ááœáẠáááºáááºáá¬ážáá±á¬ áááá¯ááááºážáááºážáá¬áá¬á áá¬ážááŸáá·áº query áá¬áá¬á áá¬ážáá²á·ááá¯á· ááœá¶á·ááŒáá¯ážááá¯ážáááºáá±ážáááááá¬áá»á¬ážá á¡ááŒá±áá¶á¡á¯ááºááŒá áºáá»á¬ážáá²á០áá áºáá¯ááŒá áºáááºá á€ááœá¶á·ááŒáá¯ážááá¯ážáááºáá±ážáááááá¬áá»á¬ážá¡ááœáẠáá±á¬ááºáááºá¡ááŒá±áá¶á¡áá»ááºááŸá¬ Eclipse Handly ááá±á¬áá»ááºááŒá áºááŒá®ážá ááá¯ááá¯á¡áá±ážá áááºááœá±ážááœá±ážááá·áº (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 ááŸá¬ ááŒááºááœá¬ážáááºá
áá áºáááºážá¡á¬ážááŒáá·áº Handly ááá±á¬áá»ááºááẠEMF áá²á·ááá¯á· á¡áá®ážá ááºáá¯á¶áž ááŒá¿áá¬áá»á¬ážááᯠááŒá±ááŸááºážááẠáá®ááá¯ááºážáá¯ááºáá¬ážáá±á¬áºáááºáž ááá¯ááºááœááºá¡ááŒá±áᶠáá±á¬áºáááºáá»á¬ážááŸáá·áº á¡áááá¡á¬ážááŒáá·áº áá¬áá¬á áá¬ážáá»á¬áž (ááá¯ááá¯áááºááŸá¬ á¡áá»áá¯á·áá±á¬ áááá¯ááááºážáááºážáá¬áá¬á áá¬ážá ááœá²á·á ááºážáá¯á¶á á¡á áááºá¡ááá¯ááºážáá»á¬ážááᯠááá¯ááºá á¬ážááŒá¯áááº)á Handly ááᯠáá®ááá¯ááºážááœá²áá¬ááœáẠáááºááŸááºáá¬ážáá±á¬ á¡ááááááºážááá¯ááºáá»á¬ážááᯠá¡á±á¬ááºááœááºáá±á¬áºááŒáá¬ážáá«áááºá
- áá¬áá¬áááºáááºáááºá á¡áááá¡ááŸá áºáá¬ááá»á¬ážááᯠáá±á¬áºáá¯ááºááŒááºážá
- ááŒáá¯ážáááºážá¡á¬ážáá¯ááºááŸá¯ááᯠáá»áŸá±á¬á·áá»ááŒááºážááŸáá·áº áá¯ááºááᯠááŒááºáááºá¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº ááá¯ááºááœááºá¡ááŒá±áá¶áá¬áá¬á áá¬ážáá¯á¶á á¶áá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážá á¡áááºá¡ááœá±ážááᯠááŒáŸáá·áºáááºááŒááºážá
- ááááºáá±á¬áºáááºáá»á¬ážááá¯á· á á¯á ááºážáá¬ážáá±á¬ áááºáá¬á¡ááá·áº API ááᯠáá¶á·ááá¯ážáá±ážááŒááºážááŒáá·áº áá¬áá¬á áá¬ážááá¯ááºááœááºááŸá¯á¡ááŒá±áᶠáá±á¬áºáááºáá»á¬ážááŸáá·áº áá¯ááºáá±á¬ááºááá¯ááºáá±á¬ áá¯á¶ IDE á¡á áááºá¡ááá¯ááºážáá»á¬ážááᯠáááºáá®ážááá¯ááºá á±áá«áááºá
- Flexibility ááŸáá·áº scalability á
- Xtext ááŸáá·áº áá±á«ááºážá ááºážááŒááºáž (áá®ážááŒá¬áž á¡ááœáŸá¬áá áºáá¯ááœááº)á
áá¯á¶á¡áá°á¡ááá»á¬ážááŸáá·áº áááá¯ááá¯áá±á¬áá»á¬ážááᯠáá®ážáá±á¬ááºážááá¯ážááŒáááºá áááºááŸáá¡áá¯á¶ážááŒá¯áá±ááá·áº áá¬áá¬á áá¬ážááá¯ááºááœááºááŸá¯áá¯á¶á á¶áá»á¬ážááᯠááœá²ááŒááºážá áááºááŒá¬áá¬ážáááºá Handly á០áá¶á·ááá¯ážáá±ážáá±á¬ áááºáá¡ááºáá¬áá±á·á áºáá»á¬ážááŸáá·áº á¡ááŒá±áá¶á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯áá»á¬ážááᯠáá¯á¶ááœáẠááŒáá¬ážáááºá áá
ááááºážá 8. áá¯á¶á¡ááºáá¬áá±á·á
áºáá»á¬ážááŸáá·áº Handly ááŒááºá
ááºáá»á¬ážá á¡ááŒá±áá¶á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯áá»á¬áž
IElement á¡ááºáá¬áá±á·á áºááẠááŒááºá ááºáá áºáá¯á áááºááá¯ááºááᯠááá¯ááºá á¬ážááŒá¯ááŒá®áž Handly-based áá±á¬áºáááºáá»á¬ážá¡á¬ážáá¯á¶ážá ááŒááºá ááºáá»á¬ážá¡ááœáẠá¡áá¯á¶ážáá»á¬ážáááºá Abstract class Element ááẠáá±áá°áá»á¡á¬ážááŒáá·áº áááºááá¯ááº/ááá¯ááºááẠááá¹ááá¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á«áºááẠ(áá¯á¶á á)á
ááááºážá 9. IElement ááŸáá·áº áá±áá°áá» áááºááá¯ááº/ááá¯ááºááẠá¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯
ááá¯á·á¡ááŒááºá Handly ááẠáá±á¬áºáááºááŒááºá ááºáá»á¬ážááá¯ááºáᬠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážá¡ááŒá±á¬ááºáž á¡áááá±ážáááºá¡ááœáẠáá±áá°áá»á¡á¬ážááŒáá·áº ááá¹ááá¬ážáá áºáá¯ááᯠáá¶á·ááá¯ážáá±ážááẠ(áá¯á¶á áá)á áááºááœá±á·ááŒááºáááá·áºá¡ááá¯ááºážá áááºážááẠá¡áááºážá¡ááŒá áºáá±á¬áºáááºááŸáá·áº Java áá±á¬áºáááºááœáẠáá¯ááºáá±á¬ááºáá²á·ááá·áº á¡ááŒá±á¬ááºážááŒá¬ážáá»ááºááá¹ááá¬ážáá»á¬ážááŸáá·áº áá»ááºááŒáá·áºá áœá¬áááºáá°ááŒá®áž ááŒááºá ááºááŒá±á¬ááºážáá²ááŸá¯á¡áá»ááºá¡áááºááᯠáá áºá á¯áá áºá ááºážáááºážáá±á¬áºááŒááẠIElementDelta ááᯠá¡áá¯á¶ážááŒá¯áááºá
ááááºážá 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 áá±á¬áºáááºáá
áºáá»áŸá±á¬áẠáá±á¬ááºááŒááºááá¯ááºáááºááŸá¯ááᯠááááºážááááºážáá¬ážáááºááŒá
áºáááºá áá®ááŒá¿áá¬ááᯠááŒá±ááŸááºážááá¯ááºáá²á·áá«áááºá
Flexibility ááŸá¬áááºáž áááŒá¬ážá¡áá»ááºááœá±ááŸááá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá Handly ááẠáá±á¬áºáááºáááœá²á·á
ááºážáá¯á¶á¡áá±á«áº ááá·áºáááºáá»ááºáááŸáááá±á¬ááºááŒá
áºááŒá®áž áá±áá°áá»áááºááœááºáá»ááºááŸáá·áº ááá¯ááááºážá¡ááá¯áẠáá¬áá¬á
áá¬ážáá»á¬ážááᯠá
á¶ááá°áá¬áá°ááẠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá á¡áááºážá¡ááŒá
áºááá¯ááºáááœá²á·á
ááºážáá¯á¶ááá¯áááºáá±á¬ááºáá±á¬á¡áá«á Handly ááẠAST ááá¯ááºá
á¬ážááŒá¯ááŸá¯áá¯á¶á
á¶ááᯠá¡ááá¡áá»ááááºááŸááºáá²á áá°á¡á AST ááá¯ááºááá¯ááºáá«áááºááŸá¯áááºáááá¯á¡ááºáá±á¬ááŒá±á¬áá·áº ááœá²ááŒááºážá
áááºááŒá¬ááŸá¯ááá¹ááá¬ážá¡á¬ážáá¯á¶ážáá®ážáá«ážááŸáá·áº ááá¯ááºáááºááŸá¯ááŸáá
á±ááẠáá±áá»á¬á
á±áááºá áá±á¬ááºáá¯á¶ážá¡áá±ááŒáá·áº Handly ááẠEclipse workspace ááŸáá·áº á¡ááŒáá·áºá¡ááá±á«ááºážá
ááºááŸá¯ááᯠáá¶á·ááá¯ážáá±ážáááºá ááá¯á·áá±á¬áº áááºážááŸáá·áºáá±á«ááºážá
ááºááŸá¯ááŒá±á¬áá·áº ááá¯ááºá
áá
áºáá»á¬ážááŸáá·áºáááºáž ááá¯ááºááá¯ááºá¡áá¯ááºáá¯ááºááá¯ááºáááºá
áááºááŸááá¬ážááŸááºáž
á¡áááºááœááºáá±á¬áºááŒáá²á·ááá·áºá¡ááá¯ááºážá á€áá¯ááºáá¯ááºáá»á¬ážáá²ááŸáá
áºáá¯ááẠ1C:Enterprise Development Tools ááŒá
áºááŒá®ážá Handly ááá¯á¡á
ááááºážáá¡áá¯á¶ážááŒá¯ááá·áº 1C:Enterprise languages ââáá¡ááá·áºááŒáá·áºááœá²á·á
ááºážáá¯á¶ááœáẠáá«áááºáá±á¬áááá¯ááááºážáááºážáá¬áá¬á
áá¬ážááŸáá·áº query language á¡ááŒá
áºá¡áá¯á¶ážááŒá¯áá±á¬ . áá±á¬ááºáá
áºáá¯á áá°áááááºážáá²á· áá¯ááºáá¯ááºáá
áºáá¯áá«á áá®
API áááºááŒáááºááŸá¯ááᯠá¡á¬ááá¶áá»ááºááŒáá·áº áá¬ážááŸááºáž 1.0 ááŸáá·áº ááá±á¬áá»ááºá០áá±á«ááºááœá¬ážááŸá¯á¡ááŒá±á¡áá±á០ááœááºááœá¬ááŒá®ážáá±á¬áẠHandly ááẠáááºáá¶áá°á¡áá
áºáá»á¬ážááŸááá¬áááºáᯠáá»áœááºá¯ááºááá¯á· áá»áŸá±á¬áºááá·áºáá«áááºá á€á¡áá±á¬á¡ááœááºážá ááá±á¬áá»ááºááẠAPI ááᯠáááºáááºá
ááºážáááºááŒá®áž ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬áẠáá¯ááºáá±á¬ááºáᬠáá
áºááŸá
áºáá»áŸáẠ"á¡ááá" áá¯ááºáá±ááŸá¯ ááŸá
áºáá¯ááᯠááœááºá (áá
áºááŒáá¯ááºáááºáá±ááŒááºááŒááºážááŒáá·áºáá»áááá·áºáááºá
áœá²á¡ááá¯ááºáž) ááŸáá·áº áá®áááºáá¬áááœáẠá
áááºáᬠááœá±ážá
á¬ážáá°áá»á¬áž á¡á¬ážááá¯ážááá¯ááºááá·áº ááŒáá¯áááºááá·áºááŸááºážááá¯ááºáá±á¬ á¡áá»áááºááá¬ážááᯠáá±ážáá±á¬ááºáá«áááºá ááá±á¬áá»ááºá "áá»áœááºááœááºážááŸá¯ááŸá¯ááºáž" ááẠáá
áºááááºáááºážáááá·áºáá»áá±á¬á¡ááá·áºááœáẠááŸááá±ááŒá±á¬ááºážááŸáá·áº Handly ááẠááááá¬ážááŸááºážáá»á¬ážááŸá
á á¡á
á±á¬ááá¯ááºážá¡áá¯á¶ážááŒá¯áá°áá»á¬ážá áá¯ááºáá¯ááºáá»á¬ážááœáẠáá¯á¶ááŒááºá
áááºáá»á
áœá¬ á¡áá¯ááºáá¯ááºáá±ááŒá±á¬ááºážáááºáž ááá·áºááœááºážááá¯ááºáááºá Eclipse Handly ááᯠáááºáá¶á
á°ážá
ááºážáááºá áááºáá¯á¶ážááá¯ááºáááºá
source: www.habr.com