ÄÁÅÙÃ÷ À¯Çü Á¦°ø

»õ ÄÁÅÙÃ÷ À¯Çü Á¦°ø

Ç÷§ÆûÀº ÀÏ¹Ý ÅØ½ºÆ® ¹× XML°ú °°Àº ÀϺΠ±âº» ÄÁÅÙÃ÷ À¯ÇüÀ» Á¤ÀÇÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ÄÁÅÙÃ÷ À¯ÇüÀº ±âŸ Ç÷¯±×Àο¡¼­ Á¦°øÇÏ´Â À¯Çü°ú µ¿ÀÏÇÑ ¹æ½ÄÀ¸·Î Á¤Àǵ˴ϴÙ. ÄÁÅÙÃ÷ À¯Çü ÇÁ·¹ÀÓ¿öÅ©¸¦ ´õ Àß ÀÌÇØÇϱâ À§ÇØ Ç÷§ÆûÀÌ ÀϺΠÄÁÅÙÃ÷ À¯ÇüÀ» Á¤ÀÇÇÏ´Â ¹æ¹ýÀ» »ìÆì º¸±â·Î ÇÕ´Ï´Ù.

Ç÷¯±×ÀÎÀº org.eclipse.core.runtime.contentTypes È®ÀåÁ¡¿¡ ´ëÇÑ È®ÀåÀ» Á¦°øÇÏ¿© ÄÁÅÙÃ÷ À¯ÇüÀ» Á¤ÀÇÇÕ´Ï´Ù. ÀÌ È®Àå¿¡¼­ Ç÷¯±×ÀÎÀº ÄÁÅÙÃ÷ À¯ÇüÀÇ ´Ü¼ø ID¿Í À̸§À» ÁöÁ¤ÇÕ´Ï´Ù(Àüü ID´Â Ç×»ó ´Ü¼ø ID ¾Õ¿¡ ÇöÀç À̸§ °ø°£ Á¢µÎºÎ°¡ Ãß°¡µÊ). ´ÙÀ½ ½º´ÏÆêÀº org.eclipse.core.runtime.text ÄÁÅÙÃ÷ À¯Çü Áö½Ã¹®ÀÇ Àý´ÜµÈ ¹öÀüÀ» Ç¥½ÃÇÕ´Ï´Ù.

	<extension point="org.eclipse.core.runtime.contentTypes">
		<content-type id="text" name="%textContentTypeName">
			file-extensions="txt">
			<describer class="org.eclipse.core.internal.content.TextContentDescriber"/>
		</content-type>
		...

file-extensions ¼Ó¼ºÀº ÄÁÅÙÃ÷ À¯Çü°ú ¿¬°üµÈ ÆÄÀÏ È®ÀåÀÚ(ÀÌ ¿¹Á¦¿¡¼­´Â ".txt")¸¦ Á¤ÀÇÇÕ´Ï´Ù. file-names ¼Ó¼º(ÀÌ °æ¿ì¿¡´Â »ç¿ëµÇÁö ¾ÊÀ½)Àº Àüü À̸§ ¿¬°üÀ» Çã¿ëÇÕ´Ï´Ù. Ç÷§ÆûÀº ÄÁÅÙÃ÷ À¯Çü ¹ß°ß ¹× ¼³¸í(Ŭ¶óÀÌ¾ðÆ®°¡ ÆÄÀÏ À̸§À» Á¦°øÇÏ´Â °æ¿ì)À» ¼öÇàÇÒ ¶§ µÎ ¼Ó¼ºÀ» ¸ðµÎ °í·ÁÇÕ´Ï´Ù.

describer ¿ä¼Ò´Â ÄÁÅÙÃ÷ À¯ÇüÀÇ ÄÁÅÙÃ÷ ¼³¸íÀÚ¸¦ Á¤ÀÇÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.

ÄÁÅÙÃ÷ ¹ß°ß ¹× ¼³¸í

