このページは
SwiftLint について、導入する方法と使い方を簡単に記す。
もっと詳しく知りたい場合は SwiftLint のプロジェクトを見るべき。 👇
また SwiftLint を試したサンプルプロジェクトは GitHub にある。👇
SwiftLint とは?
Swift コードのスタイルをチェックするリントツール。
Lint(リント)?
- コーディングルール違反や、冗長な記述など、を検査する
ルール違反の項目がある場合
- ビルド時に警告・エラーなどを発生させることができる。
- または、リントツールに自動でスタイル修正(コード修正)をさせることも可能。
リントツール導入のメリット
- コードのスタイルを機械的に一定に保てる
- コードレビューの質向上を計れる(スタイルに関する指摘は有人でする必要がなくなる)
インストール
Homebrew が入っている環境ならば
brew コマンドで install 可能。
$ brew install swiftlint
ルールファイルを作成する
.swiftlint.yml
ファイルにルールを記述する。
記述の仕方とルールは以下を参照する。
以下、.swiftlint.yml
の例。
# Lint 対象を指定
included:
- SwiftLintSample/
# Lint 対象から除外する
excluded:
- SwiftLintSample/T.swift
# 無効にするルール
disabled_rules:
- file_length
- trailing_comma
- trailing_whitespace
- trailing_newline
- vertical_whitespace
- function_body_length
- type_body_length
- line_length
- vertical_parameter_alignment
# 変数などの名前の最低の長さを指定。これより短いと違反となる
# 1 にしておくと、このルールが実質無効となる
identifier_name:
min_length: 1
# 型名のルールに対しての excluded(除外)
# ここでは lowerCamelClass という型名はルールの検査から除外される
type_name:
excluded:
- lowerCamelClass
Xcode プロジェクトへの導入方法
Xcode の Build Phases に新たな Run Script を追加する。
そして以下のスクリプトを埋め込む。
if which swiftlint >/dev/null; then
swiftlint --config .swiftlint.yml
else
echo "warning: SwiftLint not installed."
fi
上のスクリプトを説明すると・・・
- if which で SwiftLint がインストールされているかをチェックする
- インストールされていない場合、 echo で警告を表示している
swiftlint
コマンドの --config
引数で ルールファイル (.swiftlint.yml
) のパスを指定できる。
- 指定しなければ、カレントディレクトリにある
.swiftlint.yml
を参照する
これでビルドするたびに、 SwiftLint によるチェックが実行される。
もし SwiftLint に引っかかると、通常の警告・エラーと同じく Xcode 上に結果が表示される。
リントの運用
.swiftlint.yml
で全体のルールを指定できるが、局所的にルールを決めたいときもある。
その場合は、以下の enable/disable で挟むことで、その部分だけルールの無効・有効を切り替えすることができる。
たとえば、 func
のパラメーター数は SwiftLint ではデフォルトで 5個までとされているが、それを超えたパラメーター数をもつ func
を居所的に許可したい場合は以下になる。
static private func tooManyParameterFunc(a: Int,
b: Int,
c: Int,
d: Int,
e: Int,
f: Int,
g: Int) -> Int {
return a + b + c + d + e + f + g
}
おわり