Eclipse编码规范——Code Templates设置

Posted 整合侠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Eclipse编码规范——Code Templates设置相关的知识,希望对你有一定的参考价值。

Eclipse编码规范——Code Templates设置

Eclipse编码规范主要包括三个方面:设置Code Templates、Eclipse formatter、Checkstyle,

本篇主要介绍如何设置Code Templates,具体步骤如下:

打开Window->Preferences->Java->Code Style->Code Templates:

我们可以看到Eclipse Code Templates界面中间Configure generated code and comments区域包含了两个菜单树:Comment、Code,

Comments代表注释模板,Code代表代码模板,其中每一个子菜单代表子项的模板。

当我们点击Comments下的Files子菜单时,下面的Pattern会显示Java文件的头部注释。

下面详细列出每一个子项的模板格式:

Comments-->Files(Java文件注释)

/** 
 * Project Name:${project_name} 
 * File Name:${file_name} 
 * Package Name:${package_name} 
 * Date:${date}${time} 
 * Copyright (c) ${year} All Rights Reserved. 
 * 
 */  

Comments-->Types(Java类注释)

/** 
 * ClassName: ${type_name} <br/> 
 * Function: ${todo} ADD FUNCTION. <br/> 
 * Reason: ${todo} ADD REASON <br/> 
 * date: ${date} ${time} <br/> 
 * 
 * @author lizm
 * @version ${enclosing_type}${tags} 
 * @since JDK 1.6 
 */  

Comments-->Fields(类字段注释)

/** 
 * ${field}:${todo}
 * @since JDK 1.6 
 */  

Comments-->Constructors(构造函数注释)

/** 
 * Creates a new instance of ${enclosing_type}. 
 * 
 * ${tags} 
 */  

Comments-->Methods(Java方法注释)

/** 
 * ${enclosing_method}:(这里用一句话描述这个方法的作用)
 * ${todo}(这里描述这个方法适用条件 – 可选)
 * ${todo}(这里描述这个方法的执行流程 – 可选)
 * ${todo}(这里描述这个方法的使用方法 – 可选)
 * ${todo}(这里描述这个方法的注意事项 – 可选) 
 * 
 * @author ${user} 
 * ${tags} 
 * @since JDK 1.6 
 */ 

Comments-->Overriding methods(重写方法注释)

/** 
 * ${todo} 简单描述该方法的实现功能(可选). 
 * ${see_to_overridden} 
 */  

Comments-->Delegate methods(代理方法注释)

/** 
 * ${tags} 
 * ${see_to_target} 
 */  

Comments-->Getters(Java Getter方法注释)

/** 
 * ${bare_field_name}. 
 * 
 * @return  the ${bare_field_name} 
 * @since   JDK 1.6 
 */  

Comments-->Setters(Java Setters方法注释)

/** 
 * ${param}. 
 * 
 * @param   ${param}    the ${bare_field_name} to set 
 * @since   JDK 1.6 
 */  