ÄÁÅÙÃ÷ À¯ÇüÀº ÀÚµ¿ ÄÁÅÙÃ÷ À¯Çü ¹ß°ßÀ» Çã¿ëÇÏ´Â ½Äº° °¡´ÉÇÑ Æ¯¼ºÀÌ Àְųª ÄÁÅÙÃ÷ À¯Çü¿¡ ¼ÓÇÑ µ¥ÀÌÅÍ¿¡ Ưº°ÇÑ Æ¯¼ºÀÌ ÀÖ´Â °æ¿ì ÄÁÅÙÃ÷ ¼³¸íÀÚ¸¦ Á¦°øÇØ¾ß ÇÕ´Ï´Ù. org.eclipse.core.runtime.textÀÇ °æ¿ì, ÄÁÅÙÃ÷¸¸ º¸°í ÄÁÅÙÃ÷ À¯ÇüÀ» ÀÌÇØÇÒ ¼ö´Â ¾ø½À´Ï´Ù. ±×·¯³ª Á¦Ç° Á¤º¸¿¡ °ü½ÉÀÌ ÀÖÀ» ¼ö Àִ Ư¼º Ŭ¶óÀ̾ðÆ®ÀÎ ¹ÙÀÌÆ® ¼ø¼­ Ç¥½Ã°¡ ÅØ½ºÆ® ½ºÆ®¸²¿¡ ¹Ì¸® Ãß°¡µÉ ¼ö ÀÖÀ¸¹Ç·Î ÄÁÅÙÃ÷ ¼³¸íÀÚ°¡ º¸ÀåµË´Ï´Ù.

¼³¸íÀÚ´Â IContentDescriber ¶Ç´Â ITextContentDescriberÀÇ ±¸ÇöÀÔ´Ï´Ù. ÈÄÀÚ´Â ¼³¸íÀÚ ¶Ç´Â ÅØ½ºÆ® ÁöÇâ ÄÁÅÙÃ÷ À¯ÇüÀ¸·Î ±¸ÇöÇØ¾ß ÇÏ´Â ÀüÀÚ¸¦ Ư¼öÈ­ÇÑ °ÍÀÔ´Ï´Ù. ÄÁÅÙÃ÷ À¯ÇüÀÇ ³×ÀÌó¿¡ °ü°è¾øÀÌ ¼³¸íÀÚ´Â µÎ °¡Áö Ã¥ÀÓÀ» ¸Ã°í Àִµ¥, ÄÁÅÙÃ÷ À¯ÇüÀÌ ÁÖ¾îÁø µ¥ÀÌÅÍ ½ºÆ®¸²¿¡ ÀûÇÕÇÑÁö ¿©ºÎ¸¦ ÆÇº°ÇÒ ¼ö ÀÖµµ·Ï µ½°í ÄÁÅÙÃ÷ À¯Çü¿¡ ¼ÓÇÑ °ÍÀ¸·Î ÃßÁ¤µÇ´Â µ¥ÀÌÅÍ ½ºÆ®¸²¿¡¼­ Ưº°ÇÑ Æ¯¼ºÀ» ÃßÃâÇÏ´Â °ÍÀÔ´Ï´Ù.

describe(stream, description) ¸Þ¼Òµå´Â Ç÷§ÆûÀÌ Æ¯Á¤ µ¥ÀÌÅÍ ½ºÆ®¸²ÀÇ ÄÁÅÙÃ÷ À¯ÇüÀ» ÆÇº°Çϰųª ÄÁÅÙÃ÷¸¦ ¼³¸íÇÏ·Á°í ½ÃµµÇÒ ¶§¸¶´Ù È£ÃâµË´Ï´Ù. ¹ß°ß¸¸ ¿äûÇÏ´Â °æ¿ì¿¡´Â ¼³¸íÀÌ nullÀÔ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é ¼³¸íÀÚ°¡ ½ºÆ®¸²À» ÀÐ¾î ¹ß°ßÇÒ ¼ö Àִ Ư¼º¸¸À¸·Î ÄÁÅÙÃ÷ ¼³¸íÀ» ä¿ì·Á°í ½ÃµµÇØ¾ß ÇÕ´Ï´Ù. ÄÁÅÙÃ÷ À¯Çü ¸¶Å©¾÷À» »ç¿ëÇÏ¿© ±âº»°ªÀ» °®´Â Ư¼ºÀ» ¼±¾ðÇØ¾ß ÇÕ´Ï´Ù(¿¹: org.eclipse.core.runtime.xmlÀº UTF-8À» ±âº» ¹®ÀÚ ¼¼Æ®·Î ¼±¾ðÇÔ).

