Java Äڵ忡 ´ëÇØ ÄÚµå Áö¿ø ¼öÇà

JDT API¸¦ »ç¿ëÇÏ¸é ´Ù¸¥ Ç÷¯±×ÀÎÀÌ ÀϺΠJava ¿ä¼Ò¿¡¼­ ÄÚµå Áö¿ø ¶Ç´Â ÄÚµå ¼±ÅÃÀ» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ Á¶ÀÛÀ» Çã¿ëÇÏ´Â ¿ä¼Ò´Â ICodeAssist¸¦ ±¸ÇöÇÕ´Ï´Ù.  

Á¶ÀÛ¿¡´Â µÎ °¡Áö Á¾·ù°¡ ÀÖ½À´Ï´Ù.

Java ¸ðµ¨¿¡´Â ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â µÎ °³ÀÇ ¿ä¼Ò, IClassFile°ú ICompilationUnit°¡ ÀÖ½À´Ï´Ù. ÄÚµå ¿Ï·á ¹× ÄÚµå ¼±ÅÃÀº ¼Ò½º¸¦ ÷ºÎÇÑ °æ¿ì Ŭ·¡½º ÆÄÀÏÀÇ °á°ú¿¡¸¸ ÀÀ´äÇÕ´Ï´Ù.

ÄÚµå completion

ÄÚµå completion ¼öÇà

ÄÚµå completionÀ» ÇÁ·Î±×·¡¹ÖÇÏ¿© ¼öÇàÇÏ´Â À¯ÀÏÇÑ ¹æ¹ýÀº ICodeAssist.codeComplete¸¦ È£ÃâÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. ÄÄÆÄÀÏ ´ÜÀ§¿¡¼­ ¿øÇÏ´Â ÄÚµå completion ´ÙÀ½¿¡ ¿ÀÇÁ¼ÂÀ» ÁöÁ¤ÇÕ´Ï´Ù.   °¡´ÉÇÑ completionÀ» Çã¿ëÇÏ·Á¸é ICompletionRequestor ÀνºÅϽºµµ Á¦°øÇØ¾ß ÇÕ´Ï´Ù.

ICompletionRequestorÀÇ °¢ ¸Þ¼Òµå´Â ÄÚµå completion°ú °ü·ÃÇÏ¿© ´Ù¸¥ Á¾·ùÀÇ Á¦¾ÈÀ» Çã¿ëÇÕ´Ï´Ù.  °¢ ¸Þ¼ÒµåÀÇ ¸Å°³º¯¼ö¿¡´Â Á¦¾ÈµÈ ¿ä¼Ò(À̸§, ¼±¾ð À¯Çü µî), ÄÄÆÄÀÏ ´ÜÀ§¿¡¼­ Á¦¾ÈµÈ »ðÀÔ À§Ä¡ ¹× ÇØ´ç °Ë»ö ´É·ÂÀ» ¼³¸íÇÏ´Â ÅØ½ºÆ®°¡ Æ÷ÇԵ˴ϴÙ.   

completion ¿äûÀÚ´Â ´ÙÀ½ ¿ä¼ÒÀÇ »ðÀÔÀ» Æ÷ÇÔÇÏ¿© ¿©·¯ °¡Áö À¯ÇüÀÇ completionÀ» Çã¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

completion ¿äûÀÚ´Â ¶ÇÇÑ ÄÄÆÄÀÏ ¿À·ù¸¦ Çã¿ëÇÒ ¼öµµ ÀÖ¾î¾ß ÇÕ´Ï´Ù.   

Ç÷¯±×ÀÎÀÌ ¸ðµç Á¾·ùÀÇ ÄÚµå completion¿¡ °ü½ÉÀÌ ÀÖ´Â °ÍÀº ¾Æ´Ò °æ¿ì, CompletionRequestorAdapter¸¦ »ç¿ëÇÏ¿© °ü½ÉÀÌ ÀÖ´Â completion Á¾·ù¸¸ ±¸ÇöÇϵµ·Ï ÇÒ ¼ö ÀÖ½À´Ï´Ù.   ´ÙÀ½ ¿¹Á¦´Â Ŭ·¡½º completionÀ» Çã¿ëÇÏ´Â µ¥¸¸ »ç¿ëµÇ´Â ¾î´ðÅ͸¦ º¸¿©ÁÝ´Ï´Ù.

   // Get the compilation unit
   ICompilationUnit unit = ...;
   
   // Get the offset
   int offset = ...;
   
   // Create the requestor
   ICompletionRequestor requestor = new CompletionRequestorAdapter() {
      public void acceptClass(
         char[] packageName,
         char[] className,
         char[] completionName,
         int modifiers,
         int completionStart,
         int completionEnd,
         int relevance) {
         System.out.println("propose a class named " + new String(className));
      }
   };
   
   // Compute proposals
   unit.codeComplete(offset, requestor);

Completion °Ë»ö ´É·Â

