.swiftlint.ymlにline_length
のルールを記載したのに反映されないことがありハマりました。
AppDelegateなどでコメントのwarningがでていたのでLintに以下のルールを追加しましたが、反映されませんでした。
line_length:
warning: 300
ignores_comments: true
SwiftLintのバージョンが古いとか、RULEに半角スペースが3つあるとかでも反映されないような現象があるみたいですが、
私の場合は違いました。
試したこと
- Homebrewをupgradeしてswiftlintの入れ直し。
- YAMLが正しく書いているか確認。
- YAMLlint - The YAML Validator http://www.yamllint.com/
- swiftlintのupgrade / swiftlintのuninstall
結論
.swiftlint.yml
はxxx.xcodeproj
と同じ階層にないと反映されない。
私の場合、githubからcloneしてきたので以下のディレクトリの構成になっていました。
SampleProject
├── SampleProject
│ ├── SampleProject/...
│ ├── SampleProject.xcodeproj
│ └── SampleProjectTests
├── .swiftlint.yml
├── README.md
├── .gitignore
└── .git
以下のようにルートディレクトリにxxx.xcode.proj
と.swiftlint.yml
を同じ階層に置けばルールが適応されました。
SampleProject
├── SampleProject/...
├── SampleProject.xcodeproj
├── SampleProjectTests
├── .swiftlint.yml
├── README.md
├── .gitignore
└── .git
cloneしてからプロジェクトファイルを作るとプロジェクト名のディレクトリがダブるので、
プロジェクトファイルを作成してから、 git clone http://xxxxxx.com/xxxxxx.git .
をした方がよさそうと思った。
最後の.
はリポジトリと同名のディレクトリを作らないためにつける。
参考
How to use swiftlint command and Xcode Script when .swiftlint.yml file not in the same folder with project.xcodeproj? · Issue #2673 · realm/SwiftLint
https://github.com/realm/SwiftLint/issues/2673
git clone でディレクトリを作らない | 株式会社Orfool
https://orfool.com/programing/2206/
SwiftLintを試してみた - Qiita
https://qiita.com/ushisantoasobu/items/b494c9cf7d78a968b373
SwiftLintのdisabled_rules一覧(実例付き) - Qiita
https://qiita.com/akatsuki174/items/6da27f7ccdd0572f8927
SwiftLintの運用ノウハウ - Qiita
https://qiita.com/shtnkgm/items/6dd756aa14926736c6f5