Code-->New Java files(新建java文件代码模板/**

 * Project Name:${project_name} 
 * File Name:${file_name} 
 * Package Name:${package_name} 
 * Date:${date}${time} 
 * Copyright (c) ${year}, chenzhou1025@126.com All Rights Reserved. 
 * 
*/  
${filecomment}  
  
${package_declaration}  
/** 
 * ClassName:${type_name}
 * Function: ${todo} 
 * Reason:   ${todo}  
 * Date:     ${date} ${time} 
 * @author   ${user}   
 * @since    JDK 1.6 
 *       
 */  
${typecomment}  
${type_declaration} 

Code-->Method body(方法体模板)

// ${todo} Auto-generated method stub  
${body_statement}  

Code-->Constructor body(构造函数模板)

${body_statement}  
// ${todo} Auto-generated constructor stub  

Code-->Getter body(字段Getter方法模板)

return ${field};  

Code-->Setter body(字段Setter方法模板)

${field} = ${param}; 

Code-->Catch block body(异常catch代码块模板)  

// ${todo} Auto-generated catch block  
${exception_var}.printStackTrace();  

还有一种方式就是直接导入设置好的模版文件codetemplates.xml,

其中codetemplates.xml内容如下:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><templates><template autoinsert="false" context="gettercomment_context" deleted="false" description="Comment for getter method" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name="gettercomment">/**  
 * ${bare_field_name}.  
 *  
 * @return  the ${bare_field_name}  
 * @since   JDK 1.6  
 */</template><template autoinsert="false" context="settercomment_context" deleted="false" description="Comment for setter method" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.settercomment" name="settercomment">/**  
 * ${param}.  
 *  
 * @param   ${param}    the ${bare_field_name} to set  
 * @since   JDK 1.6  
 */</template><template autoinsert="false" context="constructorcomment_context" deleted="false" description="Comment for created constructors" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name="constructorcomment">/**  
 * Creates a new instance of ${enclosing_type}.  
 *  
 * ${tags}  
 */  
</template><template autoinsert="false" context="filecomment_context" deleted="false" description="Comment for created Java files" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.filecomment" name="filecomment">/**  
 * Project Name:${project_name}  
 * File Name:${file_name}  
 * Package Name:${package_name}  
 * Date:${date}${time}  
 * Copyright (c) ${year}, chenzhou1025@126.com All Rights Reserved.  
 *  
 */</template><template autoinsert="false" context="typecomment_context" deleted="false" description="Comment for created types" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.typecomment" name="typecomment">/**  
 * ClassName: ${type_name} &lt;br/&gt;  
 * Function: ${todo} ADD FUNCTION. &lt;br/&gt;  
 * Reason: ${todo} ADD REASON(可选). &lt;br/&gt;  
 * date: ${date} ${time} &lt;br/&gt;  
 *  
 * @author ${user}  
 * @version ${enclosing_type}${tags}  
 * @since JDK 1.6  
 */</template><template autoinsert="false" context="fieldcomment_context" deleted="false" description="Comment for fields" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name="fieldcomment">/**  
 * ${field}:${todo}(用一句话描述这个变量表示什么).  
 * @since JDK 1.6  
 */</template><template autoinsert="false" context="methodcomment_context" deleted="false" description="Comment for non-overriding methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name="methodcomment">/**  
 * ${enclosing_method}:(这里用一句话描述这个方法的作用). &lt;br/&gt;  
 * ${todo}(这里描述这个方法适用条件 – 可选).&lt;br/&gt;  
 * ${todo}(这里描述这个方法的执行流程 – 可选).&lt;br/&gt;  
 * ${todo}(这里描述这个方法的使用方法 – 可选).&lt;br/&gt;  
 * ${todo}(这里描述这个方法的注意事项 – 可选).&lt;br/&gt;  
 *  
 * @author ${user}  
 * ${tags}  
 * @since JDK 1.6  
 */</template><template autoinsert="false" context="overridecomment_context" deleted="false" description="Comment for overriding methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name="overridecomment">/**  
 * ${todo} 简单描述该方法的实现功能(可选).  
 * ${see_to_overridden}  
 */</template><template autoinsert="true" context="delegatecomment_context" deleted="false" description="Comment for delegate methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name="delegatecomment">/**  
 * ${tags}  
 * ${see_to_target}  
 */</template><template autoinsert="false" context="newtype_context" deleted="false" description="Newly created files" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.newtype" name="newtype">/**  
 * Project Name:${project_name}  
 * File Name:${file_name}  
 * Package Name:${package_name}  
 * Date:${date}${time}  
 * Copyright (c) ${year}, chenzhou1025@126.com All Rights Reserved.  
 *  
*/  
${filecomment}  
  
${package_declaration}  
/**  
 * ClassName:${type_name} &lt;br/&gt;  
 * Function: ${todo} ADD FUNCTION. &lt;br/&gt;  
 * Reason:   ${todo} ADD REASON. &lt;br/&gt;  
 * Date:     ${date} ${time} &lt;br/&gt;  
 * @author   ${user}  
 * @version    
 * @since    JDK 1.6  
 * @see        
 */  
${typecomment}  
${type_declaration}  
</template><template autoinsert="true" context="classbody_context" deleted="false" description="Code in new class type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.classbody" name="classbody">  
</template><template autoinsert="true" context="interfacebody_context" deleted="false" description="Code in new interface type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name="interfacebody">  
</template><template autoinsert="true" context="enumbody_context" deleted="false" description="Code in new enum type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.enumbody" name="enumbody">  
</template><template autoinsert="true" context="annotationbody_context" deleted="false" description="Code in new annotation type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name="annotationbody">  
</template><template autoinsert="true" context="catchblock_context" deleted="false" description="Code in new catch blocks" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.catchblock" name="catchblock">  
// ${todo} Auto-generated catch block  
${exception_var}.printStackTrace();  
</template><template autoinsert="false" context="methodbody_context" deleted="false" description="Code in created method stubs" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.methodbody" name="methodbody">  
// ${todo} Auto-generated method stub  
${body_statement}</template><template autoinsert="true" context="constructorbody_context" deleted="false" description="Code in created constructor stubs" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name="constructorbody">  
${body_statement}  
// ${todo} Auto-generated constructor stub  
</template><template autoinsert="true" context="getterbody_context" deleted="false" description="Code in created getters" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.getterbody" name="getterbody">return ${field};</template><template autoinsert="true" context="setterbody_context" deleted="false" description="Code in created setters" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.setterbody" name="setterbody">${field} = ${param};</template></templates>  

设置Code Templates的目的主要是为了统一各种注释的格式以及代码的模板;

 

以上是关于Eclipse编码规范——Code Templates设置的主要内容,如果未能解决你的问题,请参考以下文章

VS Code 扩展巡礼 - phpcs:提升 PHP 编码规范

java04eclipse常见设置和java的第一个程序命名规范编码规范

Eclipse-Java代码规范和质量检查插件-Checkstyle

MyEclipse,Eclipse注释规范模板

安卓的编码规范

Eclipse 中的 Code Igniter 2.1 自动完成/智能感知