2011-05-04 175 views
8

随着我从.net到Java的转换中慢慢爬行,我发现有关eclipse IDE的更多有趣的事情。我最近偶然发现了它的模板,我很喜欢它。这给我一个问题:我可以从模板中调用模板吗?当然,这只是一个复制和粘贴的问题,但我想知道是否可以完成。在模板中使用模板 - eclipse

+1

你能澄清你在做什么吗? Eclipse没有在另一个模板中扩展模板的机制,但是如果需要,您可以复制并粘贴。 – 2011-06-14 11:30:53

+0

@Pakka,我正在查看默认的“新Java文件”模板,它使用四个独特的子模板。这不是什么大不了的事情。只要确保你的一套模板形成了一个有向的非循环图,你就不会有递归模板问题。 – 2011-08-01 13:12:55

回答

4

是的,实际上,您可以在默认设置中有一个示例。

如果您转到您的首选项 - > Java - >代码样式 - >代码模板,您可以导出所有提供的Java模板。在那里你会看到下面的文件模板(格式化的可读性):

<template 
    autoinsert="true" 
    context="filecomment_context" 
    deleted="false" 
    description="Comment for created Java files" 
    enabled="true" 
    id="org.eclipse.jdt.ui.text.codetemplates.filecomment" 
    name="filecomment"> 
    /** * */ 
</template> 

,有点进一步回落,新型这使得使用该文件模板:

<template 
    autoinsert="true" 
    context="newtype_context" 
    deleted="false" 
    description="Newly created files" 
    enabled="true" 
    id="org.eclipse.jdt.ui.text.codetemplates.newtype" 
    name="newtype"> 
    ${filecomment} ${package_declaration} ${typecomment} ${type_declaration} 
</template> 

因此,如果您想使用另一个模板,基本形式是使用美元符号前缀引用子模板的ID。例如:

<template 
    autoinsert="true" 
    context="BobOuter_context" 
    deleted="false" 
    description="Bob example outer template" 
    enabled="true" 
    id="bob.example.outertemplate" 
    name="BobOuter"> 
    BobOuterBegins Insert inner template ${bob.example.innertemplate} BobOuterEnds 
</template> 

<template 
    autoinsert="true" 
    context="BobInner_context" 
    deleted="false" 
    description="Bob example inner template" 
    enabled="true" 
    id="bob.example.innertemplate" 
    name="BobInner"> 
    BobInnerBegins Super awesome content goes here BobInnerEnds 
</template> 
+0

是否有可能直接在内置模板编辑器中完成此操作? – faintsignal 2016-11-21 21:20:34