[Naem] intellij - checkstyle과 formatter 셋업하기
1. 준비
코드를 다운로드 받는다.
깃허브에서 두 개의 파일을 다운로드 받는다.
naver-intellij-formatter.xmlnaver-checkstyle-rules.xml
파일을 프로젝트 폴더 최상단에 넣어준다.

2. formatter 적용
Intellij의 코드 스타일을 naver-coding-convention 형식으로 변경한다.
Preference-Editor-Code Style-Java에 들어가면 아래 사진처럼 나온다.

- 노란색 동그라미 친 톱니바퀴를 누르고
Import Scheme->IntelliJ IDEA code style XMl을 클릭한다. - 프로젝트에서 아까 다운받은
naver-intellij-formatter.xml을 찾아서 open한다. - 주황색 동그라미에 체크되어 있으면 없애준다. 🌟
Tab size와Indent가 4인걸 확인해주고 OK를 누른다.
formatter 단축키
mac OS 기준으로,
cmd+option+L: code format 맞추기ctrl+option+O: 불필요한 import 제거 및 import 순서 재배치
3. CheckStyle 연동
CheckStyle이란, 이미 만들어진 코드가 “네이버 핵데이 Java 코딩 컨벤션”에 맞게 작성되었는지 검사하는 도구이다.
naver-checkstyle-rules.xml 코드 변경

코드 변경에 앞서서, 만약 위 사진에서 밑줄 친 부분이 빨갛게 뜬다면, option + enter를 눌러서 Fetch external resource를 클릭한다.
이제 코드를 변경해보자.
1) 해당 부분을 찾아서 지워준다.
CheckBox를 적용하지 않을 예외 파일을 설정해주는 모듈인데 필요없다.
<!--- Suppression -->
<module name="SuppressionFilter">
<property name="file" value="${suppressionFile}"/>
<property name="optional" value="true"/>
</module>
2) 해당 부분도 지워준다.
우리는 들여쓰기를 4space 방식을 사용하는데, CheckBox는 기본으로 tab 방식을 지원하기 때문에 이걸 변경하려는 것이다.
<!-- [indentation-tab] -->
<module name="RegexpSinglelineJava">
<property name="format" value="^\t* "/>
<property name="message" value="[indentation-tab] Indent must use tab characters"/>
<property name="ignoreComments" value="true"/>
</module>
3) 이제 tab 방식으로 되어있으면 오류가 표시되는 모듈을 넣어준다.
<module name="FileTabCharacter">
<property name="eachLine" value="true"/>
</module>
그런데 위치가 중요하다!🚨
<module name="TreeWalker">
blabla....
</module>
<module name="FileTabCharacter">
<property name="eachLine" value="true"/>
</module>
이런 식으로 FileTabCharacter를 TreeWalker 바깥에 위치시켜야 한다.
CheckStyle-IDEA 플러그인을 다운로드
Preference - Plugins 에서 CheckStyle-IDEA 플러그인을 다운로드한다.

naver-checkstyle-rules.xml 추가
Preference - Tools - Checkstyle에서 버전을 8.24 이상으로, Scan Scope를 All sources(including tests)로 맞추고,
+ 를 눌러, 위에서 편집해준 naver-checkstyle-rules.xml 를 추가해준다.

CheckStyle 사용 방법
1) intellij에서 원하는 파일에 돌리기

하단의 checkstyle을 누른 뒤에 좌측 초록색 재생 버튼을 누르면, checkstyle에 맞지 않는 부분이 경고로 뜬다.
이 경우에 formatter 단축키인 cmd+option+L을 누르면 자동으로 코드를 알맞게 formatting 해준다.
임포트에 경고가 표시되어 있다면, ctrl+option+O로 재배치 가능하다.
2) commit 시에 checkstyle 검사하기
Ref.
💛 개인 공부 기록용 블로그입니다. 👻