Ktlint는 Kotlin 코드 스타일을 검사하고 포맷팅하는 도구로, 협업 시 코드의 일관성을 유지하는 데 유용합니다. Ktlint 1.0 버전부터 기본 설정이 ktlint_official 코드 스타일로 변경되었습니다. 만약 다른 스타일을 사용하고 싶다면, .editorconfig 파일의 ktlint_code_style 속성을 통해 이를 변경할 수 있습니다.

코드 스타일 변경하기

.editorconfig 파일에서 아래와 같이 설정하여 원하는 코드 스타일을 지정할 수 있습니다:

[*.{kt,kts}]
ktlint_code_style = intellij_idea # 또는 android_studio, ktlint_official (기본값)

특정 규칙 비활성화하기

특정 규칙을 비활성화하려면 ktlint_ 접두사와 규칙 세트의 ID를 조합하여 설정하면 됩니다. 예를 들어, ktlint_official 코드 스타일을 사용하면서 standard 규칙 세트의 final-newline 규칙을 비활성화하려면 다음과 같이 설정합니다:

[*.{kt,kts}]
ktlint_code_style = ktlint_official
ktlint_standard_final-newline = disabled

IntelliJ에서 Ktlint 플러그인 활용하기

IntelliJ IDEA를 사용하는 경우, Ktlint 플러그인을 설치하면 규칙 세트 ID와 규칙 이름을 쉽게 확인할 수 있습니다. 플러그인을 설치한 후, Settings > Tools > Ktlint에서 모드를 Manual로 변경하면 코드 스타일이 맞지 않는 경우 관련 정보를 확인할 수 있습니다:

규칙 비활성화 예시

위의 이미지는 IntelliJ에서 표시되는 특정 규칙의 예시입니다. 해당 규칙을 비활성화하려면 .editorconfig 파일에 다음과 같이 추가합니다:

[*.{kt,kts}]
ktlint_standard_no-multi-spaces = disabled

추가 참고 사항

  • 전체 규칙 세트 비활성화: 특정 규칙 세트 전체를 비활성화하려면 아래와 같이 설정할 수 있습니다:
    [*.{kt,kts}]
    ktlint_standard = disabled # 'standard' 규칙 세트 전체 비활성화
    
  • 실험적 규칙 활성화: 실험적 규칙은 기본적으로 비활성화되어 있으며, 명시적으로 활성화해야 사용할 수 있습니다:
    [*.{kt,kts}]
    ktlint_experimental = enabled
    

Pre-commit Hook 및 자동화

Ktlint는 Git pre-commit hook과 통합하여 커밋 전에 자동으로 코드 스타일 검사를 실행할 수 있습니다. Gradle을 사용하는 경우 아래 명령어로 Git Hook을 추가할 수 있습니다:

./gradlew addKtlintCheckGitPreCommitHook

참고 자료

더 자세한 설정 옵션은 KtLint 공식 문서를 참조하세요.