VSCode에서는 Format On Save
라는 간편한 기능으로 저장하는 즉시 코드를 포매팅할 수 있다. 근데 웬걸, Xcode에서 포매팅에 대한 걸 찾아봤는데 스코프에 맞춰 탭해주는 기능밖에 없었다.
세상에, 그러면 협업할 때 코드 컨벤션을 유지하기가 쉽지 않을텐데 이를 어떻게 해결하면 좋을까?
다행히 Realm에서 SwiftLint라는 것을 제공해줘서 build할 때 설정된 컨벤션에 맞추어 warning이나 error를 표시해주고, 옵션에 따라 자동으로 수정해주는 기능까지 갖출 수 있다. 즉, VSCode에서의 Format On Save
의 느낌을 줄 수 있는 것이다!
SwiftLint 사이트로 들어가서 설명을 참고하면서 진행해나가보자. 이 글에서는 brew
를 이용한다.
brew install swiftlint
그 이후에는 스크립트를 작성하는 칸이 나오는데, 다음의 코드를 작성하면 된다.
if which swiftlint >/dev/null; then
swiftlint
else
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi
하지만 필자처럼 homebrew로 설치하였으며, 애플 실리콘 모델의 mac이라면, 다음의 코드를 넣어야한다(단지 export 머시기 문장 하나만 추가된 코드이다).
export PATH="$PATH:/opt/homebrew/bin"
if which swiftlint > /dev/null; then
swiftlint
else
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi
그리고 빌드를 하면..!
엄청난 경고문구가 당신을 맞이할 것이다.
만약 swiftlint의 디폴트 포맷팅에 맞게 자동으로 수정될 수 있는 것을 적용하고 싶다면 swiftlint
대신에 swiftlint --fix && swiftlint
를 작성하면된다.
그러면 오류 269 - 21 = 248개가 수정됐지만, git은 commit해야될 게 산더미같이 늘어나게되므로 되도록 프로젝트 시작할 때 Swiftlint를 적용하자. ^_^..