Swift 정적 해결을 위해 Swift Line 설치
8986 단어 Swift
설치하다.
공식 페이지에 두었기 때문에 생략합니다.
Tailor와 차이가 별로 없고 Homebrew에 가입하면 간단합니다.
Xcode 구축 시 SwiftLight 검사를 수행할 수 있음
Tailor 때와 마찬가지로 Build Phase에 스크립트를 기록할 수 있습니다.
Build Phase의 New Run Script Phase
스크립트 이름을 SwiftLint
로 설정하고 다음 내용을 기록합니다.if which swiftlint >/dev/null; then
swiftlint
else
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi
이렇게 된 느낌.
Tailor와 거의 동일한 단계입니다.
실행
설정이 되어 있어야 하기 때문에 구축을 시도해 봅시다
잘 돌아가고 있지만 경고뿐 아니라 오류도 발생했다.
※ Tailor는 14가지 워닝의 소스
아무래도 훌륭하다고 생각했어.그래서 홈페이지를 봤는데 90여 개규칙.가 있었어요.
규칙이 많다고 해서 좋은 것은 아니다.
SwiftLitt도 Tailor와 마찬가지로 yml 파일에서 규칙을 상세하게 설정할 수 있습니다.
규칙 설정
이것도 Tailor와 거의 같은 순서로 하면 됩니다.
xcodeproject 파일과 같은 차원에서 만들기 .swiftlint.yml
를 통해 실현할 수 있습니다.
Tailor를 시험해 봤기 때문에 일이 순조롭게 진행되고 있습니다.
만들지 않음.swiftlint.yml
이런 느낌을 만듭니다.기본 검사 상태
다음 명령을 통해 기본 설정을 확인할 수 있습니다$ swiftlint rules
기본 주석도 잘못되었습니다.한 행이 120자 이내가 아니면 오류가 발생합니다.
상기 상황을 피하기 위해 제작.swiftlint.yml
하고 다음과 같은 내용을 기재한다.# 実行から除外するルール
disabled_rules:
# テストコード、Pod等のライブラリは対象外
excluded:
- Pods/
- Podfile
- Podfile.lock
# 1行あたりの文字数制限
line_length: 300
행당 문자 수 제한을 완화한 후 line_length: 300
이렇게 잘못이 사라졌다.
남은 두 가지 실수를 없애 보아라.
(정말 경고가 필요 없는 것은 또 다른 문제다.)# 実行から除外するルール
disabled_rules:
- trailing_whitespace
- vertical_whitespace
- trailing_newline
# テストコード、Pod等のライブラリは対象外
excluded:
- Pods/
- Podfile
- Podfile.lock
# 1行あたりの文字数制限
line_length: 300
구축해 보았더니 커닝도 무사히 사라졌다.
이렇게 원본 파일에 기술하면 일부 오류도 배제할 수 있다 func applicationWillResignActive(_ application: UIApplication) {
// swiftlint:disable:next line_length
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
// swiftlint:disable:previous line_length
}
요점은 대상// swiftlint:disable:next ルール
, // swiftlint:disable:previous ルール
으로 대상을 포위하는 것이다.
이번에는 규칙에서 한 줄의 글자수 제한을 배제해 보았다. // swiftlint:disable:next line_length
****
// swiftlint:disable:previous line_length
안전 검사가 없어서 오류가 사라졌어요.
그나저나 // swiftlint:disable line_length
처럼 한 줄만 둘러싸지 않고 쓰면 기재된 곳은 앞으로 규칙이 적용되지 않는다.
스위프트라이트를 만진 소감.
규칙, 수치 등을 상세히 설정할 수도 있고 자신만의 규칙을 만들 수도 있는데, 규칙을 좀 더 상세히 결정하려면 스위프트라이트가 좋다.
쓸 수 있을 것 같은 냄새가 나니까 규칙을 확인해 봐.
규칙 정보
혼자 정리하고 싶지만 아주 좋은 정리가 있으니 참고하세요.
링크 대상 샘플,opt-inrules에 댓글 출력이 적혀 있으면 사용하기 쉽죠.
Tailor 때와 마찬가지로 Build Phase에 스크립트를 기록할 수 있습니다.
Build Phase의 New Run Script Phase
스크립트 이름을
SwiftLint
로 설정하고 다음 내용을 기록합니다.if which swiftlint >/dev/null; then
swiftlint
else
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi
이렇게 된 느낌.Tailor와 거의 동일한 단계입니다.
실행
설정이 되어 있어야 하기 때문에 구축을 시도해 봅시다
잘 돌아가고 있지만 경고뿐 아니라 오류도 발생했다.
※ Tailor는 14가지 워닝의 소스
아무래도 훌륭하다고 생각했어.그래서 홈페이지를 봤는데 90여 개규칙.가 있었어요.
규칙이 많다고 해서 좋은 것은 아니다.
SwiftLitt도 Tailor와 마찬가지로 yml 파일에서 규칙을 상세하게 설정할 수 있습니다.
규칙 설정
이것도 Tailor와 거의 같은 순서로 하면 됩니다.
xcodeproject 파일과 같은 차원에서 만들기 .swiftlint.yml
를 통해 실현할 수 있습니다.
Tailor를 시험해 봤기 때문에 일이 순조롭게 진행되고 있습니다.
만들지 않음.swiftlint.yml
이런 느낌을 만듭니다.기본 검사 상태
다음 명령을 통해 기본 설정을 확인할 수 있습니다$ swiftlint rules
기본 주석도 잘못되었습니다.한 행이 120자 이내가 아니면 오류가 발생합니다.
상기 상황을 피하기 위해 제작.swiftlint.yml
하고 다음과 같은 내용을 기재한다.# 実行から除外するルール
disabled_rules:
# テストコード、Pod等のライブラリは対象外
excluded:
- Pods/
- Podfile
- Podfile.lock
# 1行あたりの文字数制限
line_length: 300
행당 문자 수 제한을 완화한 후 line_length: 300
이렇게 잘못이 사라졌다.
남은 두 가지 실수를 없애 보아라.
(정말 경고가 필요 없는 것은 또 다른 문제다.)# 実行から除外するルール
disabled_rules:
- trailing_whitespace
- vertical_whitespace
- trailing_newline
# テストコード、Pod等のライブラリは対象外
excluded:
- Pods/
- Podfile
- Podfile.lock
# 1行あたりの文字数制限
line_length: 300
구축해 보았더니 커닝도 무사히 사라졌다.
이렇게 원본 파일에 기술하면 일부 오류도 배제할 수 있다 func applicationWillResignActive(_ application: UIApplication) {
// swiftlint:disable:next line_length
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
// swiftlint:disable:previous line_length
}
요점은 대상// swiftlint:disable:next ルール
, // swiftlint:disable:previous ルール
으로 대상을 포위하는 것이다.
이번에는 규칙에서 한 줄의 글자수 제한을 배제해 보았다. // swiftlint:disable:next line_length
****
// swiftlint:disable:previous line_length
안전 검사가 없어서 오류가 사라졌어요.
그나저나 // swiftlint:disable line_length
처럼 한 줄만 둘러싸지 않고 쓰면 기재된 곳은 앞으로 규칙이 적용되지 않는다.
스위프트라이트를 만진 소감.
규칙, 수치 등을 상세히 설정할 수도 있고 자신만의 규칙을 만들 수도 있는데, 규칙을 좀 더 상세히 결정하려면 스위프트라이트가 좋다.
쓸 수 있을 것 같은 냄새가 나니까 규칙을 확인해 봐.
규칙 정보
혼자 정리하고 싶지만 아주 좋은 정리가 있으니 참고하세요.
링크 대상 샘플,opt-inrules에 댓글 출력이 적혀 있으면 사용하기 쉽죠.
이것도 Tailor와 거의 같은 순서로 하면 됩니다.
xcodeproject 파일과 같은 차원에서 만들기
.swiftlint.yml
를 통해 실현할 수 있습니다.Tailor를 시험해 봤기 때문에 일이 순조롭게 진행되고 있습니다.
만들지 않음
.swiftlint.yml
이런 느낌을 만듭니다.기본 검사 상태다음 명령을 통해 기본 설정을 확인할 수 있습니다
$ swiftlint rules
기본 주석도 잘못되었습니다.한 행이 120자 이내가 아니면 오류가 발생합니다.
상기 상황을 피하기 위해 제작
.swiftlint.yml
하고 다음과 같은 내용을 기재한다.# 実行から除外するルール
disabled_rules:
# テストコード、Pod等のライブラリは対象外
excluded:
- Pods/
- Podfile
- Podfile.lock
# 1行あたりの文字数制限
line_length: 300
행당 문자 수 제한을 완화한 후 line_length: 300
이렇게 잘못이 사라졌다.
남은 두 가지 실수를 없애 보아라.
(정말 경고가 필요 없는 것은 또 다른 문제다.)
# 実行から除外するルール
disabled_rules:
- trailing_whitespace
- vertical_whitespace
- trailing_newline
# テストコード、Pod等のライブラリは対象外
excluded:
- Pods/
- Podfile
- Podfile.lock
# 1行あたりの文字数制限
line_length: 300
구축해 보았더니 커닝도 무사히 사라졌다.이렇게 원본 파일에 기술하면 일부 오류도 배제할 수 있다
func applicationWillResignActive(_ application: UIApplication) {
// swiftlint:disable:next line_length
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
// swiftlint:disable:previous line_length
}
요점은 대상// swiftlint:disable:next ルール
, // swiftlint:disable:previous ルール
으로 대상을 포위하는 것이다.이번에는 규칙에서 한 줄의 글자수 제한을 배제해 보았다.
// swiftlint:disable:next line_length
****
// swiftlint:disable:previous line_length
안전 검사가 없어서 오류가 사라졌어요.
그나저나
// swiftlint:disable line_length
처럼 한 줄만 둘러싸지 않고 쓰면 기재된 곳은 앞으로 규칙이 적용되지 않는다.스위프트라이트를 만진 소감.
규칙, 수치 등을 상세히 설정할 수도 있고 자신만의 규칙을 만들 수도 있는데, 규칙을 좀 더 상세히 결정하려면 스위프트라이트가 좋다.
쓸 수 있을 것 같은 냄새가 나니까 규칙을 확인해 봐.
규칙 정보
혼자 정리하고 싶지만 아주 좋은 정리가 있으니 참고하세요.
링크 대상 샘플,opt-inrules에 댓글 출력이 적혀 있으면 사용하기 쉽죠.
혼자 정리하고 싶지만 아주 좋은 정리가 있으니 참고하세요.
링크 대상 샘플,opt-inrules에 댓글 출력이 적혀 있으면 사용하기 쉽죠.
.swiftlint.yml
# 無効にするルール
disabled_rules:
- trailing_whitespace
# デフォルト無効のルールのうち、有効にするルール
opt_in_rules:
- attributes
# Lint対象に含めるファイルがあるパスを記述。
included:
- Source
# Lint対象から外すファイルのあるパスを記述。includedより優先される。Podsやライブラリなど。
excluded:
- Pods/
- Podfile
# configurable rules can be customized from this configuration file
# binary rules can set their severity level
# 1行あたりの文字数制限
line_length: 300
opt-in-rules만 뽑았어요.각 규칙의 설명은 참고 사이트의 설명과 공식 페이지의 내용을 기계로 번역했다.
정리된 것은 이해하기 쉽지만 잘 모르는 것도 있다.
extension_access_modifier
와no_extension_access_modifier
는 반대의 추천?제외된 규칙과 유효한 규칙은 언제든지 수정됩니다.
.swiftlint.yml
opt_in_rules:
- attributes # 属性は関数と型の独自の行にあるべき
- closure_end_indentation # クロージャの最後の } は開始したラインと同じインデントを持つ必要がある
- closure_spacing # クロージャ内の式はカッコの間に1つのスペースがあるべき
- conditional_returns_on_newline # 条件文は始まった行の次の行でreturnするべき.
- empty_count # 要素が何もないことを確認する際はcount == 0よりもisEmptyを用いてチェックする
- explicit_init # 明示的な.init()メソッドの呼び出しは避けるべき.
- explicit_top_level_acl # 最上位の宣言では、アクセス制御レベルのキーワードを明示的に指定する必要がある
- explicit_type_interface # クラス変数とかインスタンス変数とかには"型"を記述しろ
- extension_access_modifier # 拡張アクセス修飾子を使用することを推奨
- fatal_error_message # fatalErrorを使う場合はメッセージを書く
- file_header # ファイルの先頭のコメントの書式
- first_where # .filter { }.firstよりも.first(where:)を用いる.
- force_unwrappin # ! 使うな
- implicit_return # クロージャの暗黙のリターンを推奨
- implicitly_unwrapped_optional # 暗黙的なUnwrapは禁止
- multiline_parameters # 関数とメソッドのパラメータは、同じ行または1行に1つずつ指定する必要がある
- nimble_operator # Nimble演算子のオーバーロードは、フリーマッチャー関数よりも優先
- no_extension_access_modifier # 拡張アクセス修飾子を使用しないことを推奨する
- number_separator # 3桁ごとに _
- object_literal # イニシャライザを直接呼び出すよりは#imageLiteralや#colorLiteralを用いる.
- operator_usage_whitespace # 演算子を使用する前後にスペース
- overridden_super_call # メソッドを override したら super を呼ぶ
- private_outlet # @IBOutlet は private に
- prohibited_super_call # いくつかのメソッドにおいてはsuperを呼び出すべきではない.
- redundant_nil_coalescin # nil結合演算子において,左辺がnilの場合のみ評価される性質上,右辺にnilを書くのは冗長なため,書くべきでない.
- sorted_imports # import をアルファベット順に
- switch_case_on_newline # switch文におけるcaseの各処理は改行した後書くべき
- vertical_parameter_alignment_on_call # 関数のパラメータは宣言の複数の行にある場合、垂直方向に整列させる必要がある
참고 자료
Reference
이 문제에 관하여(Swift 정적 해결을 위해 Swift Line 설치), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ht40/items/051f66557fd6dffa95ec텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)