JDT API¸¦ »ç¿ëÇÏ¿© ´Ù¸¥ Ç÷¯±×ÀÎÀÌ ÀϺΠJava ¿ä¼Ò¿¡¼ codeassist ¶Ç´Â codeselect¸¦ ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ Á¶ÀÛÀ» Çã¿ëÇÏ´Â ¿ä¼Ò´Â ICodeAssist¸¦ ±¸ÇöÇÕ´Ï´Ù. Java ¸ðµ¨¿¡´Â ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â µÎ °³ÀÇ ¿ä¼Ò, IClassFile°ú ICompilationUnit°¡ ÀÖ½À´Ï´Ù.
Á¶ÀÛ¿¡´Â µÎ °¡Áö Á¾·ù°¡ ÀÖ½À´Ï´Ù.
Âü°í: ¿Ï·á ¹× ¼±ÅÃÀº ¼Ò½º¸¦ ÷ºÎÇÑ °æ¿ì¿¡¸¸ Ŭ·¡½º ÆÄÀÏÀÇ °á°ú¿¡ ÀÀ´äÇÕ´Ï´Ù.
ÄÚµå ¿Ï·á¸¦ ÇÁ·Î±×·¡¹ÖÇÏ¿© ¼öÇàÇÏ´Â À¯ÀÏÇÑ ¹æ¹ýÀº ICodeAssist.codeComplete¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. ´ÜÀ§¿¡ ¿Ï·áÀÇ À§Ä¡¸¦ ÁöÁ¤Çϰí ICompletionRequestorÀÇ ÀνºÅϽº¸¦ Á¦°øÇÏ¿© °¡´ÉÇÑ ¿Ï·á¸¦ Çã¿ëÇÕ´Ï´Ù.
°¢ Á¦¾È Á¾·ù´Â ¿äûÀÚÀÇ ¸Þ¼Òµå¿¡¼ Çã¿ëÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ¸Þ¼ÒµåÀÇ ¸Å°³º¯¼ö´Â ¿ä¼Ò(À̸§, ¸Å°³º¯¼ö, ¼±¾ð À¯Çü µî)¿Í ±× À§Ä¡»Ó¸¸ ¾Æ´Ï¶ó, ÇöÀç ÄÁÅØ½ºÆ®¿¡¼ Á¦¾ÈÀÇ Å¸´ç¼ºÀ» ¼³¸íÇÕ´Ï´Ù.
¸ðµç °á°ú Á¾·ù¿¡ °ü¿©ÇÏÁö´Â ¾Ê´Â °æ¿ì ÄÚµå ¿Ï·á¸¦ ¼öÇàÇÏ´Â °£´ÜÇÑ ¹æ¹ýÀº CompletionRequestorAdapter »ç¿ëÀÔ´Ï´Ù.
// 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);
ÄÚµå ¿Ï·á ¿É¼ÇÀº ´Ù¸¥ Ç÷¯±×ÀÎÀÌ º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù. JDT ÄÚ¾î ¿É¼ÇÀ» ¼öÁ¤ÇÏ¿© ¿Ï·á ÀÛµ¿À» º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.
µÎ °¡Áö ¿É¼ÇÀÌ ÀÖ½À´Ï´Ù.
JDT ÄÚ¾î ¿É¼ÇÀ» ¼öÁ¤ÇÏ´Â ¹æ¹ýÀ» º¸·Á¸é JDT ÄÚ¾î ¿É¼ÇÀÇ °³³äÀ» ÂüÁ¶ÇϽʽÿÀ.
ÄÚµå ¼±ÅûçÇ×À» ÇÁ·Î±×·¡¹ÖÇÏ¿© ¼öÇàÇÏ·Á´Â °æ¿ì »ç¿ëÇÒ ¸Þ¼Òµå´Â
ICodeAssist.codeSelectÀÔ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â ¼±ÅûçÇ×ÀÇ ½ÃÀÛ À§Ä¡¿Í ±æÀ̸¦ ¾Ë¾Æ¾ß ÇÕ´Ï´Ù.
°á°ú´Â 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());
¼±ÅûçÇ× ±æÀ̰¡ 0ÀÌ¸é ¼±ÅûçÇ×Àº ¿Ï·á ¿£Å¬·Î¡ ÅäÅ«À¸·Î °è»êµË´Ï´Ù.
public void fooMethod(Object) { }¿ÀÇÁ¼ÂÀÌ fooMethodÀÇ Ã¹ ¹øÂ° ¹®ÀÚ µÚ¿¡ ÀÖ°í ±æÀ̰¡ 0ÀÏ ¶§ ¼±ÅÃÀº fooMethodÀÔ´Ï´Ù. ±×·¯³ª ±æÀ̰¡ 5ÀÌ¸é ¼±ÅÃÀº ooMetÀÔ´Ï´Ù.