¿©·¯ °¡Áö °¡´ÉÇÑ completionÀÌ ÀÖÀ» ¼ö ÀÖÀ¸¹Ç·Î Á¦½ÃµÈ completionÀÇ °Ë»ö ´É·ÂÀ» ´Ù¸¥ Á¦¾È»çÇ×°ú ºñ±³ÇÏ´Â µ¥ °Ë»ö ´É·Â °³³äÀ» »ç¿ëÇÕ´Ï´Ù.   °Ë»ö ´É·ÂÀº ¾çÀÇ Á¤¼ö·Î Ç¥½ÃµË´Ï´Ù.  ´Ù¸¥ Á¦¾È»çÇ×ÀÇ °ª¿¡ »ó´ëÀûÀ¸·Î »ç¿ëµÇ´Â Á¡À» Á¦¿ÜÇÏ°í °ª¿¡´Â ¾Ï½ÃÀû Àǹ̰¡ ¾ø½À´Ï´Ù.   ÄÚµå completion Èĺ¸ÀÇ °Ë»ö ´É·ÂÀº ¿¹»óÇϴ ǥÇö½Ä À¯ÇüÀÇ ¿µÇâÀ» ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù. º¯¼ö À¯Çü, ij½ºÆ® À¯Çü, ¸®ÅÏ À¯Çü°ú °°Àº ÁÖº¯ Äڵ忡 ÀÖ´Â À¯Çü¿¡ °ü·ÃÀÌ Àֱ⠶§¹®ÀÔ´Ï´Ù.  completion¿¡¼­ÀÇ ¿¹»ó Á¢µÎºÎ ¶Ç´Â Á¢¹ÌºÎ Á¸Àç ¿©ºÎµµ °Ë»ö ´É·Â¿¡ ¿µÇâÀ» ÁÝ´Ï´Ù.

ÄÚµå completion ¿É¼Ç

JDT ÄÚ¾î Ç÷¯±×ÀÎÀº ÄÚµå completionÀÇ ÀÛµ¿À» Á¦¾îÇÏ´Â ¿É¼ÇÀ» Á¤ÀÇÇÕ´Ï´Ù.   ÀÌ·¯ÇÑ ¿É¼ÇÀº ±âŸ Ç÷¯±×ÀÎÀ¸·Î º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.   

Ãß°¡ ¿É¼ÇÀ» »ç¿ëÇÏ¿© Çʵå, Á¤Àû Çʵå, ·ÎÄà º¯¼ö ¹× ¸Þ¼Òµå Àμö¿¡ Á¦¾ÈµÈ completion À̸§ÀÇ Á¢µÎºÎ ¹× Á¢¹ÌºÎ¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.  

ÄÚµå Áö¿ø ¿É¼Ç ¹× ±âº»°ª¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â  JDT ÄÚ¾î ÄÚµå Áö¿ø ¿É¼ÇÀ» ÂüÁ¶ÇϽʽÿÀ.

ÄÚµå selection

ÄÚµå selection ¼öÇà

ÄÚµå selectionÀº ÄÄÆÄÀÏ ´ÜÀ§¿¡¼­ ÅØ½ºÆ® ¹üÀ§(º¸Åë ¼±ÅÃµÈ ÅØ½ºÆ®)·Î Ç¥½ÃµÇ´Â Java ¿ä¼Ò¸¦ ã´Â µ¥ »ç¿ëµË´Ï´Ù.  ÇÁ·Î±×·¥¿¡ µû¶ó ÄÚµå selectionÀ» ¼öÇàÇÏ·Á¸é, ICodeAssist.codeSelect¸¦ È£ÃâÇØ¾ß ÇÕ´Ï´Ù. selectionÀÇ ½ÃÀÛ »öÀÎ À§Ä¡¿Í ÇØ´ç ±æÀ̸¦ Á¦°øÇØ¾ß ÇÕ´Ï´Ù.   °á°ú´Â Java ¿ä¼ÒÀÇ ¹è¿­ÀÔ´Ï´Ù.   ´ëºÎºÐÀÇ °æ¿ì ¹è¿­¿¡´Â ÇÑ ¿ä¼Ò¸¸ ÀÖÁö¸¸ selectionÀÌ ¸ðÈ£ÇÏ¸é °¡´ÉÇÑ ¸ðµç ¿ä¼Ò°¡ ¸®Åϵ˴ϴÙ.

´ÙÀ½ ¿¹¿¡¼­ ÄÚµå ¼±ÅÃÀº ÄÄÆÄÀÏ ´ÜÀ§·Î È£ÃâµË´Ï´Ù.

   // 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) {
   }

fooMethodÀÇ Ã¹ ¹øÂ° ¹®ÀÚ ´ÙÀ½¿¡ ¿ÀÇÁ¼ÂÀ» ÁöÁ¤ÇÏ°í ±æÀÌ·Î 0À» ÁöÁ¤ÇÒ °æ¿ì, selectionÀº ÅäÅ« fooMethod Àüü¸¦ Æ÷ÇÔÇϵµ·Ï °è»êµË´Ï´Ù. ´ë½Å ±æÀÌ·Î 5¸¦ ÁöÁ¤ÇÒ °æ¿ì, selectionÀº ooMet·Î °£Áֵ˴ϴÙ.

Copyright IBM Corporation and others 2000, 2003. All Rights Reserved.