SwiftLintのdisabled_rules一覧(実例付き)

disabled_rulesには「これは無視してチェックしてください」という項目を指定します。
使用できるルールは`swiftlint rules`コマンドで出力できます。
この記事ではそのそれぞれのルールについて実例を付けて説明したいと思います。

詳しく知りたい場合はライブラリの中身を見ると良いと思うので、下記ページをご覧ください。
https://github.com/realm/SwiftLint/tree/master/Source/SwiftLintFramework/Rules

なお、変数名の長さなど、長さが絡んでくるものに関してはカスタマイズできます。
ひとまずここではデフォルトでどのようになるかを記述していきます。

# closing_brace

```
Closing Brace Spacing (closing_brace):
　Closing brace with closing parenthesis should not have any whitespaces in the middle.
```

![スクリーンショット 2016-01-16 14.22.36.png](https://qiita-image-store.s3.amazonaws.com/0/100736/93836081-c1ac-2c8a-6b81-f846c068903c.png)

「}」と「)」の間にある空白を取り除けば警告は消えます。

# colon

```
Colon (colon):
　Colons should be next to the identifier when specifying a type.
```

![スクリーンショット 2016-01-16 14.39.19.png](https://qiita-image-store.s3.amazonaws.com/0/100736/ed6259eb-d86f-efbd-762f-d8896b060e28.png)

「action:」と「UIAlertAction!」の間に空白文字を入れれば警告は消えます。

# comma

```
Comma Spacing (comma):
　One space before and no after must be present next to any comma.
```

![スクリーンショット 2016-01-16 14.42.15.png](https://qiita-image-store.s3.amazonaws.com/0/100736/5c1c12a8-85ca-43da-60a6-443d36c13f06.png)

「String,」と「message」の間に空白文字を入れれば警告は消えます。

# control_statement

```
Control Statement (control_statement):
　if,for,while,do statements shouldn't wrap their conditionals in parentheses.
```

![スクリーンショット 2016-01-16 14.48.36.png](https://qiita-image-store.s3.amazonaws.com/0/100736/a076fe35-b183-3c53-831a-239d723bad06.png)

条件文を囲んでいる「()」を取り除けば警告は消えます。

# force_cast

```
Force Cast (force_cast):
　Force casts should be avoided.
```

![スクリーンショット 2016-01-16 14.59.24.png](https://qiita-image-store.s3.amazonaws.com/0/100736/26f0db14-5287-733a-8d7c-ce66ed1b1500.png)

「as!」ではなく「as?」に変えたらビルドできるようになります。

# force_try

```
Force Try (force_try):
　Force tries should be avoided.
```

![スクリーンショット 2016-01-16 15.15.42.png](https://qiita-image-store.s3.amazonaws.com/0/100736/c69c494e-97bd-257b-0754-77c4361bbcb0.png)

※isEqualStr()は例外を投げる可能性があるメソッド

きちんとtry-catchで囲めばビルドできるようになります。

# leading_whitespace

```
Leading Whitespace (leading_whitespace):
　Files should not contain leading whitespace.
```

![スクリーンショット 2016-01-16 15.19.31.png](https://qiita-image-store.s3.amazonaws.com/0/100736/7e970381-15c1-be6e-a3e1-5f33603b4d61.png)

ファイルの先頭の空白文字を削除すれば警告は消えます。

# legacy_constructor

```
Legacy Constructor (legacy_constructor):
　Swift constructors are preferred over legacy convenience functions.
```

![スクリーンショット 2016-01-16 15.42.39.png](https://qiita-image-store.s3.amazonaws.com/0/100736/1bfc04c7-e322-9f08-58f8-089ae088e606.png)

`CGPoint(x: 10, y: 10)`にしたら警告は消えます。

# nesting

```
Nesting (nesting):
　Types should be nested at most 1 level deep, and statements should be nested at most 5 levels deep.
```

![スクリーンショット 2016-01-16 16.51.24.png](https://qiita-image-store.s3.amazonaws.com/0/100736/3b86a6b3-b412-cc37-9697-7134dd4e41bb.png)

ネストを4つまでにすれば警告は消えます。

# opening_brace

```
Opening Brace Spacing (opening_brace):
　Opening braces should be preceded by a single space and on the same line as the declaration.
```

![スクリーンショット 2016-01-16 16.56.55.png](https://qiita-image-store.s3.amazonaws.com/0/100736/4f2c8f27-32f4-6b9b-f449-8a561d045c4d.png)

「{」の手前で改行しないで`func func1() {`とすれば警告は消えます。

# operator_whitespace

```
Operator Function Whitespace (operator_whitespace):
　Operators should be surrounded by a single whitespace when defining them.
```

![スクリーンショット 2016-01-16 19.51.23.png](https://qiita-image-store.s3.amazonaws.com/0/100736/154b8145-c856-ec48-cff3-d59a08b501f3.png)

![スクリーンショット 2016-01-16 19.53.05.png](https://qiita-image-store.s3.amazonaws.com/0/100736/8937fb81-6c2c-624c-d839-7a87b14f1976.png)

![スクリーンショット 2016-01-16 19.53.37.png](https://qiita-image-store.s3.amazonaws.com/0/100736/7eb8bcf9-cb6d-749c-3667-3d031ace7e10.png)

前後を空白文字1文字にすれば警告は消えます。
(オペレータを定義するときに前や後ろに2つ以上の空白文字や空白文字が1つもないと警告が出ます)

# return_arrow_whitespace

```
Returning Whitespace (return_arrow_whitespace):
　Return arrow and return type should be separated by a single space or on a separate line.
```

![スクリーンショット 2016-01-16 17.15.20.png](https://qiita-image-store.s3.amazonaws.com/0/100736/31894ea3-d17f-0fd2-6765-e3f896aa467a.png)

「->」の前後に空白文字を入れれば警告は消えます。

# statement_position

```
Statement Position (statement_position):
　Else and catch should be on the same line, one space after the previous declaration.
```

![スクリーンショット 2016-01-16 17.20.55.png](https://qiita-image-store.s3.amazonaws.com/0/100736/7ba540e2-406a-05a6-e3e6-f3bac9b0144c.png)

「else」の前に1つ空白を入れれば警告は消えます。

# todo

```
Todo (todo):
　TODOs and FIXMEs should be avoided.
```

![スクリーンショット 2016-01-16 17.23.39.png](https://qiita-image-store.s3.amazonaws.com/0/100736/ec427bf0-91c2-23e6-c502-e81870a015b5.png)

TODO, FIXMEがなくなれば警告は消えます。

# trailing_newline

```
Trailing Newline (trailing_newline):
　Files should have a single trailing newline.
```

![スクリーンショット 2016-01-16 17.26.31.png](https://qiita-image-store.s3.amazonaws.com/0/100736/ca331a1c-4d93-e92a-bf76-50f29972b2cb.png)

ファイルの最後に空白行を入れれば警告は消えます。

# trailing_semicolon

```
Trailing Semicolon (trailing_semicolon):
　Lines should not have trailing semicolons.
```

![スクリーンショット 2016-01-16 17.27.58.png](https://qiita-image-store.s3.amazonaws.com/0/100736/eb3480e1-c13e-5b67-2001-662399b91ea1.png)

セミコロンを消せば警告は消えます。

# trailing_whitespace

```
Trailing Whitespace (trailing_whitespace):
　Lines should not have trailing whitespace.
```

![スクリーンショット 2016-01-16 17.31.55.png](https://qiita-image-store.s3.amazonaws.com/0/100736/00f5f993-2e50-a0b8-3506-4a7461c246d2.png)

※`super.viewDidLoad()`の後ろには空白スペースが入っています。

行末の空白文字、何も記述されていない行を消せば警告は消えます。

# type_name

```
Type Name (type_name):
　Type name should only contain alphanumeric characters, start with an uppercase character and span
　between 3 and 40 characters in length.
```


![スクリーンショット 2016-01-16 17.40.06.png](https://qiita-image-store.s3.amazonaws.com/0/100736/56ec1cf0-e3f2-19ae-fa26-f27d07df2cd1.png)

![スクリーンショット 2016-01-16 17.41.16.png](https://qiita-image-store.s3.amazonaws.com/0/100736/80ea8934-fe85-a2f8-cf94-9f5787dc91c0.png)

![スクリーンショット 2016-01-16 17.40.42.png](https://qiita-image-store.s3.amazonaws.com/0/100736/a926800e-2499-bf79-588c-13487ff3b03a.png)

タイプ名を

* 英数字のみ
* 3文字以上40文字以下
* 先頭は大文字

にすれば警告が消え、ビルドができるようになります。

# valid_docs

```
Valid Docs (valid_docs):
　Documented declarations should be valid.
```

これらは Docs とメソッドの内容の不整合によって警告が出ます。

![スクリーンショット 2016-01-16 18.03.40.png](https://qiita-image-store.s3.amazonaws.com/0/100736/92ebe775-5a89-ebab-6d1b-835a774a0a70.png)
下記の二通りの方法で警告が消えます。
* メソッドの定義が正しい場合: コメントの - returns を削除
* コメントが正しい場合: 戻り値があるメソッドに修正

![スクリーンショット 2016-01-16 18.07.58.png](https://qiita-image-store.s3.amazonaws.com/0/100736/baac4012-43a6-6d4f-fa42-552ee9f66275.png)

ドキュメントコメントに書いたものと同じ引数(str)を取るようにすれば警告は消えます。

![スクリーンショット 2016-01-16 18.12.38.png](https://qiita-image-store.s3.amazonaws.com/0/100736/be67813e-c741-d27a-8e15-b813af4ad915.png)

「/** */」で囲んだらコメントが間違っている云々以前に、何も書いてなくても警告が出るようです。

# variable_name

```
Variable Name (variable_name):
　Variable name should only contain alphanumeric characters and start with a lowercase character 
　or should only contain capital letters.
　In an exception to the above, variable names may start with a capital letter 
　when they are declared static and immutable.
```

![スクリーンショット 2016-01-16 18.34.33.png](https://qiita-image-store.s3.amazonaws.com/0/100736/f7ad824a-adfe-33d6-c2fd-74b3ef2efcf6.png)

* 英数字だけ
* 小文字のみか大文字のみ

の名前に変更すれば警告は消えます。

# file_length

```
File Line Length (file_length):
　Files should not span too many lines.
```

![スクリーンショット 2016-01-16 18.37.49.png](https://qiita-image-store.s3.amazonaws.com/0/100736/7d59798a-c4a3-727a-4b4b-6842590abfb2.png)

![スクリーンショット 2016-01-16 18.38.18.png](https://qiita-image-store.s3.amazonaws.com/0/100736/254f490b-b8ee-da38-3bce-6712df3f2d10.png)

ファイルが401〜1000行だと警告が出て、1001行以上だとビルドエラーになります。
なので400行以内に抑えればビルドエラーも警告もでません。

# function_body_length

```
Function Body Length (function_body_length):
　Functions bodies should not span too many lines.
```

![スクリーンショット 2016-01-16 18.44.43.png](https://qiita-image-store.s3.amazonaws.com/0/100736/1246fd3e-d89f-57c3-9cfc-7111afb60bfa.png)

![スクリーンショット 2016-01-16 18.45.06.png](https://qiita-image-store.s3.amazonaws.com/0/100736/39435ca9-6f38-05b8-d0be-9e69446fdb74.png)

メソッドが41〜100行だと警告が出て、101行以上だとビルドエラーになります。
なので40行以内に抑えればビルドエラーも警告もでません。

# line_length

```
Line Length (line_length):
　Lines should not span too many characters.
```

![スクリーンショット 2016-01-16 18.53.46.png](https://qiita-image-store.s3.amazonaws.com/0/100736/382b5eac-3116-a5aa-7af5-ab339e2d6915.png)

![スクリーンショット 2016-01-16 18.55.02.png](https://qiita-image-store.s3.amazonaws.com/0/100736/b6ad5811-1b56-0722-9cff-1990d7fb476a.png)

1行が101〜200文字だと警告が出て、201文字以上だとビルドエラーになります。
なので100文字以内に抑えればビルドエラーも警告もでません。

# type_body_length

```
Type Body Length (type_body_length):
　Type bodies should not span too many lines.
```

![スクリーンショット 2016-01-16 18.59.47.png](https://qiita-image-store.s3.amazonaws.com/0/100736/3a5d7c94-166c-a435-ec38-c1351579b845.png)

![スクリーンショット 2016-01-16 19.00.11.png](https://qiita-image-store.s3.amazonaws.com/0/100736/7bd61a7b-7deb-c62b-0ae0-996e54724b37.png)

Class, Struct, Enumの中身が201〜350行だと警告が出て、351行以上だとビルドエラーになります。
なので200行以内に抑えればビルドエラーも警告もでません。

# variable_name_max_length

```
Variable Name Max Length Rule (variable_name_max_length):
　Variable name should not be too long.
```

![スクリーンショット 2016-01-16 19.40.08.png](https://qiita-image-store.s3.amazonaws.com/0/100736/f1ebd9c6-9c35-c083-56e1-4866c11965de.png)

![スクリーンショット 2016-01-16 19.41.23.png](https://qiita-image-store.s3.amazonaws.com/0/100736/be8321d4-f2c8-f5e5-5940-a21b1f337562.png)

変数、定数名が41〜60文字だと警告が出て、61行以上だとビルドエラーになります。
なので40字以内に抑えればビルドエラーも警告もでません。

# variable_name_min_length

```
Variable Name Min Length Rule (variable_name_min_length):
　Variable name should not be too short.
```

![スクリーンショット 2016-01-16 19.44.03.png](https://qiita-image-store.s3.amazonaws.com/0/100736/0aa991e8-0360-9dbf-1b7b-0fa90e0fe08d.png)

![スクリーンショット 2016-01-16 19.43.44.png](https://qiita-image-store.s3.amazonaws.com/0/100736/10ddb6cc-e82c-5a71-a305-44f094b372fd.png)

変数、定数名が2文字だと警告が出て、1文字だとビルドエラーになります。
なので3文字以上にすればビルドエラーも警告もでません。