ÄÁÅÙÃ÷ ¼³¸íÀÚ´Â ÀÓ¹« ¼öÇà ½Ã °¡´ÉÇÑ »¡¸® ½ÇÇàµÇ¾î¾ß ÇÕ´Ï´Ù. Àоî¾ß ÇÒ µ¥ÀÌÅÍ ½ºÆ®¸²ÀÌ ÀûÀ»¼ö·Ï ÁÁ½À´Ï´Ù. ¶ÇÇÑ Ç÷¯±×ÀΠȰ¼ºÈ­¿¡¼­ ¸éÁ¦µÈ ÆÐŰÁö¿¡ ÄÁÅÙÃ÷ ¼³¸íÀÚ ±¸ÇöÀÌ ¼±¾ðµË´Ï´Ù(Eclipse-AutoStart ¹øµé Manifest Çì´õ ÂüÁ¶). ÄÁÅÙÃ÷ À¯Çü ÇÁ·¹ÀÓ¿öÅ©°¡ ÃʱâÈ­µÉ ¶§ ¸ðµç ¼³¸íÀÚ°¡ ÀνºÅϽºÈ­µÇ±â ¶§¹®¿¡ ÀÌ ¿ä±¸»çÇ×À» ÁؼöÇÏÁö ¸øÇϸé Á¶±â Ȱ¼ºÈ­°¡ ¹ß»ýÇϹǷΠÀ̸¦ ÇÇÇØ¾ß ÇÕ´Ï´Ù. ÇâÈÄ Ç÷§Æû ±¸Çö¿¡¼­´Â ¼³¸íÀÚ°¡ ÀνºÅϽºÈ­µÇ¸é ÇØ´ç Ç÷¯±×ÀÎÀÇ È°¼ºÈ­°¡ Æ®¸®°ÅµÇ´Â °æ¿ì À̸¦ °ÅºÎÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

±âÁ¸ ÄÁÅÙÃ÷ À¯Çü È®Àå

ÄÁÅÙÃ÷ À¯ÇüÀº º»ÁúÀûÀ¸·Î °èÃþ ±¸Á¶ÀÔ´Ï´Ù. À̸¦ ÅëÇØ »õ ÄÁÅÙÃ÷ À¯ÇüÀº ´õ¿í ÀϹÝÀûÀÎ ÄÁÅÙÃ÷ À¯ÇüÀÇ ¼Ó¼º ¶Ç´Â ÀÛµ¿¿¡ ¿µÇâÀ» ÁÝ´Ï´Ù. ¿¹¸¦ µé¾î, XML µ¥ÀÌÅÍÀÇ ÄÁÅÙÃ÷ À¯ÇüÀº ÅØ½ºÆ® ÄÁÅÙÃ÷ À¯ÇüÀÇ ÇÏÀ§·Î °£Áֵ˴ϴÙ.

       <content-type
	id="xml"
	name="%xmlContentTypeName"
	base-type="org.eclipse.core.runtime.text"
	file-extensions="xml">
	<describer class="org.eclipse.core.internal.content.XMLContentDescriber"/>
	<property name="charset" default="UTF-8"/>
</content-type>

XML ÆÄÀÏÀº ÀÏÁ¾ÀÇ ÅØ½ºÆ® ÆÄÀÏ·Î °£ÁֵǹǷΠÈÄÀÚ¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Â ±â´ÉÀº ÀüÀÚ¿¡µµ Àû¿ëÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù.

XML ÄÁÅÙÃ÷ À¯ÇüÀº ÆÄÀÏ ¿¬°ü ¹× ¼³¸íÀÚ ±¸Çö µî Text ÄÁÅÙÃ÷ À¯Çü¿¡ ¿ø·¡ Á¤ÀÇµÈ ¸î °¡Áö ÄÁÅÙÃ÷ À¯Çü ¼Ó¼ºÀ» ´ëüÇÕ´Ï´Ù. ¶ÇÇÑ ÀÌ ÄÁÅÙÃ÷ À¯ÇüÀº charset Ư¼ºÀÇ ±âº» Ư¼º °ªÀ» ¼±¾ðÇÕ´Ï´Ù. ÀÌ´Â XML ÄÁÅÙÃ÷ À¯Çü¿¡ ¼ÓÇÑ °ÍÀ¸·Î °£ÁֵǴ µ¥ÀÌÅÍ ½ºÆ®¸²¿¡ ´ëÇÑ ÄÁÅÙÃ÷ ¼³¸í Áß¿¡ ¼³¸íÀÚ°¡ charset ¼Ó¼ºÀ» ä¿ìÁö ¾ÊÀ¸¸é Ç÷§ÆûÀÌ À̸¦ "UTF-8"·Î ¼³Á¤ÇÔÀ» ÀǹÌÇÕ´Ï´Ù.

¶Ç ´Ù¸¥ ¿¹Á¦·Î org.eclipse.ant.core.antBuildFile ÄÁÅÙÃ÷ À¯Çü(Ant ºôµå ½ºÅ©¸³Æ®ÀÇ °æ¿ì)Àº XML ÄÁÅÙÃ÷ À¯ÇüÀ» È®ÀåÇÕ´Ï´Ù.

       <content-type

