Help us understand the problem. What is going on with this article?

swiftlint 最新版(0.18.1) の設定ファイル(.swiftlint.yml)のサンプル

More than 1 year has passed since last update.

swiftlint

https://github.com/realm/SwiftLint

バージョン

0.18.1
Homebrewで入れました。
brew install swiftlint

本題

.swiftlint.ymlサンプルで検索してもあんまり出てこなかったので、今回作成したものを上げておきます。

今回作成して、自分のプロジェクトで使用している.swiftlint.ymlファイルの内容は下記になります。

.swiftlint.yml
# 無効にするルール。
disabled_rules:
# コードの記載のない改行を許可したい
- trailing_whitespace
# force_cast は場合によっては使用するため
- force_cast

# デフォルト無効のルールのうち、有効にするもの。
opt_in_rules:
- attributes
- closure_end_indentation
- closure_spacing
- conditional_returns_on_newline
- empty_count
- explicit_init
- explicit_type_interface # new
- fatal_error_message   # new
# ファイルヘッダを修正してもエラー解除されないため
#- file_header
- first_where
# 場合によっては特に問題ないので
#- force_unwrapping
- implicitly_unwrapped_optional # new
- missing_docs
- nimble_operator
- number_separator
- object_literal
- operator_usage_whitespace
- overridden_super_call
# 基本的にはprivateにしたほうが良いがアプリ規模が小さいので今回は無効
#- private_outlet
- prohibited_super_call
- redundant_nil_coalescing
# そこまで多くならないので整列していなくても問題ない
#- sorted_imports
- switch_case_on_newline
- valid_docs

# 追加したOSSライブラリは対象に含めたくない
excluded:
- Pods/
- Carthage/

# 1行あたりの文字数制限を300に変更
# プロジェクト作成時にデフォルトで追加されるコメントをひっかけないため
line_length: 300

# 変数名が1文字以上なら許可に変更
identifier_name:
  min_length: 1

基本的な方針としては、できるだけルールを適用させて、どうしてもめんどくさいものだけ省くようにしました。
そのため、opt-in-rulesもたくさん書いてます。

force〇〇系は、あまりswiftを書いたことがない方は外さないほうが良いと思いますが、なれてきたら外してしまったほうが良いと思います。毎回nilチェックするのも大変ですし。
まだswiftlintは安定していないので、結構バグが多いので動かない時もありますので注意が必要です。
あと、変数名の部分は2文字以上や3文字以上にしたほうがいいのかもしれません。(僕は"v"とか"e"とか使いたいので1文字以上にしています...)

参考

ルールの解説に関しては下記を参考にさせていただきました。
【SwiftLintのRules全まとめ】
http://qiita.com/KAGE_MIKU/items/80e6d905dc0059c342b3
【swiftlint 0.18.1 までの rule まとめ】
http://qiita.com/rd0501/items/103c33d2df20f052523a

他のサンプル
【SwiftLint を導入しました】
http://qiita.com/hoshi-takanori/items/b82e62de8313ff256044

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away