ãããã
ãã®èšäºã¯æ¬è³ªçã«æŠèŠã§ãããçµ±åéçºããŒã«ãæ§ç¯ããããã®ãã©ãããã©ãŒã ãšããŠã® Eclipse ã¢ãŒããã¯ãã£ã®åºæ¬ã®ããã€ããæ€èšãããã¯ãããžãŒã®åºç€ã圢æãã Eclipse ã³ã³ããŒãã³ãã®æåã®ã¢ã€ãã¢ã瀺ããŸãã ãæ°ããã³ã³ãã£ã®ã¥ã¬ãŒã¿ãŒãã®ãã©ãããã©ãŒã 1C: Enterpriseã
Eclipse ã¢ãŒããã¯ãã£ã®æŠèŠ
ãŸããäŸã䜿çšã㊠Eclipse ã¢ãŒããã¯ãã£ã®äžè¬çãªåŽé¢ãããã€ãèŠãŠã¿ãŸãããã
ãŸã第äžã«ãEclipse ã¯ãç¹å®ã®ããã°ã©ãã³ã°èšèªããµããŒãããããã«èšèšãããæ©èœããèšèªã«äŸåããªãæ©èœãåé¢ãããUI ã«äŸåããªããã³ã¢ãã³ã³ããŒãã³ããé¢é£ããã³ã³ããŒãã³ãããåé¢ããããããªãæ確ãªã¢ãŒããã¯ãã£ã®éå±€æ§é ã«ãã£ãŠç¹åŸŽã¥ããããããšã«æ³šæããå¿ èŠããããŸãããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ããµããŒãããŸãã
ãããã£ãŠãEclipse ãã©ãããã©ãŒã ã¯èšèªã«äŸåããªãå ±éã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãå®çŸ©ããJava éçºããŒã«ã¯ãã«æ©èœã® Java IDE ã Eclipse ã«è¿œå ããŸãã Eclipse ãã©ãããã©ãŒã ãš JDT ã¯ã©ã¡ããããã€ãã®ã³ã³ããŒãã³ãã§æ§æãããŠãããããããã UI ã«äŸåããªããã³ã¢ããŸã㯠UI ã¬ã€ã€ãŒã«å±ããŸã (å³ 1)ã
ç±³ã 1. Eclipseãã©ãããã©ãŒã ãšJDT
Eclipse ãã©ãããã©ãŒã ã®äž»ãªã³ã³ããŒãã³ãããªã¹ãããŠã¿ãŸãããã
- ã©ã³ã¿ã€ã â ãã©ã°ã€ã³ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãå®çŸ©ããŸãã Eclipse ã¯ã¢ãžã¥ãŒã«åŒã¢ãŒããã¯ãã£ãŒãç¹åŸŽãšããŠããŸãã åºæ¬çã«ãEclipse ã¯ãæ¡åŒµãã€ã³ãããšãæ¡åŒµæ©èœãã®ã³ã¬ã¯ã·ã§ã³ã§ãã
- â XNUMX ã€ä»¥äžã®ãããžã§ã¯ãã管çããŸãã ãããžã§ã¯ãã¯ããã¡ã€ã« ã·ã¹ãã ã«çŽæ¥ãããããããã©ã«ããŒãšãã¡ã€ã«ã§æ§æãããŸãã
- æšæºãŠã£ãžã§ãã ããŒã«ããã (SWT) - ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ãšçµ±åãããåºæ¬çãªãŠãŒã¶ãŒ ã€ã³ã¿ãŒãã§ã€ã¹èŠçŽ ãæäŸããŸãã
- ãžã§ã€ãã§ã€ã¹ â SWT äžã«æ§ç¯ãããå€æ°ã® UI ãã¬ãŒã ã¯ãŒã¯ãæäŸããŸãã
- ã¯ãŒã¯ãã³ã â Eclipse UI ãã©ãã€ã (ãšãã£ã¿ãŒããã¥ãŒãããŒã¹ãã¯ãã£ã) ãå®çŸ©ããŸãã
Eclipse ãã©ãããã©ãŒã ã¯ããããã°ãæ¯èŒãæ€çŽ¢ãããŒã ãªã©ãçµ±åéçºããŒã«ãæ§ç¯ããããã®ä»ã®å€ãã®äŸ¿å©ãªã³ã³ããŒãã³ããæäŸããŠãããšèšããªããã°ãªããŸããã ãœãŒã¹ ã³ãŒãã®ãã¹ããŒã ãšãã£ã¿ãŒããæ§ç¯ããããã®åºç€ã§ãã JFace Text ã«ã€ããŠã¯ãç¹ã«èšåããå¿ èŠããããŸãã æ®å¿µãªããããã®èšäºã®ç¯å²å ã§ã¯ããããã®ã³ã³ããŒãã³ãã UI ã¬ã€ã€ãŒ ã³ã³ããŒãã³ãããã£ãšèª¿ã¹ãããšããã§ããŸããããã®ããããã®ã»ã¯ã·ã§ã³ã®æ®ãã®éšåã§ã¯ãUI ã¬ã€ã€ãŒ ã³ã³ããŒãã³ãã®äž»èŠãªãã³ã¢ãã³ã³ããŒãã³ãã®æŠèŠã«éå®ããŠèª¬æããŸãã Eclipse ãã©ãããã©ãŒã ãš JDTã
ã³ã¢ã©ã³ã¿ã€ã
Eclipse ãã©ã°ã€ã³ ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ä»¥äžã«åºã¥ããŠããŸãã
ã³ã¢ã¯ãŒã¯ã¹ããŒã¹
Eclipse ãã©ãããã©ãŒã äžã«æ§ç¯ãããã»ãŒãã¹ãŠã®çµ±åéçºç°å¢ã¯ãEclipse ã¯ãŒã¯ã¹ããŒã¹ã§åäœããŸãã éåžžãIDE ã§éçºãããã¢ããªã±ãŒã·ã§ã³ã®ãœãŒã¹ ã³ãŒããå«ãŸããã¯ãŒã¯ã¹ããŒã¹ã§ãã ã¯ãŒã¯ã¹ããŒã¹ã¯ãã¡ã€ã« ã·ã¹ãã ã«çŽæ¥ãããããããã©ã«ããŒãšãã¡ã€ã«ãå«ããããžã§ã¯ãã§æ§æãããŸãã ãããã®ãããžã§ã¯ãããã©ã«ããŒããã¡ã€ã«ã¯æ¬¡ã®ããã«åŒã°ããŸãã è³æº ã¯ãŒã¯ã¹ããŒã¹ã Eclipse ã®ã¯ãŒã¯ã¹ããŒã¹å®è£
ã¯ããã¡ã€ã« ã·ã¹ãã ã«é¢é£ãããã£ãã·ã¥ãšããŠæ©èœããããããªãœãŒã¹ ããªãŒã®ãã©ããŒã¹ã倧å¹
ã«é«éåã§ããŸãã ããã«ãã¯ãŒã¯ã¹ããŒã¹ã¯ã次ã®ãããªå€ãã®è¿œå ãµãŒãã¹ãæäŸããŸãã
Core Resources ã³ã³ããŒãã³ã (org.eclipse.core.resources ãã©ã°ã€ã³) ã¯ãã¯ãŒã¯ã¹ããŒã¹ãšãã®ãªãœãŒã¹ã®ãµããŒããæ
åœããŸãã ç¹ã«ããã®ã³ã³ããŒãã³ãã¯ã次ã®åœ¢åŒã§ã¯ãŒã¯ã¹ããŒã¹ãžã®ããã°ã©ã ã«ããã¢ã¯ã»ã¹ãæäŸããŸãã ãªãœãŒã¹ã¢ãã«ã ãã®ã¢ãã«ãå¹æçã«äœ¿çšããã«ã¯ãã¯ã©ã€ã¢ã³ãã¯ãªãœãŒã¹ãžã®ãªã³ã¯ãæ瀺ããç°¡åãªæ¹æ³ãå¿
èŠã§ãã ãã®å Žåãã¢ãã«å
ã®ãªãœãŒã¹ã®ç¶æ
ãçŽæ¥ä¿åãããªããžã§ã¯ããã¯ã©ã€ã¢ã³ã ã¢ã¯ã»ã¹ããé ãããšãæãŸããã§ãããã ããããªããšãããšãã°ãã¡ã€ã«ãåé€ããå Žåãã¯ã©ã€ã¢ã³ãã¯ã¢ãã«å
ã«ååšããªããªããžã§ã¯ããä¿æãç¶ããå¯èœæ§ãããããã®åŸåé¡ãçºçããŸãã Eclipse ã¯ããšåŒã°ãããã®ã䜿çšããŠãã®åé¡ã解決ããŸãã ãã³ãã« ãªãœãŒã¹ã ãã³ãã«ã¯ããŒãšããŠæ©èœã (ã¯ãŒã¯ã¹ããŒã¹å
ã®ãªãœãŒã¹ãžã®ãã¹ã®ã¿ãç¥ã£ãŠããŸã)ããªãœãŒã¹ã®ç¶æ
ã«é¢ããæ
å ±ãçŽæ¥ä¿åããå
éšã¢ãã« ãªããžã§ã¯ããžã®ã¢ã¯ã»ã¹ãå®å
šã«å¶åŸ¡ããŸãã ãã®ãã¶ã€ã³ã¯ãã¿ãŒã³ã®ããªãšãŒã·ã§ã³ã§ã
ç±³ã å³ 2 ã¯ããªãœãŒã¹ ã¢ãã«ã«é©çšããããã³ãã«/ãã㣠ã€ãã£ãªã ã瀺ããŠããŸãã IResource ã€ã³ã¿ãŒãã§ã€ã¹ã¯ãªãœãŒã¹ã®ãã³ãã«ãè¡šããAPI ã§ã¯ãããŸãããããã®ã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ãã Resource ã¯ã©ã¹ãæ¬äœãè¡šã ResourceInfo ã¯ã©ã¹ãšã¯ç°ãªããAPI ã§ãã ãã³ãã«ã¯ã¯ãŒã¯ã¹ããŒã¹ ã«ãŒããåºæºãšãããªãœãŒã¹ãžã®ãã¹ã®ã¿ãèªèããŠããããªãœãŒã¹æ å ±ãžã®ãªã³ã¯ã¯å«ãŸããŠããªãããšã匷調ããŸãã ãªãœãŒã¹æ å ±ãªããžã§ã¯ãã¯ããããããèŠçŽ ããªãŒãã圢æããŸãã ãã®ããŒã¿æ§é ã¯å®å šã«ã¡ã¢ãªå ã«å ·äœåãããŸãã ãã³ãã«ã«å¯Ÿå¿ãããªãœãŒã¹æ å ±ã€ã³ã¹ã¿ã³ã¹ãèŠã€ããã«ã¯ããã®ãã³ãã«ã«æ ŒçŽãããŠãããã¹ã«åŸã£ãŠèŠçŽ ããªãŒããã©ããŸãã
ç±³ã 2. IResource ãš ResourceInfo
åŸã§èª¬æããããã«ããªãœãŒã¹ ã¢ãã«ã®åºæ¬èšèš (ãã³ãã«ããŒã¹ãšåŒã¶ããšãã§ããŸã) ã¯ãEclipse ã®ä»ã®ã¢ãã«ã«ã䜿çšãããŸãã ããã§ã¯ããã®èšèšã®ç¹åŸŽçãªç¹æ§ãããã€ãæããŠã¿ãŸãããã
- ãã³ãã«ã¯å€ãªããžã§ã¯ãã§ãã å€ãªããžã§ã¯ãã¯ããã®ç䟡æ§ãã¢ã€ãã³ãã£ãã£ã«åºã¥ããŠããªãäžå€ãªããžã§ã¯ãã§ãã ãã®ãããªãªããžã§ã¯ãã¯ãããã·ã¥ãããã³ã³ãããŒã®ããŒãšããŠå®å šã«äœ¿çšã§ããŸãã ãã³ãã«ã®è€æ°ã®ã€ã³ã¹ã¿ã³ã¹ãåããªãœãŒã¹ãåç §ã§ããŸãã ããããæ¯èŒããã«ã¯ãequals(Object) ã¡ãœããã䜿çšããå¿ èŠããããŸãã
- ãã³ãã«ã¯ãªãœãŒã¹ã®åäœãå®çŸ©ããŸããããªãœãŒã¹ã®ç¶æ ã«é¢ããæ å ±ã¯å«ãŸããŸãã (ãã³ãã«ã«æ ŒçŽãããå¯äžã®ããŒã¿ã¯ããªãœãŒã¹ãžã®ãã¹ã§ãããããŒãã§ã)ã
- ãã³ãã«ã¯ãååšããªããªãœãŒã¹ (ãŸã äœæãããŠããªããªãœãŒã¹ããŸãã¯ãã§ã«åé€ããããªãœãŒã¹) ãåç §ããŠããå¯èœæ§ããããŸãã ãªãœãŒã¹ã®ååšã¯ãIResource.exists() ã¡ãœããã䜿çšããŠç¢ºèªã§ããŸãã
- äžéšã®æäœã¯ããã³ãã«èªäœã«ä¿åãããŠããæ å ±ã®ã¿ã«åºã¥ããŠå®è£ ã§ããŸã (ãããããã³ãã«å°çšæäœ)ã äŸãšããŠã¯ãIResource.getParent()ãgetFullPath() ãªã©ããããŸãã ãã®ãããªæäœãæåãããããã«ããªãœãŒã¹ãååšããå¿ èŠã¯ãããŸããã æåããããã«ãªãœãŒã¹ãååšããå¿ èŠãããæäœã¯ããªãœãŒã¹ãååšããªãå Žåã« CoreException ãã¹ããŒããŸãã
Eclipse ã¯ãã¯ãŒã¯ã¹ããŒã¹ ãªãœãŒã¹ã®å€æŽãéç¥ããããã®å¹ççãªã¡ã«ããºã ãæäŸããŸã (å³ 3)ã ãªãœãŒã¹ã¯ãEclipse IDE èªäœå ã§å®è¡ãããã¢ã¯ã·ã§ã³ã®çµæãšããŠããŸãã¯ãã¡ã€ã« ã·ã¹ãã ãšã®åæã®çµæãšããŠå€æŽãããå¯èœæ§ããããŸãã ã©ã¡ãã®å Žåããéç¥ã賌èªããŠããã¯ã©ã€ã¢ã³ãã«ã¯ãå€æŽã«é¢ãã詳现æ å ±ãããªãœãŒã¹ ãã«ã¿ãã®åœ¢åŒã§æäŸãããŸãã ãã«ã¿ã¯ãã¯ãŒã¯ã¹ããŒã¹ ãªãœãŒã¹ (ãµã) ããªãŒã® XNUMX ã€ã®ç¶æ éã®å€æŽãèšè¿°ããããèªäœãããªãŒã§ããåããŒãã¯ãªãœãŒã¹ãžã®å€æŽãèšè¿°ããåãªãœãŒã¹ãžã®å€æŽãèšè¿°ãã次ã®ã¬ãã«ã®ãã«ã¿ã®ãªã¹ããå«ã¿ãŸãã
ç±³ã 3. IResourceChangeEvent ãš IResourceDelta
ãªãœãŒã¹ ãã«ã¿ã«åºã¥ãéç¥ã¡ã«ããºã ã«ã¯æ¬¡ã®ç¹åŸŽããããŸãã
- ãã«ã¿ã¯ååž°çåæã®åçã䜿çšããŠæ§ç¯ããããããåäžã®å€æŽãšå€æ°ã®å€æŽã¯åãæ§é ã䜿çšããŠèšè¿°ãããŸãã ãµãã¹ã¯ã©ã€ã ã¯ã©ã€ã¢ã³ãã¯ããã«ã¿ã®ããªãŒãä»ããååž°éäžã䜿çšããŠãªãœãŒã¹å€æŽéç¥ãåŠçã§ããŸãã
- ãã«ã¿ã«ã¯ããªãœãŒã¹ã®ç§»åãããã«é¢é£ä»ãããããããŒã«ãŒãã®å€æŽ (ããšãã°ãã³ã³ãã€ã« ãšã©ãŒã¯ããŒã«ãŒãšããŠè¡šãããŸã) ãªã©ããªãœãŒã¹ãžã®å€æŽã«é¢ããå®å šãªæ å ±ãå«ãŸããŠããŸãã
- ãªãœãŒã¹åç §ã¯ãã³ãã«ãéããŠè¡ããããããdelta ã¯ãªã¢ãŒã ãªãœãŒã¹ãèªç¶ã«åç §ã§ããŸãã
ããã«ãããããã«ããªãœãŒã¹ ã¢ãã«å€æŽéç¥ã¡ã«ããºã ã®èšèšã®äž»èŠã³ã³ããŒãã³ãã¯ãä»ã®ãã³ãã«ããŒã¹ã®ã¢ãã«ã«ãé¢é£ããŸãã
JDTã³ã¢
Eclipse ã¯ãŒã¯ã¹ããŒã¹ ãªãœãŒã¹ ã¢ãã«ã¯ãèšèªã«äŸåããªãåºæ¬çãªã¢ãã«ã§ãã JDT ã³ã¢ ã³ã³ããŒãã³ã (ãã©ã°ã€ã³ org.eclipse.jdt.core) ã¯ãJava ã®èŠ³ç¹ããã¯ãŒã¯ã¹ããŒã¹æ§é ãããã²ãŒãããã³åæããããã® APIããããããJava ã¢ãã«ã(Javaã¢ãã«ïŒã ãã® API ã¯ããã©ã«ããŒãšãã¡ã€ã«ã®èŠ³ç¹ããå®çŸ©ãããåºç€ãšãªããªãœãŒã¹ ã¢ãã« API ãšã¯å¯Ÿç §çã«ãJava èŠçŽ ã®èŠ³ç¹ããå®çŸ©ãããŸãã Java èŠçŽ ããªãŒã®äž»ãªã€ã³ã¿ãŒãã§ã€ã¹ãå³ã«ç€ºããŸãã 4.
ç±³ã 4. Java ã¢ãã«èŠçŽ
Java ã¢ãã«ã¯ããªãœãŒã¹ ã¢ãã«ãšåããã³ãã«/ãã㣠ã€ãã£ãªã ã䜿çšããŸã (å³ 5)ã IJavaElement ã¯ãã³ãã«ã§ãããJavaElementInfo ã¯æ¬äœã®åœ¹å²ãæãããŸãã IJavaElement ã€ã³ã¿ãŒãã§ã€ã¹ã¯ããã¹ãŠã® Java èŠçŽ ã«å ±éã®ãããã³ã«ãå®çŸ©ããŸãã ãã®ã¡ãœããã®äžéšã¯ãã³ãã«å°çšã§ã: getElementName()ãgetParent() ãªã©ã JavaElementInfo ãªããžã§ã¯ãã«ã¯ã察å¿ããèŠçŽ ã®ç¶æ ãã€ãŸããã®æ§é ãšå±æ§ãæ ŒçŽãããŸãã
ç±³ã 5. IJavaElement ãš JavaElementInfo
Java ã¢ãã«ã«ã¯ããªãœãŒã¹ ã¢ãã«ãšæ¯èŒããŠãåºæ¬çãªãã³ãã«/ããã£èšèšã®å®è£ ã«ããã€ãã®éãããããŸãã äžã§è¿°ã¹ãããã«ããªãœãŒã¹ ã¢ãã«ã§ã¯ãããŒãããªãœãŒã¹æ å ±ãªããžã§ã¯ãã§ããèŠçŽ ããªãŒã¯å®å šã«ã¡ã¢ãªå ã«å«ãŸããŸãã ãã ããJava ã¢ãã«ã¯ã.java ããã³ .class ãã¡ã€ã«ã®å éšæ§é (åããã£ãŒã«ããã¡ãœãã) ãè¡šãããããªãœãŒã¹ ããªãŒãããã¯ããã«å€ãã®èŠçŽ ãå«ããããšãã§ããŸãã
ã¡ã¢ãªå ã®èŠçŽ ã®ããªãŒå šäœãå®å šã«å ·äœåãããããšãé¿ããããã«ãJava ã¢ãã«ã®å®è£ ã§ã¯ãèŠçŽ æ å ±ã®å¶éããããµã€ãºã® LRU ãã£ãã·ã¥ã䜿çšãããŸããããã§ãããŒã¯ãã³ãã« IJavaElement ã§ãã èŠçŽ æ å ±ãªããžã§ã¯ãã¯ãèŠçŽ ããªãŒãããã²ãŒãããããšãã«ãªã³ããã³ãã§äœæãããŸãã ãã®å Žåãæã䜿çšé »åºŠã®äœãé ç®ããã£ãã·ã¥ããåé€ãããã¢ãã«ã®ã¡ã¢ãªæ¶è²»éã¯æå®ããããã£ãã·ã¥ ãµã€ãºã«å¶éããããŸãŸã«ãªããŸãã ããã¯ãã³ãã«ããŒã¹ã®èšèšã®ãã XNUMX ã€ã®å©ç¹ã§ããããã®ãããªå®è£ ã®è©³çŽ°ãã¯ã©ã€ã¢ã³ã ã³ãŒãããå®å šã«é èœãããŸãã
Java èŠçŽ ãžã®å€æŽãéç¥ããã¡ã«ããºã ã¯ãäžè¬ã«ãäžã§èª¬æããã¯ãŒã¯ã¹ããŒã¹ ãªãœãŒã¹ãžã®å€æŽã远跡ããã¡ã«ããºã ãšäŒŒãŠããŸãã Java ã¢ãã«ã®å€æŽãç£èŠãããã¯ã©ã€ã¢ã³ãã¯ãIJavaElementDelta ãå«ã ElementChangedEvent ãªããžã§ã¯ããšããŠè¡šãããéç¥ããµãã¹ã¯ã©ã€ãããŸã (å³ 6)ã
ç±³ã 6. ElementChangedEvent ãš IJavaElementDelta
Java ã¢ãã«ã«ã¯ã¡ãœããæ¬äœãåå解決ã«é¢ããæ
å ±ãå«ãŸããŠããªããããJava ã§èšè¿°ãããã³ãŒãã®è©³çŽ°ãªåæã®ããã«ãJDT ã³ã¢ã¯è¿œå ã® (ãã³ãã«ããŒã¹ã§ã¯ãªã) ã¢ãã«ãæäŸããŸãã
æ§æããªãŒã¯å€§éã®ã¡ã¢ãªãæ¶è²»ããå¯èœæ§ããããããJDT ã¯ã¢ã¯ãã£ããªãšãã£ã¿ã«å¯Ÿã㊠XNUMX ã€ã® AST ã®ã¿ããã£ãã·ã¥ããŸãã Java ã¢ãã«ãšã¯ç°ãªããAST ã¯éåžžããäžéãã®ãäžæçãªãã¢ãã«ãšã¿ãªããããã®ã¡ã³ããŒã¯ãAST ã®äœæã«ã€ãªãã£ãæäœã®ã³ã³ããã¹ãå€ã§ã¯ã©ã€ã¢ã³ãã«ãã£ãŠåç §ãããã¹ãã§ã¯ãããŸããã
ãªã¹ããããŠãã XNUMX ã€ã®ã¢ãã« (Java ã¢ãã«ãASTããã€ã³ãã£ã³ã°) ã¯ãJDT ã§ãã€ã³ããªãžã§ã³ããªéçºããŒã«ããæ§ç¯ããããã®åºç€ã圢æããŸããããã«ã¯ãããŸããŸãªããã«ããŒããåãã匷å㪠Java ãšãã£ã¿ããœãŒã¹ ã³ãŒããåŠçããããã®ããŸããŸãªã¢ã¯ã·ã§ã³ (ã€ã³ããŒã ãªã¹ãã®æŽçãªã©) ãå«ãŸããŸããã«ã¹ã¿ãã€ãºãããã¹ã¿ã€ã«ã«åŸã£ãååãšæžåŒèšå®)ãæ€çŽ¢ããã³ãªãã¡ã¯ã¿ãªã³ã° ããŒã«ã ãã®å ŽåãJava ã¢ãã«ã¯ãéçºäžã®ã¢ããªã±ãŒã·ã§ã³ã®æ§é ãèŠèŠçã«è¡šçŸããããã®åºç€ãšããŠäœ¿çšããããããç¹å¥ãªåœ¹å²ãæãããŸã (ããšãã°ãããã±ãŒãž ãšã¯ã¹ãããŒã©ãŒãã¢ãŠãã©ã€ã³ãæ€çŽ¢ãåŒã³åºãéå±€ãªã©)ãã¿ã€ãéå±€)ã
1C:Enterprise Developments Tools ã§äœ¿çšããã Eclipse ã³ã³ããŒãã³ã
å³ã§ã¯ã å³ 7 ã¯ã1C:Enterprise Development Tools ã®ãã¯ãããžãŒ ãã©ãããã©ãŒã ã®åºç€ã圢æãã Eclipse ã³ã³ããŒãã³ãã瀺ããŠããŸãã
ç±³ã 7. 1C:ãšã³ã¿ãŒãã©ã€ãºéçºããŒã«ã®ãã©ãããã©ãŒã ãšããŠã® Eclipse
ãšã¯ãªãã¹ãã©ãããã©ãŒã åºæ¬çãªã€ã³ãã©ã¹ãã©ã¯ãã£ãæäŸããŸãã åã®ã»ã¯ã·ã§ã³ã§ã¯ããã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã®ããã€ãã®åŽé¢ã«ã€ããŠèª¬æããŸããã
çã®æ±çšããŒã«ãšåæ§ã«ãEMF ã¯å¹
åºãã¢ããªã³ã°åé¡ã®è§£æ±ºã«é©ããŠããŸãããäžéšã®ã¯ã©ã¹ã®ã¢ãã« (ããšãã°ãäžã§èª¬æãããã³ãã«ããŒã¹ã®ã¢ãã«) ã§ã¯ãããç¹æ®ãªã¢ããªã³ã° ããŒã«ãå¿
èŠã«ãªãå ŽåããããŸãã EMF ã«ã€ããŠè©±ãããšã¯ãç¹ã« XNUMX ã€ã®èšäºã®éãããç¯å²å
ã§ããããããä»äºã§ãããªããªããããã¯å¥ã®æ¬ã®äž»é¡ã§ãããããªãååãæ¬ã ããã§ãã EMF ã®åºç€ãšãªãäžè¬åã®è³ªã®é«ãã·ã¹ãã ã«ãããã¢ããªã³ã°ã«ç¹åããããŸããŸãªãããžã§ã¯ãã®èªçãå¯èœã«ãªãããããã¯ãããã¬ãã« ãããžã§ã¯ãã«å«ãŸããããšã«æ³šæããŠãã ããã
1C:ãšã³ã¿ãŒãã©ã€ãºéçºããŒã«ã¯ãEMF èªäœãšä»ã®å€ãã® Eclipse ã¢ããªã³ã° ãããžã§ã¯ãã®äž¡æ¹ãç©æ¥µçã«äœ¿çšããŸãã ç¹ã«ãXtext ã¯ãçµã¿èŸŒã¿ããã°ã©ãã³ã°èšèªãã¯ãšãªèšèªãªã©ã® 1C:Enterprise èšèªã®éçºããŒã«ã®åºç€ã® XNUMX ã€ã§ãã ãããã®éçºããŒã«ã®ãã XNUMX ã€ã®åºç€ã¯ãEclipse Handly ãããžã§ã¯ãã§ããããã«ã€ããŠã¯åŸã§è©³ãã説æããŸã (ãªã¹ããããŠãã Eclipse ã³ã³ããŒãã³ãã®äžã§ããŸã æãç¥ãããŠããŸãã)ã
ãã³ãã«/ãã㣠ã€ãã£ãªã ãªã©ã®ãã³ãã«ããŒã¹ã®ã¢ãã«ã®åºæ¬çãªã¢ãŒããã¯ãã£åçã«ã€ããŠã¯ãäŸãšããŠãªãœãŒã¹ ã¢ãã«ãš Java ã¢ãã«ã䜿çšããŠèª¬æããŸããã ãŸãããªãœãŒã¹ ã¢ãã«ãš Java ã¢ãã«ã®äž¡æ¹ã Eclipse Java éçºããŒã« (JDT) ã®éèŠãªåºç€ã§ããããšã«ãèšåããŸããã ãŸããã»ãšãã©ãã¹ãŠã® *DT Eclipse ãããžã§ã¯ã㯠JDT ã«äŒŒãã¢ãŒããã¯ãã£ãæã£ãŠããããããã¹ãŠã§ã¯ãªãã«ããŠãããã³ãã«ããŒã¹ã®ã¢ãã«ã Eclipse ãã©ãããã©ãŒã äžã«æ§ç¯ãããå€ãã® IDE ã®åºç€ã«ãªã£ãŠãããšèšã£ãŠãéèšã§ã¯ãããŸããã ããšãã°ãEclipse C/C++ éçºããŒã« (CDT) ã«ã¯ãJDT ã§ã® Java ã¢ãã«ãšåã圹å²ã CDT ã¢ãŒããã¯ãã£ã§æãããã³ãã«ããŒã¹ã® C/C++ ã¢ãã«ããããŸãã
Handly ãç»å ŽãããŸã§ãEclipse ã¯ãã³ãã«ããŒã¹ã®èšèªã¢ãã«ãæ§ç¯ããããã®ç¹æ®ãªã©ã€ãã©ãªãæäŸããŠããŸããã§ããã çŸåšååšããã¢ãã«ã¯ã䞻㫠Java ã¢ãã« ã³ãŒããçŽæ¥é©çš (å¥åã³ããŒ/ããŒã¹ã) ããããšã«ãã£ãŠäœæãããŸããã èš±å¯ãããå Žå Eclipse ãããªã㯠ã©ã€ã»ã³ã¹ (EPL)ã (æããã«ãããã¯éåžžãããšãã° Eclipse ãããžã§ã¯ãèªäœã«ã€ããŠã¯æ³çãªåé¡ã§ã¯ãããŸããããã¯ããŒãºã ãœãŒã¹è£œåã«ã€ããŠã¯åé¡ãããŸããã) ãã®ææ³ã¯ããã®æ¬è³ªçãªç¡èšç»æ§ã«å ããŠãããç¥ãããåé¡ãåŒãèµ·ãããŸãããšã©ãŒã«é©å¿ããéã«ã³ãŒãã®éè€ãçºçããçããã«æªãããšã«ãçµæãšããŠåŸãããã¢ãã«ã¯ãããèªäœãã®ãŸãŸã§ãããçµ±åã®å¯èœæ§ã掻çšããŠããªãããšã§ãã ãããããã³ãã«ããŒã¹ã®èšèªã¢ãã«ã®å ±éã®æŠå¿µãšãããã³ã«ãåé¢ãããšãEMF ã®å Žåãšåæ§ã«ãããããæäœããããã®åå©çšå¯èœãªã³ã³ããŒãã³ãã®äœæã«ã€ãªããå¯èœæ§ããããŸãã
Eclipse ããããã®åé¡ãç解ããŠããªãã£ãããã§ã¯ãããŸããã 2005 幎ã«é¡ããŸã
ããæå³ãHandly ãããžã§ã¯ãã¯ãEMF ãšã»ãŒåãåé¡ã解決ããããã«èšèšãããŠããŸããããã³ãã«ããŒã¹ã®ã¢ãã«ãäž»ã«èšèªã®åé¡ (ã€ãŸããäœããã®ããã°ã©ãã³ã°èšèªã®æ§é ã®èŠçŽ ãè¡šã) ã察象ã§ãã Handy ãèšèšãããšãã«èšå®ããäž»ãªç®æšã¯æ¬¡ã®ãšããã§ãã
- äž»é¡é åã®äž»ãªæœè±¡åã®ç¹å®ã
- ã³ãŒãã®åå©çšã«ããããã³ãã«ããŒã¹ã®èšèªã¢ãã«ã®å®è£ ã®åŽåãåæžããå質ãåäžãããŸãã
- çµæã®ã¢ãã«ã«çµ±åãããã¡ã¿ã¬ãã« API ãæäŸããèšèªãã³ãã«ããŒã¹ã®ã¢ãã«ã§åäœããå ±éã® IDE ã³ã³ããŒãã³ããäœæã§ããããã«ããŸãã
- æè»æ§ãšæ¡åŒµæ§ã
- Xtext ãšã®çµ±å (å¥ã®ã¬ã€ã€ãŒå )ã
å ±éã®æŠå¿µãšãããã³ã«ã匷調ããããã«ãèšèªãã³ãã«ããŒã¹ã®ã¢ãã«ã®æ¢åã®å®è£ ãåæãããŸããã Handly ãæäŸããäž»ãªã€ã³ã¿ãŒãã§ã€ã¹ãšåºæ¬çãªå®è£ ãå³ã«ç€ºããŸãã 8.
ç±³ã 8. HandlyèŠçŽ ã®å
±éã€ã³ã¿ãŒãã§ãŒã¹ãšåºæ¬å®è£
IElement ã€ã³ã¿ãŒãã§ã€ã¹ã¯èŠçŽ ã®ãã³ãã«ãè¡šãããã¹ãŠã® Handly ããŒã¹ã®ã¢ãã«ã®èŠçŽ ã«å ±éã§ãã æœè±¡ã¯ã©ã¹ Element ã¯ãäžè¬åããããã³ãã«/ãã㣠ã¡ã«ããºã ãå®è£ ããŸã (å³ 9)ã
ç±³ã 9. IElement ãšæ±çšãã³ãã«/ããã£ã®å®è£
ããã«ãHandly ã¯ãã¢ãã«èŠçŽ ã®å€æŽãéç¥ããããã®äžè¬åãããã¡ã«ããºã ãæäŸããŸã (å³ 10)ã ã芧ã®ãšãããããã¯ãªãœãŒã¹ ã¢ãã«ã Java ã¢ãã«ã«å®è£ ãããéç¥ã¡ã«ããºã ãšã»ãŒåæ§ã§ãããIElementDelta ã䜿çšããŠèŠçŽ å€æŽæ å ±ã®çµ±äžãããè¡šçŸãæäŸããŸãã
ç±³ã 10. äžè¬çãªã€ã³ã¿ãŒãã§ã€ã¹ãš Handly éç¥ã¡ã«ããºã ã®åºæ¬å®è£
äžã§èª¬æãã Handly ããŒã (å³ 9 ããã³ 10) ã䜿çšããŠãã»ãŒãã¹ãŠã®ãã³ãã«ããŒã¹ã®ã¢ãã«ãè¡šãããšãã§ããŸãã äœæçš èšèªç㪠ã¢ãã«ã«å ããŠããããžã§ã¯ãã¯è¿œå æ©èœãæäŸããŸããç¹ã«ããœãŒã¹ ããã¹ãæ§é ã®èŠçŽ ã®å ±éã€ã³ã¿ãŒãã§ã€ã¹ãšåºæ¬å®è£ ããããã ãœãŒã¹èŠçŽ (å³8)ã ISourceFile ã€ã³ã¿ãŒãã§ã€ã¹ã¯ãœãŒã¹ ãã¡ã€ã«ãè¡šããISourceConstruct ã¯ãœãŒã¹ ãã¡ã€ã«å ã®èŠçŽ ãè¡šããŸãã æœè±¡ã¯ã©ã¹ SourceFile ããã³ SourceConstruct ã¯ããœãŒã¹ ãã¡ã€ã«ãšãã®èŠçŽ ã®æäœããµããŒãããäžè¬åãããã¡ã«ããºã ãå®è£ ããŸããããšãã°ãããã¹ã ãããã¡ãŒã®æäœããœãŒã¹ ããã¹ãå ã®èŠçŽ ã®åº§æšãžã®ãã€ã³ããã¢ãã«ãšäœæ¥ã³ã㌠ãããã¡ãŒã®çŸåšã®å 容ã®èª¿æŽãªã©ã§ãã ããªã©ã éåžžããããã®ã¡ã«ããºã ã®å®è£ ã¯éåžžã«å°é£ã§ãããHandly ã¯é«å質ã®åºæ¬å®è£ ãæäŸããããšã§ããã³ãã«ããŒã¹ã®èšèªã¢ãã«ãéçºããåŽåãå€§å¹ ã«åæžã§ããŸãã
äžèšã®ã³ã¢ ã¡ã«ããºã ã«å ããŠãHandly ã¯ãããã¹ã ãããã¡ãŒãšã¹ãããã·ã§ããã®ã€ã³ãã©ã¹ãã©ã¯ãã£ããœãŒã¹ ã³ãŒã ãšãã£ã¿ãŒãšã®çµ±åãµããŒã (Xtext ãšãã£ã¿ãŒãšã®ããã«äœ¿çšã§ããçµ±åãå«ã)ãããã³ããã€ãã®äžè¬ç㪠UI ã³ã³ããŒãã³ããæäŸããŸãããœãŒã¹ã³ãŒããšãã£ã¿ãŒã§äœæ¥ããã¢ãŠãã©ã€ã³ãã¬ãŒã ã¯ãŒã¯ãªã©ã®ã¢ãã«ãæäœããŸãã ãã®æ©èœã説æããããã«ããããžã§ã¯ãã§ã¯ãHandly ã§ã® Java ã¢ãã«ã®å®è£ ãªã©ãããã€ãã®äŸãæäŸããŠããŸãã (JDT ã§ã® Java ã¢ãã«ã®å®å šãªå®è£ ãšæ¯èŒããŠããã®ã¢ãã«ã¯æ確ã«ããããã«æå³çã«å€å°ç°¡ç¥åãããŠããŸãã)
åè¿°ããããã«ãHandly ã®åæèšèšãšãã®åŸã®éçºã«ãããäž»ãªçŠç¹ã¯ãã¹ã±ãŒã©ããªãã£ãšæè»æ§ã§ãããä»åŸãããã§ããç¶ããŸãã
ååãšããŠããã³ãã«ããŒã¹ã®ã¢ãã«ã¯ãèšèšäžãéåžžã«ããŸãæ¡åŒµã§ããŸãã ããšãã°ããã³ãã«/ããã£ã®ã€ãã£ãªã ã䜿çšãããšãã¢ãã«ãæ¶è²»ããã¡ã¢ãªã®éãå¶éã§ããŸãã ãããããã¥ã¢ã³ã¹ããããŸãã ãããã£ãŠãHandly ã®ã¹ã±ãŒã©ããªãã£ããã¹ããããšãã«ãéç¥ã¡ã«ããºã ã®å®è£ ã«åé¡ãçºèŠãããŸãããå€æ°ã®èŠçŽ ãå€æŽããããšããã«ã¿ã®æ§ç¯ã«æéããããããããšããåé¡ããããŸããã åãåé¡ãã察å¿ããã³ãŒãããã€ãŠé©å¿ããã JDT Java ã¢ãã«ã«ãååšããããšãå€æããŸããã Handly ã®ãã°ãä¿®æ£ããJDT çšã«ãåæ§ã®ããããçšæããŸãããããã¯ãããããããšã«åãå ¥ããããŸããã ããã¯ãHandly ãæ¢åã®ã¢ãã«å®è£ ã«å°å ¥ãããšæœåšçã«åœ¹ç«ã€å¯èœæ§ãããäžäŸã«ãããŸããããã®å Žåããã®ãããªãã°ã¯ XNUMX ãæã ãã§ä¿®æ£ã§ããããã§ãã
æ¢åã®ã¢ãã«å®è£
ã« Handly ãå®è£
ããã«ã¯ãã©ã€ãã©ãªã«å€§å¹
ãªæè»æ§ãå¿
èŠã§ãã äž»ãªåé¡ã¯ãAPI ã¢ãã«å
šäœã§ã®äžäœäºææ§ãç¶æããããšã§ãã ãã®åé¡ã¯ã§è§£æ±ºãããŸãã
æè»æ§ã«ã¯ä»ã®åŽé¢ããããŸãã ããšãã°ãHandly ã¯ã¢ãã«ã®æ§é ã«ã»ãšãã©å¶éã課ãããæ±çšèšèªãšãã¡ã€ã³åºæèšèªã®äž¡æ¹ãã¢ãã«åããããã«äœ¿çšã§ããŸãã ãœãŒã¹ ãã¡ã€ã«ã®æ§é ãæ§ç¯ããéãHandly 㯠AST è¡šçŸã®ç¹å®ã®åœ¢åŒãèŠå®ãããååãšã㊠AST èªäœã®ååšãå¿
èŠãšããªããããã»ãŒãã¹ãŠã®è§£æã¡ã«ããºã ãšã®äºææ§ãä¿èšŒãããŸãã æåŸã«ãHandly 㯠Eclipse ã¯ãŒã¯ã¹ããŒã¹ãšã®å®å
šãªçµ±åããµããŒãããŠããŸãããEclipse ã¯ãŒã¯ã¹ããŒã¹ãšã®çµ±åã«ããããã¡ã€ã« ã·ã¹ãã ãçŽæ¥æäœããããšãã§ããŸãã
çŸè¡ç
äžã§è¿°ã¹ãããã«ããããã®è£œåã® 1 ã€ã¯ 1C:Enterprise Development Tools ã§ãããHandly ã¯æåãããçµã¿èŸŒã¿ããã°ã©ãã³ã°èšèªãã¯ãšãªèšèªãªã©ã® XNUMXC:Enterprise èšèªã®é«ã¬ãã«æ§é ã®èŠçŽ ãã¢ãã«åããããã«äœ¿çšãããŸãã ã ãã XNUMX ã€ã®è£œåã¯äžè¬ã«ã¯ããŸãç¥ãããŠããŸããã ãã
API ã®å®å®æ§ãä¿èšŒãããããŒãžã§ã³ 1.0 ããªãªãŒã¹ããããããžã§ã¯ããã€ã³ãã¥ããŒã·ã§ã³ç¶æ
ãçµäºããåŸãHandly ã«æ°ããæ¡çšè
ãçŸããããšãæåŸ
ããŠããŸãã ãã®éããããžã§ã¯ã㯠API ã®ãã¹ããšãããªãæ¹åãç¶ãã幎 XNUMX åã®ãã¡ãžã£ãŒããªãªãŒã¹ - XNUMX æ (Eclipse ã®åæãªãªãŒã¹ãšåãæ¥) ãš XNUMX æã«ãªãªãŒã¹ããå°å
¥è
ãä¿¡é Œã§ããäºæž¬å¯èœãªã¹ã±ãžã¥ãŒã«ãæäŸããŸãã ãŸãããããžã§ã¯ãã®ããã°çãã¯äžè²«ããŠäœãã¬ãã«ãç¶æããŠãããHandly ã¯æåã®ããŒãžã§ã³ä»¥æ¥ãæ©ææ¡çšè
ã®è£œåã§ç¢ºå®ã«åäœããŠããããšãä»ãå ããŠãããŸãã Eclipse Handy ãããã«è©³ãã調ã¹ãã«ã¯ã次ã䜿çšã§ããŸãã
åºæïŒ habr.com