JDT API¸¦ »ç¿ëÇÏ¸é ´Ù¸¥ Ç÷¯±×ÀÎÀÌ ÀϺΠJava ¿ä¼Ò¿¡¼ ÄÚµå Áö¿ø ¶Ç´Â ÄÚµå ¼±ÅÃÀ» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¿ÀÆÛ·¹À̼ÇÀ» Çã¿ëÇÏ´Â ¿ä¼Ò´Â ICodeAssist¸¦ ±¸ÇöÇÕ´Ï´Ù.
¿ÀÆÛ·¹À̼ǿ¡´Â µÎ °¡Áö Á¾·ù°¡ ÀÖ½À´Ï´Ù.
Java ¸ðµ¨¿¡´Â ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â µÎ °³ÀÇ ¿ä¼Ò, IClassFile°ú ICompilationUnit°¡ ÀÖ½À´Ï´Ù. ÄÚµå ¿Ï·á ¹× ÄÚµå ¼±ÅÃÀº ¼Ò½º¸¦ ÷ºÎÇÑ °æ¿ì Ŭ·¡½º ÆÄÀÏÀÇ °á°ú¿¡¸¸ ÀÀ´äÇÕ´Ï´Ù.
ÄÚµå completionÀ» ÇÁ·Î±×·¡¹ÖÇÏ¿© ¼öÇàÇÏ´Â À¯ÀÏÇÑ ¹æ¹ýÀº ICodeAssist.codeComplete¸¦ È£ÃâÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. ÄÄÆÄÀÏ ´ÜÀ§¿¡¼ ¿øÇÏ´Â ÄÚµå completion ´ÙÀ½¿¡ ¿ÀÇÁ¼ÂÀ» ÁöÁ¤ÇÕ´Ï´Ù. °¡´ÉÇÑ completionÀ» Çã¿ëÇÏ·Á¸é CompletionRequestor ÀνºÅϽºµµ Á¦°øÇØ¾ß ÇÕ´Ï´Ù.
CompletionRequestor.acceptÀÇ ¸Þ¼Òµå´Â ÄÚµå ¿Ï¼ºÀ» À§ÇÑ ¸ðµç À¯ÇüÀÇ Á¦¾ÈÀ» Çã¿ëÇÕ´Ï´Ù. CompletionProposal ÀÇ ¸Þ¼Òµå¿¡´Â Á¦¾ÈµÈ ¿ä¼Ò(À̸§, ¼±¾ð À¯Çü µî), ÄÄÆÄÀÏ ´ÜÀ§¿¡¼ Á¦¾ÈµÈ »ðÀÔ À§Ä¡ ¹× ÇØ´ç °Ë»ö ´É·ÂÀ» ¼³¸íÇÏ´Â Á¤º¸°¡ Á¦°øµË´Ï´Ù.
¿Ï¼º ¿äûÀÚ´Â ¸¹Àº ´Ù¸¥ À¯ÇüÀÇ ¿Ï¼ºÀ» Çã¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. CompletionProposal.getKind°¡ ÀÌ À¯ÇüÀ» Á¦°øÇÕ´Ï´Ù.
¸î °¡Áö °¡´ÉÇÑ ¿Ï¼º À¯ÇüÀº ´ÙÀ½°ú °°½À´Ï´Ù(°¡´ÉÇÑ ¿Ï¼º À¯Çü Àüü ¸ñ·ÏÀº CompletionProposal¿¡¼ º¼ ¼ö ÀÖÀ½).
completion ¿äûÀÚ´Â ¶ÇÇÑ ÄÄÆÄÀÏ ¿À·ù¸¦ Çã¿ëÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù.
¿©·¯ °¡Áö °¡´ÉÇÑ completionÀÌ ÀÖÀ» ¼ö ÀÖÀ¸¹Ç·Î Á¦½ÃµÈ completionÀÇ °Ë»ö ´É·ÂÀ» ´Ù¸¥ Á¦¾È»çÇ×°ú ºñ±³ÇÏ´Â µ¥ °Ë»ö ´É·Â °³³äÀ» »ç¿ëÇÕ´Ï´Ù. °Ë»ö ´É·ÂÀº ¾çÀÇ Á¤¼ö·Î Ç¥½ÃµË´Ï´Ù. ´Ù¸¥ Á¦¾È»çÇ×ÀÇ °ª¿¡ »ó´ëÀûÀ¸·Î »ç¿ëµÇ´Â Á¡À» Á¦¿ÜÇÏ°í °ª¿¡´Â ¾Ï½ÃÀû Àǹ̰¡ ¾ø½À´Ï´Ù. ÄÚµå completion Èĺ¸ÀÇ °Ë»ö ´É·ÂÀº ¿¹»óÇϴ ǥÇö½Ä À¯ÇüÀÇ ¿µÇâÀ» ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù. º¯¼ö À¯Çü, ij½ºÆ® À¯Çü, ¸®ÅÏ À¯Çü°ú °°Àº ÁÖº¯ Äڵ忡 ÀÖ´Â À¯Çü¿¡ °ü·ÃÀÌ Àֱ⠶§¹®ÀÔ´Ï´Ù. completion¿¡¼ÀÇ ¿¹»ó Á¢µÎºÎ ¶Ç´Â Á¢¹ÌºÎ Á¸Àç ¿©ºÎµµ °Ë»ö ´É·Â¿¡ ¿µÇâÀ» ÁÝ´Ï´Ù.
JDT ÄÚ¾î Ç÷¯±×ÀÎÀº ÄÚµå completionÀÇ µ¿ÀÛÀ» Á¦¾îÇÏ´Â ¿É¼ÇÀ» Á¤ÀÇÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ¿É¼ÇÀº ±âŸ Ç÷¯±×ÀÎÀ¸·Î º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.
Ãß°¡ ¿É¼ÇÀ» »ç¿ëÇÏ¿© Çʵå, static Çʵå, ·ÎÄà º¯¼ö ¹× ¸Þ¼Òµå Àμö¿¡ Á¦¾ÈµÈ completion À̸§ÀÇ Á¢µÎºÎ ¹× Á¢¹ÌºÎ¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÄÚµå Áö¿ø ¿É¼Ç ¹× ±âº»°ª¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â JDT ÄÚ¾î ÄÚµå Áö¿ø ¿É¼ÇÀ» ÂüÁ¶ÇϽʽÿÀ.
ÄÚµå selectionÀº ÄÄÆÄÀÏ ´ÜÀ§¿¡¼ ÅØ½ºÆ® ¹üÀ§(º¸Åë ¼±ÅÃµÈ ÅØ½ºÆ®)·Î Ç¥½ÃµÇ´Â Java ¿ä¼Ò¸¦ ã´Â µ¥ »ç¿ëµË´Ï´Ù. ÇÁ·Î±×·¥¿¡ µû¶ó ÄÚµå selectionÀ» ¼öÇàÇÏ·Á¸é, ICodeAssist.codeSelect¸¦ È£ÃâÇØ¾ß ÇÕ´Ï´Ù. selectionÀÇ ½ÃÀÛ »öÀÎ À§Ä¡¿Í ÇØ´ç ±æÀ̸¦ Á¦°øÇØ¾ß ÇÕ´Ï´Ù. °á°ú´Â Java ¿ä¼ÒÀÇ ¹è¿ÀÔ´Ï´Ù. ´ëºÎºÐÀÇ °æ¿ì ¹è¿¿¡´Â ÇϳªÀÇ ¿ä¼Ò¸¸ ÀÖÁö¸¸ ¼±ÅÃÀÌ ¸ðÈ£ÇÑ °æ¿ì¿¡´Â °¡´ÉÇÑ ¸ðµç ¿ä¼Ò°¡ ¸®Åϵ˴ϴÙ.
´ÙÀ½ ¿¹¿¡¼ ÄÚµå ¼±ÅÃÀº ÄÄÆÄÀÏ ´ÜÀ§·Î È£ÃâµË´Ï´Ù.
// Get the compilation unit
ICompilationUnit unit = ...;
// Get the offset and length
int offset = ...;
int length = ...;
// perform selection
IJavaElement[] elements = unit.codeSelect(offset, length);
System.out.println("the selected element is " + element[0].getElementName());
selection ±æÀ̸¦ 0À¸·Î ÁöÁ¤ÇÒ °æ¿ì, selectionÀº ÁöÁ¤µÈ ¿ÀÇÁ¼ÂÀ» ¿¡¿ö½Î´Â ¿ÏÀüÇÑ ÅäÅ«À» ã¾Æ¼ °è»êÇÕ´Ï´Ù. ´ÙÀ½ÀÇ ¸Þ¼Òµå ¿¹Á¦¸¦ °í·ÁÇØ º¸½Ê½Ã¿À.
public void fooMethod(Object) {
}