오늘도 가볍게, 진심 큰 도움이 안되는 팁 하나 공유하고자 합니다.
어찌보면 인텔리J만의 독특한 기능도 아니고, 거의 모든 IDE에 포함되어 있는 기능이기도 한, File Template기능에 대해서 소개하고자 합니다.
어쩌면 진심 제목에 충실한 내용이라 할 수 있겠습니다.
File Template : 특정 파일을 새로 생성할 때 기본적으로 포함되어질 구성을 만들고, 그 구성이 파일 생성시마다 적용되도록 하는 기능입니다.
설정화면
윈도우 & 리눅스 : File > Settings > File and Code Templates
맥 : Preferences > File and Code Templates
설정 화면은 아래와 같습니다.
설정화면에는 총 4개의 탭이 존재합니다.
- Files : 파일 템플릿의 종류를 보여줍니다.
- Includes : 파일템플릿에서 사용될 수 있는 재사용 가능한 템플릿 조각이라고 보시면 됩니다.
- Codes : code-snippets들의 목록입니다.
- Others : 어플리케이션 또는 프래임워크와 연관이 있는 템플릿 목록입니다. 편집은 가능하나 추가 생성은 할 수 없습니다.
주목할 부분은 아마도 두번째 줄이 아닐까 합니다.
#parse 문법은 Include되는 다른 템플릿을 언급하는 부분입니다.
기본 Class의 템플릿에서 #parse("File Header.java")라고 되어 있는데, 이는 Include 탭에 정의된 File Header.java라는 이름의 템플릿 조각을 Include하겠다는 말입니다.
Include탭을 보면 두개의 템플릿 목록이 있고, 그중에 File Header라는 템플릿을 확인하실 수 있습니다.
오른쪽 하단부 (빨간색) 박스에 보면 템플릿에서 사용할 수 있는 일부 변수가 미리 정의되어 있습니다.
뒤 변수에 추가해서 PRODUCT_NAME이라는 변수를 통해서 IDE이름을 사용하실 수 있습니다.
기본 변수 이외에 추가로 변수를 정의하고자 한다면, #set ( $variable_name = value ) 형태로 사용하실 수 있습니다.
일단 위와같이 템플릿을 설정 후 적용한 후, 신규 파일을 생성해보면 아래와 같이 파일이 생성된것을 확인하실 수 있습니다.
새로운 템플릿을 만들고 싶으시면 탭 위에 있는 + 아이콘을 클릭하신 후, 새로이 생성하실 수 있습니다.
문제는 이렇게 하면,처음부터 다 작성해야 한다는 점입니다. 귀찮죠..
개인적으로는 이 방법 보다는 기존 파일에서 템플릿을 만드는 방법이 좋다고 생각이 됩니다.
예를 들어 Spring controller 템플릿으로 쓰일 클래스 파일을 간단하게 만든 후, Tools --> Save File as Template를 선택하면 아래와 같이 설정화면이 나타납니다.
템플릿 파일명을 지정해주시면 되고, 만약에 파일 생성시마다 동적으로 그 값을 지정하고 싶으면 ${variable_name} 형태로 변수만 선언해두시면 됩니다.
위 예시에서 보시면 조금 이상하게 보여지는게 바로 class명에 대한 ${NAME}변수 부분입니다.
사실 MyTestController라는 파일을 생성하기 위해서 사용된 템플릿은 아래와 같습니다.
추측해보자면, 템플릿을 통해서 생성된 파일을가지고 또 다른 템플릿을 만들게 될 경우, include되는 부분을 제외하고는 템플릿 파라미터 부분이 유지된다고 볼 수 있을 듯 싶습니다.
위 예시의 경우, mappingName값에 대해서 파일 생성전에 물어보게 됩니다.
물론 파일 생성시 아래와같이 신규로 생성한 템플릿 명을 목록에서 확인하실 수 있습니다.
커스텀 템플릿인 SpringController를 선택하면 아래와 같이 두개의 입력폼을 가지는 창이 나타납니다.
하나는 파일명이고 나머지 하나는 앞서 설정한 mappingName 변수에 대한 값이라고 보시면 됩니다.
아래와 같이 파일이 생성된 것을 확인하실 수 있습니다.
이상 세상 어느 IDE에나 다 있는 템플릿 기능에 대한 가벼운 팁(?)이었습니다.~!!!
'IDE & Apps > IntelliJ Idea' 카테고리의 다른 글
깃털보다 가벼운 인텔리J 아이디어(IntelliJ Idea) 팁 12 - Yeoman으로 Angular-bower-gulp project 시작하기 (0) | 2016.06.17 |
---|---|
깃털보다 가벼운 인텔리J 아이디어(IntelliJ Idea) 팁 11 - Method Extract (0) | 2016.06.16 |
깃털보다 가벼운 인텔리J 아이디어(IntelliJ Idea) 팁 9 - Show Values Inline (0) | 2016.05.19 |
깃털보다 가벼운 인텔리J 아이디어(IntelliJ Idea) 팁 8 (0) | 2016.05.19 |
깃털보다 가벼운 인텔리J(IntelliJ) IDEA 팁 7 (0) | 2016.05.13 |