명령줄 swiftlint를 통해서만
3637 단어 SwiftLint
Xcode에 설치하는 방법은 여러 가지가 있어요.
X코드에 편입하려면 빌딩의 외피를 바꿔야 하는데...
일부 작업 현장에서git 관리 파일을 추가하고 싶지 않습니다
정적 코드만 해석할 수 있는 방법으로
명령줄만 실행하는 Swiftlint의 요약입니다.
설치하다.
우선 확인공식 사이트하겠습니다.
설치만 할 경우 명령줄에서 다음 명령만 실행하면 설치할 수 있습니다.간단하네.
brew install swiftlint
※ 위의 방법으로 설치하더라도 터미널에 따라 swiftlint를 실행할 때 오류가 발생할 수 있습니다.잘못된 원인에 근거하여 나의 환경에서
MacOS Catallina에서 SwiftLine이 "zsh:illegal hardware instruction" 오류로 인해 사용할 수 없을 때의 대응 방법
참고로 정상적으로 일했습니다.
코드 해석 규칙
코드 해석 규칙(방법·법칙)이 매우 많다.
명령줄에서 다음 명령을 실행할 때 해석된 규칙의 일람을 볼 수 있습니다.
swiftlint rules
와, 많네..
우선 다음 명령은 각 규칙이 무엇을 검사해야 하는지 알 수 있다.
swiftlint rules <確認したいidentifie>
※ 위에서 언급한 것이 네스팅일 경우.
다음은 공식 사이트에 어떤 규칙이 있는지 일람표입니다.
https://realm.github.io/SwiftLint/rule-directory.html
Qiita에서도 내용을 정리한 사람이 있어요.
Swift 버전 4.2
cyclomatic_commplexity (순환 복잡도) 를 확인하고 싶습니다.
기본값은 끄기 (opt-in은 NO) 이기 때문에 이것을 열고 싶습니다.
코드 해석 규칙의 정의
코드 해석 규칙은 다른 파일에 원시 정의를 포함할 수 있습니다.
Xcode에 Swiftlint.yml을 넣은 경우 ".swiftlint.yml"이라는 이름을 사용한 것 같습니다
명령줄에서 실행할 때 정의된 파일 경로를 지정할 수 있기 때문에 무엇이든지 가능합니다.
「.」처음에는 숨겨진 파일이 되기 때문에'swiftlint.yml'이라는 이름을 사용합니다
swiftlint 설치 디스크에 설정되었습니다.
파일 내용은 다음과 같습니다.
# document: https://github.com/realm/SwiftLint
# 無効にするルール
disabled_rules:
- anyobject_protocol
- array_init
・
・
・
# 有効にするルール
opt_in_rules:
- cyclomatic_complexity
- nesting
- function_body_length
・
・
・
# 循環的複雑度
cyclomatic_complexity:
warning: 10
error: 20
・
・
・
disabled_rules: 의 다음 행에서 시작사용하지 않으려는 규칙을 기록합니다.
- 뒤에 비활성화 규칙을 입력합니다.
opt_in_rules: 의 다음 행에서 시작
다음은 유효한 규칙을 보여 줍니다.
그런 다음 유효한 규칙(identifier)을 다음과 같이 기술합니다.
다음 줄부터 이 규칙을 기록하는 옵션입니다.
공식 사이트
나는 어떤 옵션이 있는지 안다.
실행 분석
다음 명령을 실행하면 해석할 수 있습니다.
swiftlint --config <ルールを記載したファイルのパス> --quiet --path <解析したいファイルのパス>
※ - 퀘스트는 실행 로그를 출력하지 않는 옵션입니다.분석 성공했어!
swiftlint --config <ルールを記載したファイルのパス> --quiet
별명으로 설정하면 실행하는 지령이 적어져 편리할 수 있습니다.[Mac] 별명(터미널 명령의 단축키) 설정
Reference
이 문제에 관하여(명령줄 swiftlint를 통해서만), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kph7mgb/items/1de81ec5d479d902004d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)