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" >
* ${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" >
* ${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" >
* 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" >
* 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" >
* ClassName: ${type_name} <br/>
* Function: ${todo} ADD FUNCTION. <br/>
* Reason: ${todo} ADD REASON(可选). <br/>
* date: ${date} ${time} <br/>
*
* @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" >
* ${field}:${todo}(用一句话描述这个变量表示什么).
* @since JDK 1.6
*/</template><template autoinsert="false" context="methodcomment_context" deleted="false" description="Comment for non-overriding methods" enabled="true" >
* ${enclosing_method}:(这里用一句话描述这个方法的作用). <br/>
* ${todo}(这里描述这个方法适用条件 – 可选).<br/>
* ${todo}(这里描述这个方法的执行流程 – 可选).<br/>
* ${todo}(这里描述这个方法的使用方法 – 可选).<br/>
* ${todo}(这里描述这个方法的注意事项 – 可选).<br/>
*
* @author ${user}
* ${tags}
* @since JDK 1.6
*/</template><template autoinsert="false" context="overridecomment_context" deleted="false" description="Comment for overriding methods" enabled="true" >
* ${todo} 简单描述该方法的实现功能(可选).
* ${see_to_overridden}
*/</template><template autoinsert="true" context="delegatecomment_context" deleted="false" description="Comment for delegate methods" enabled="true" >
* ${tags}
* ${see_to_target}
*/</template><template autoinsert="false" context="newtype_context" deleted="false" description="Newly created files" enabled="true" >
* 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} <br/>
* Function: ${todo} ADD FUNCTION. <br/>
* Reason: ${todo} ADD REASON. <br/>
* Date: ${date} ${time} <br/>
* @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" >
</template><template autoinsert="true" context="interfacebody_context" deleted="false" description="Code in new interface type bodies" enabled="true" >
</template><template autoinsert="true" context="enumbody_context" deleted="false" description="Code in new enum type bodies" enabled="true" >
</template><template autoinsert="true" context="annotationbody_context" deleted="false" description="Code in new annotation type bodies" enabled="true" >
</template><template autoinsert="true" context="catchblock_context" deleted="false" description="Code in new catch blocks" enabled="true" >
// ${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" >
// ${todo} Auto-generated method stub
${body_statement}</template><template autoinsert="true" context="constructorbody_context" deleted="false" description="Code in created constructor stubs" enabled="true" >
${body_statement}
// ${todo} Auto-generated constructor stub
</template><template autoinsert="true" context="getterbody_context" deleted="false" description="Code in created getters" enabled="true" >${field} = ${param};</template></templates>
设置Code Templates的目的主要是为了统一各种注释的格式以及代码的模板;