SwiftLint
Swiftでコーディング規約に沿っているかチェックするツールにSwiftLintというのがあるのでつかってみました。
SwiftLintではコーディング規約としてGithubのSwift style guildeを使っています。
使い方
- $ brew install swiftlint
- XcodeでSwiftLintをかけるプロジェクトを開く
- ProjectSettingのBuildPhasesを開く
- 左上の+ボタンを選択して、New Run Script Phaseを選択
- Run Script内に以下を記載
if which swiftlint >/dev/null; then swiftlint else echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint" fi
こうするとビルドするとコーディング規約のチェックが走るようになります。
例外
ただし、このままだと全てのファイルが対象となってしまい、3rd Partyのライブラリなども含まれてしまいます。
ディレクトリを対象からはずす
以下のようにして対象外のディレクトリを指定します
- .swiftlint.yml というファイルをプロジェクトのトップディレクトリに作成します。
- .swiftlint.yml内には以下のようにexcluded: 以下に、対象外とするディレクトリを列挙すればよいです
excluded: - Pods
ルールを変更する
このルールは適用したくないとか、errorではなくwarningにしたい場合は、ルールを.swift.ymlに書きます
# 除外するルール disabled_rules: - line_length - trailing_whitespace - trailing_newline - function_parameter_count - force_try - type_name - function_body_length # ルールの変更 force_cast: warning variable_name: min_length: 2
ソースコードの行単位でルールを除外する
コメントで // swiftlint:disable:this <ルール名> で行単位で除外できます。
let cell = tableView.dequeueReusableCellWithIdentifier("cell1", forIndexPath: indexPath) as! Cell1 // swiftlint:disable:this force_cast
細かいところはSwiftLintのREADMEを読むとよいです。