이클립스 템플릿 만들기
Java Template 수정
- Window -> Preferences -> Java -> Code Style -> Code Template -> Export All… -> 파일 저장
- 파일 수정 후 Import를 통해 반영
- ${user} 변수를 위해 eclipse.ini 파일 수정
- 설정 창에서 Edit 버튼을 통해 개별 Template 수정도 가능
- codetemplates.xml 예시
- 메서드 혹은 클래스 상단에서 “/**” 입력 후 Enter 치면 Template 자동 입력
- alt + shift + j 로 자동 입력
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<templates>
<template autoinsert="true" context="gettercomment_context"
deleted="false" description="Comment for getter method" enabled="true"
id="org.eclipse.jdt.ui.text.codetemplates.gettercomment"
name="gettercomment">/**
* @return the ${bare_field_name}
*/
</template>
<template autoinsert="true" context="settercomment_context"
deleted="false" description="Comment for setter method" enabled="true"
id="org.eclipse.jdt.ui.text.codetemplates.settercomment"
name="settercomment">/**
* @param ${param} the ${bare_field_name} to set
*/
</template>
<template autoinsert="true"
context="constructorcomment_context" deleted="false"
description="Comment for created constructors" enabled="true"
id="org.eclipse.jdt.ui.text.codetemplates.constructorcomment"
name="constructorcomment">/**
* ${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">/**
* @파일명: ${file_name}
* @작성자: ${user}
* @생성일: ${date}
* @설명:
*/
</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">/**
* @파일명: ${file_name}
* @패키지: ${package_name}
* @작성자: ${user}
* @생성일: ${date}
* @설명:
*/
</template>
<template autoinsert="true" context="fieldcomment_context"
deleted="false" description="Comment for fields" enabled="true"
id="org.eclipse.jdt.ui.text.codetemplates.fieldcomment"
name="fieldcomment">/**
*
*/
</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}
* @작성자: ${user}
* @생성일: ${date}
* @설명:
*/
</template>
<template autoinsert="true" context="modulecomment_context"
deleted="false" description="Comment for modules" enabled="true"
id="org.eclipse.jdt.ui.text.codetemplates.modulecomment"
name="modulecomment">/**
* @author ${user}
*
* ${tags}
*/
</template>
<template autoinsert="true" context="overridecomment_context"
deleted="false" description="Comment for overriding methods"
enabled="true"
id="org.eclipse.jdt.ui.text.codetemplates.overridecomment"
name="overridecomment" />
<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">${package_declaration}
${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="recordbody_context"
deleted="false" description="Code in new record type bodies"
enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.recordbody"
name="recordbody">
</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="true" 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>
- eclipse.ini 파일 추가 내용
### template의 user 변수 값 설정
-Duser.name=KimSangMin
### 파일 로드할 때 인코딩 타입 설정(user 변수 한글 깨짐 방지)
-Dfile.encoding=UTF-8
2. JSP Template 수정
- Window -> Preferences -> Web-> Jsp Files -> Editor -> Templates -> 전체 선택 후 -> Export -> 파일 저장
- 파일 수정 후 Import를 통해 반영
- 예시
- JSP 파일에서 “#” 입력 후 JSP scriptelet 선택하면 Template 자동 입력(입력 후 #은 지워야함)
<?xml version="1.0" encoding="UTF-8" standalone="no"?><templates><template autoinsert="true" context="jsp_tag" deleted="false" description="JSP declaration(s) <%!..%>" enabled="true" id="org.eclipse.jst.jsp.ui.templates.jspdeclaration" name="JSP declaration(s)"><%! ${cursor} %></template><template autoinsert="true" context="jsp_all" deleted="false" description="JSP expression <%=..%>" enabled="true" id="org.eclipse.jst.jsp.ui.templates.jspexpression" name="JSP expression"><%= ${cursor} %></template><template autoinsert="true" context="jsp_tag" deleted="false" description="JSP hidden comment <%-- --%>" enabled="true" id="org.eclipse.jst.jsp.ui.templates.jsphiddencomment" name="JSP hidden comment"><%-- ${cursor} --%></template><template autoinsert="true" context="jsp_tag" deleted="false" description="JSP include directive" enabled="true" id="org.eclipse.jst.jsp.ui.templates.jspincludedirective" name="JSP include directive"><%@ include file="${cursor}" %></template><template autoinsert="true" context="jsp_tag" deleted="false" description="JSP page directive" enabled="true" id="org.eclipse.jst.jsp.ui.templates.jsppagedirective" name="JSP page directive"><%@ page contentType="text/html; charset=${encoding}" %></template><template autoinsert="true" context="jsp_tag" deleted="false" description="JSP scriptlet <%..%>" enabled="true" id="org.eclipse.jst.jsp.ui.templates.jspscriptlet" name="JSP scriptlet"><%
/**
* @화면명:
* @작성자: ${user}
* @생성일: ${date} ${time}
* @설명:
**/
%></template><template autoinsert="true" context="jsp_tag" deleted="false" description="JSP taglib directive" enabled="true" id="org.eclipse.jst.jsp.ui.templates.jsptaglibdirective" name="JSP taglib directive"><%@ taglib uri="${uri}" prefix="${cursor}" %></template><template autoinsert="true" context="jsp_new" deleted="false" description="JSP with html markup and default view setup" enabled="true" id="org.eclipse.jst.jsf.ui.new_jsf_page_html" name="New JavaServer Faces (JSF) Page (html)"><%@ page language="java" contentType="text/html; charset=${encoding}" pageEncoding="${encoding}"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=${encoding}">
<title>Insert title here</title>
</head>
<body>
<f:view>
${cursor}
</f:view>
</body>
</html></template><template autoinsert="true" context="jsp_new" deleted="false" description="JSP with xhtml markup, xml style syntax and default view setup" enabled="true" id="org.eclipse.jst.jsf.ui.new_jsf_page_html_xhtml_xmllsyntax" name="New JavaServer Faces (JSF) Page (xhtml, xml syntax)"><?xml version="1.0" encoding="${encoding}" ?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" version="2.0">
<jsp:directive.page language="java"
contentType="text/html; charset=${encoding}" pageEncoding="${encoding}" />
<jsp:text>
<![CDATA[ <?xml version="1.0" encoding="${encoding}" ?> ]]>
</jsp:text>
<jsp:text>
<![CDATA[ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ]]>
</jsp:text>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=${encoding}" />
<title>Insert title here</title>
</head>
<body>
<f:view>
${cursor}
</f:view>
</body>
</html>
</jsp:root></template><template autoinsert="true" context="jsp_new" deleted="false" description="JSP with xhtml markup and default view setup" enabled="true" id="org.eclipse.jst.jsf.ui.new_jsf_page_xhtml" name="New JavaServer Faces (JSF) Page (xhtml)"><?xml version="1.0" encoding="${encoding}" ?>
<%@ page language="java" contentType="text/html; charset=${encoding}"
pageEncoding="${encoding}"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=${encoding}" />
<title>Insert title here</title>
</head>
<body>
<f:view>
${cursor}
</f:view>
</body>
</html></template><template autoinsert="true" context="jsp_attribute_value" deleted="false" description="Create a new attribute value with #{}" enabled="true" id="org.eclipse.jst.jsf.ui.newelexpression" name="New JSF EL Expression">"#{${cursor}}"</template><template autoinsert="true" context="jsp_new" deleted="false" description="JSP with html 4.01 markup" enabled="true" id="org.eclipse.jst.jsp.ui.templates.jsphtml" name="New JSP File (html 4.01)"><%@ page language="java" contentType="text/html; charset=${encoding}"
pageEncoding="${encoding}"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=${encoding}">
<title>Insert title here</title>
</head>
<body>
${cursor}
</body>
</html></template><template autoinsert="true" context="jsp_new" deleted="false" description="JSP with html 5 markup" enabled="true" id="org.eclipse.jst.jsp.ui.templates.jsphtml5" name="New JSP File (html 5)"><%@ page language="java" contentType="text/html; charset=${encoding}"
pageEncoding="${encoding}"%>
<!DOCTYPE html>
<%
/**
* @화면명:
* @작성자: ${user}
* @생성일: ${date} ${time}
* @설명:
**/
%>
<html>
<head>
<meta charset="${encoding}">
<title>Insert title here</title>
</head>
<body>
${cursor}
</body>
</html></template><template autoinsert="true" context="jsp_new" deleted="false" description="JSP with JSP 2.0 specific tags, xhtml markup and xml style syntax" enabled="true" id="org.eclipse.jst.jsp.ui.templates.jsp20xhtmlxml" name="New JSP File (xhtml, xml syntax, JSP 2.0)"><?xml version="1.0" encoding="${encoding}" ?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
<jsp:directive.page contentType="text/html; charset=${encoding}"
pageEncoding="${encoding}" session="false"/>
<jsp:output doctype-root-element="html"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
omit-xml-declaration="true" />
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Insert title here</title>
</head>
<body>
${cursor}
</body>
</html>
</jsp:root></template><template autoinsert="true" context="jsp_new" deleted="false" description="JSP with xhtml markup and xml style syntax" enabled="true" id="org.eclipse.jst.jsp.ui.templates.jspxhtmlxml" name="New JSP File (xhtml, xml syntax)"><?xml version="1.0" encoding="${encoding}" ?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
<jsp:directive.page language="java"
contentType="text/html; charset=${encoding}" pageEncoding="${encoding}" />
<jsp:text>
<![CDATA[ <?xml version="1.0" encoding="${encoding}" ?> ]]>
</jsp:text>
<jsp:text>
<![CDATA[ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ]]>
</jsp:text>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=${encoding}" />
<title>Insert title here</title>
</head>
<body>
${cursor}
</body>
</html>
</jsp:root></template><template autoinsert="true" context="jsp_new" deleted="false" description="JSP with xhtml markup" enabled="true" id="org.eclipse.jst.jsp.ui.templates.jspxhtml" name="New JSP File (xhtml)"><?xml version="1.0" encoding="${encoding}" ?>
<%@ page language="java" contentType="text/html; charset=${encoding}"
pageEncoding="${encoding}"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=${encoding}" />
<title>Insert title here</title>
</head>
<body>
${cursor}
</body>
</html></template><template autoinsert="true" context="tag_new" deleted="false" description="New JSP Tag File" enabled="true" id="org.eclipse.jst.jsp.ui.templates.simpletag" name="New Tag File"><%@ tag language="java" pageEncoding="${encoding}"%>
</template><template autoinsert="true" context="tag_new" deleted="false" description="New JSP TagX File" enabled="true" id="org.eclipse.jst.jsp.ui.templates.simpletagx" name="New TagX File"><jsp:directive.tag language="java" pageEncoding="${encoding}"/>
</template><template autoinsert="true" context="jsp_tag" deleted="false" description="Tag attribute directive" enabled="true" id="org.eclipse.jst.jsp.ui.templates.jspattributedirective" name="Tag attribute directive"><%@ attribute name="${cursor}" description="" required="false" type="" %></template><template autoinsert="true" context="jsp_tag" deleted="false" description="Tag file tag directive" enabled="true" id="org.eclipse.jst.jsp.ui.templates.jsptagdirective" name="Tag file tag directive"><%@ tag display-name="${cursor}" description="" small-icon="" %></template><template autoinsert="true" context="jsp_tag" deleted="false" description="Tag variable directive" enabled="true" id="org.eclipse.jst.jsp.ui.templates.jspvariabledirective" name="Tag variable directive"><%@ variable variable-class="${cursor}" description="" %></template></templates>
3. Javascript Template 수정
- Window -> Preferences -> Web-> Client-side JavaScript -> Code Templates -> Export All… -> 파일 저장
- 파일 수정 후 Import를 통해 수정된 템플릿 반영
- 설정 창에서 Edit 버튼을 통해 개별 Template 수정도 가능
- Template 예시
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<templates>
<template autoinsert="true"
context="org.eclipse.jsdt.gettercomment_context" deleted="false"
description="Comment for getter function" enabled="true"
id="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment"
name="gettercomment">/**
* @return the ${bare_field_name}
*/
</template>
<template autoinsert="true"
context="org.eclipse.jsdt.settercomment_context" deleted="false"
description="Comment for setter function" enabled="true"
id="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment"
name="settercomment">/**
* @param ${param} the ${bare_field_name} to set
*/
</template>
<template autoinsert="true"
context="org.eclipse.jsdt.constructorcomment_context" deleted="false"
description="Comment for created constructors" enabled="true"
id="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment"
name="constructorcomment">/**
* ${tags}
*/
</template>
<template autoinsert="false"
context="org.eclipse.jsdt.filecomment_context" deleted="false"
description="Comment for created JavaScript files" enabled="true"
id="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment"
name="filecomment">/**
* @파일명: ${file_name}
* @작성자: ${user}
* @생성일: ${date} ${time}
* @설명:
*/
</template>
<template autoinsert="false"
context="org.eclipse.jsdt.typecomment_context" deleted="false"
description="Comment for created types" enabled="true"
id="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment"
name="typecomment">/**
* @작성자: ${user}
* @생성일: ${date} ${time}
* ${tags}
*/
</template>
<template autoinsert="true"
context="org.eclipse.jsdt.fieldcomment_context" deleted="false"
description="Comment for vars" enabled="true"
id="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment"
name="fieldcomment">/**
*
*/
</template>
<template autoinsert="false"
context="org.eclipse.jsdt.methodcomment_context" deleted="false"
description="Comment for non-overriding function" enabled="true"
id="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment"
name="methodcomment">/**
* @작성자: ${user}
* @생성일: ${date} ${time}
* ${tags}
*/
</template>
<template autoinsert="true"
context="org.eclipse.jsdt.overridecomment_context" deleted="false"
description="Comment for overriding functions" enabled="true"
id="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment"
name="overridecomment">/* (non-JSDoc)
* ${see_to_overridden}
*/
</template>
<template autoinsert="true"
context="org.eclipse.jsdt.delegatecomment_context" deleted="false"
description="Comment for delegate functions" enabled="true"
id="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment"
name="delegatecomment">/**
* ${tags}
* ${see_to_target}
*/
</template>
<template autoinsert="true"
context="org.eclipse.jsdt.newtype_context" deleted="false"
description="Newly created files" enabled="true"
id="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name="newtype">${filecomment}
${package_declaration}
${typecomment}
${type_declaration}
</template>
<template autoinsert="true"
context="org.eclipse.jsdt.catchblock_context" deleted="false"
description="Code in new catch blocks" enabled="true"
id="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock"
name="catchblock">// ${todo} Auto-generated catch block</template>
<template autoinsert="false"
context="org.eclipse.jsdt.methodbody_context" deleted="false"
description="Code in created function stubs" enabled="true"
id="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody"
name="methodbody">// ${todo} Auto-generated function stub
${body_statement}
</template>
<template autoinsert="true"
context="org.eclipse.jsdt.constructorbody_context" deleted="false"
description="Code in created constructor stubs" enabled="true"
id="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody"
name="constructorbody">${body_statement}
// ${todo} Auto-generated constructor stub
</template>
<template autoinsert="true"
context="org.eclipse.jsdt.getterbody_context" deleted="false"
description="Code in created getters" enabled="true"
id="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody"
name="getterbody">return ${field};</template>
<template autoinsert="true"
context="org.eclipse.jsdt.setterbody_context" deleted="false"
description="Code in created setters" enabled="true"
id="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody"
name="setterbody">${field} = ${param};</template>
</templates>
4. CSS Template 수정
- Window -> Preferences -> Web-> CSS Files -> Editor -> Templates -> [New CSS File] 선택 -> Edit로 수정
- New CSS File 작성 예시
@charset "${encoding}";
/**
* @파일명: ${file_name}
* @작성자: ${user}
* @생성일: ${date} ${time}
* @설명:
*/