무지를 아는 것이 곧 앎의 시작

Java

IntelliJ(인텔리제이) 커스텀 자동완성 템플릿 만들기 - Live Template

Alex96 2022. 2. 18. 02:37

자바 언어 쓰시는 분들 IDE 인텔리제이로 많이들 쓰시죠

최근 인프런에서 김영한님 JPA 강의 보고 있는데 인텔리제이의 Live Template으로 커스텀 자동완성 템플릿을 만들 수 있다고 하더라구요. (그래놓고 만드는 법은 안가르쳐주셨다..🤣) 궁금해서 바로 만들어봤습니다.

 

개발하다 보면 특정 패턴을 반복해서 코딩해야할 때가 있습니다.

자바 언어같은 경우 코드가 대체로 길게 나오기 때문에 이런 상황에 귀찮음이 많이 발생하구요,

인텔리제이에서 자바언어를 쓰신다면 기본적으로 psvm, sout 등 자동완성 템플릿을 지원하고 있습니다.

그런 템플릿들을 자동완성 명령어로 지정해두고 쓰면 너무 편하겠죠

 

그럼 만드는 법 알아봅시다.

 

일단 상단 메뉴에서 File > Settings 눌러서 키구요. (mac은 Preferences)

아래 그림 순서대로 하시면 돼요.

  1. Live Templates 검색
  2. Live Templates 클릭
  3. user 선택 (혹은 custom) (그냥 Java에 추가해도 됩니다)
  4. 우측에 + 버튼 클릭
  5. Live Template 클릭

순서대로 진행하면 다음같은 창이 뜹니다.

 

 

Abbreviation에 명령어를 적구요, 옆에 설명은 넣고 싶으시면 넣으시고 비워두셔도 돼요.

밑에 템플릿이 중요한데요. 명령어로 만들고싶은 코드를 치시면 됩니다.

@Test
@DisplayName("$TEST_NAME$")
void $METHOD_NAME$() {
    $END$
}

저는 위의 모양으로 채웠습니다. 테스트 코드를 짤 때 쓸거거든요.

$$으로 감싸면 그게 템플릿에선 변수가 됩니다.

단축키로 템플릿을 활성화 시켰을 때 순서대로 그 위치로 커서가 떨어져요.

$END$는 무조건 마지막에 커서가 떨어지는 위치입니다!

그 다음은 어디에서 저 명령어를 사용할 수 있게 할지 체크하면 되는데요,

위 사진대로 진행하면 됩니다. 저는 테스트 케이스를 추가할 때 쓰는 거니 Declaration에만 체크를 했어요.

 

그럼 사용해볼까요 ㅎㅎ

명령어가 인식된다.
템플릿에서 지정한 변수 위치에 커서가 떨어짐

 

이제 전 test + tab으로 빠르게 테스트 메서드를 추가할 수 있게 되었네요 ㅎㅎ

하나가지고 아쉬우니 하나 더 해봅니다. 저는 Lombok을 쓰면 @Slf4j 써서 로깅을 하는데요

sout, soutv, soutp 이런걸 못 쓰고 직접 다 log.info("~~~~~")  이렇게 쓰다 보니까 답답하더라구요.

 

템플릿 코드는

log.info("$END$");

이렇게 가구요, 명령어는 logi로 하겠습니다. 명령어 범위는 Java > expression 선택 했습니다.

그다음 logi + tab 하면?!

이건 뭐야

응..? 너 말구... 이건 제가 만든 친구가 아니에요...😳

두 번째 친구!

밑에 있는 친구가 제가 만든거네요. 저거 눌러보겠습니다.

잘 나오네요커서도 딱 저 쌍따옴표 사이에 떨어졌어요 ㅎㅎ..

앞으로 개발하다 반복해서 쓸만한 패턴이 있으면 추가하면서 써야겠습니다. 인텔리제이 짱짱😆

 

추가) 저 위에 나오는 logi는 인텔리제이에서 기본으로 등록해놓은 라이브 템플릿입니다. 체크 풀어주면 나오지 않아요.

전 인텔리제이에서 안드로이드 코딩을 하지 않으니 전부 풀겠습니다.