id="antBuildFile"
name="%antBuildFileContentType.name"
base-type="org.eclipse.core.runtime.xml"
file-names="build.xml"
file-extensions="macrodef,ent,xml">
<describer
class="org.eclipse.ant.internal.core.contentDescriber.AntBuildfileContentDescriber">
</describer>
</content-type>

charset Ư¼ºÀÇ ±âº»°ªÀº »ó¼ÓµÊ¿¡ À¯ÀÇÇϽʽÿÀ. »ó¼ÓµÈ Ư¼º ¶Ç´Â ¼³¸íÀÚ¸¦ ºó ¹®ÀÚ¿­ °ªÀ¸·Î ´Ù½Ã ¼±¾ðÇÏ¿© Ãë¼ÒÇÒ ¼ö ÀÖ½À´Ï´Ù.

Ãß°¡ ÆÄÀÏ ¿¬°ü

±âÁ¸ ÄÁÅÙÃ÷ À¯Çü¿¡ »õ ÆÄÀÏ ¿¬°üÀ» Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ÀÚ¿ø Ç÷¯±×ÀÎÀº org.eclipse.core.runtime.xmlÀ» ".project" ÆÄÀϰú ¿¬°ü½Ãŵ´Ï´Ù.

	<extension point="org.eclipse.core.runtime.contentTypes">
	<file-association content-type="org.eclipse.core.runtime.xml" file-names=".project"/>
	...

ÄÁÅÙÃ÷ À¯Çü º°¸í ÁöÁ¤

EclipseÀÇ È®Àå °¡´ÉÇÑ Æ¯¼º ¶§¹®¿¡ Ç÷¯±×ÀÎÀÌ ÀÇÁ¸ÇÏ´Â ÄÁÅÙÃ÷ À¯ÇüÀ» ÁÖ¾îÁø Á¦Ç° ±¸¼º¿¡¼­ »ç¿ë ºÒ°¡´ÉÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÄÁÅÙÃ÷ À¯Çü º°¸í ÁöÁ¤À» »ç¿ëÇÏ¿© À̸¦ ÇØ°áÇÒ ¼ö ÀÖ½À´Ï´Ù. ÄÁÅÙÃ÷ À¯Çü º°¸íÀº »ç¿ë°¡´É¼ºÀÌ º¸ÀåµÇÁö ¾Ê´Â ¼±È£ÇÏ´Â ´Ù¸¥ ÄÁÅÙÃ÷ À¯ÇüÀÇ Ç÷¹À̽ºÈ¦´õÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, ·±Å¸ÀÓÀº JDT(Java Development Tooling)¿¡¼­ Á¦°øÇÏ´Â Java Ư¼º ÄÁÅÙÃ÷ À¯Çü(org.eclipse.jdt.core.javaProperties)ÀÇ º°¸í(org.eclipse.core.runtime.properties)À» ¼±¾ðÇÕ´Ï´Ù.

<!-- a placeholder for setups where JDT's official type is not available -->			
<content-type id="properties" name="%propertiesContentTypeName"
base-type="org.eclipse.core.runtime.text"
alias-for="org.eclipse.jdt.core.javaProperties"
file-extensions="properties">
<property name="charset" default="ISO-8859-1"/>
</content-type>

ÀÌ´Â ¼±È£ ÄÁÅÙÃ÷ À¯Çü »ç¿ë °¡´É ¿©ºÎ¿¡ °ü°è¾øÀÌ ÂüÁ¶ÇÒ ¼ö ÀÖ´Â Ç÷¹À̽ºÈ¦´õ¸¦ Ç÷¯±×Àο¡ Á¦°øÇÕ´Ï´Ù. ¼±È£ ÄÁÅÙÃ÷ À¯ÇüÀ» »ç¿ëÇÒ ¼ö ÀÖ´Â °æ¿ì, º°¸í ÄÁÅÙÃ÷ À¯ÇüÀº ÄÁÅÙÃ÷ À¯Çü īŻ·Î±×¿¡¼­ ¾ïÁ¦µÇ°í ÀÌ¿¡ ´ëÇÑ ÂüÁ¶´Â ´ë»ó ÄÁÅÙÃ÷ À¯Çü¿¡ ´ëÇÑ ÂüÁ¶·Î ÇØ¼®µË´Ï´Ù. »ç¿ëÇÒ ¼ö ¾ø´Â °æ¿ì, º°¸íÀº ÀÏ¹Ý ÄÁÅÙÃ÷ À¯ÇüÀ¸·Î »ç¿ëµË´Ï´Ù.