Xcode
Swift
codingRule

SwiftFormat に関するメモ

swiftformatとは?

  • 文字通り swift で書かれたコードのフォーマットを整えるためのツール。
  • コードの書き方に対して自分流の儀式を頑なに持ち続ける人は相容れないかもしれない。あるいは統一の必要性を感じない人にも意味はなさそう。
  • 整形対象は多岐に渡るので細かいカスタマイズが可能。
  • 個人的には次のようなスタンスで利用している:
    • コーディングスタイルには興味がないが、統一することには興味がある。
    • スペース・改行・空行の付加/削除・{ } の形式・self の有無についてファイル間での違いがほとんどなくなるので、書き方のブレが大きい自分の場合は重宝している。
    • MARK: - XXXX の書き方を間違った場合も修正されるのがありがたい。

使い方

  • 入手方法や詳細については開発者の GitHub (nicklockwood/SwiftFormat) を参照。
  • オプションや引数についての解説は避けるが、基本的には実行フォルダを指定するのみ。指定フォルダ下にある全ての .swift ファイルに対して実行される。
  • Xcode では Build Phases に Run Script を足すなどして自動で実行するようにしておくと楽。
  • 個人的には self. をつける/つけないで迷うことが多いので、コードを書くときはあえて self. をつけないようにしておいて、self. の付加は swiftformat に任せるという怠惰な使い方をしている。

使用例

私の現在のオプションは以下の通り:

swiftformat --elseposition next-line --comments ignore --self insert --trimwhitespace nonblank-lines --stripunusedargs closure-only --disable strongOutlets ${SRCROOT}
  • --elseposition next-line : else の前で改行する。
  • --comments ignore : コメント内の整形はしない(インデントがなくなるため)。
  • --self insert : self. が必要な場所には追加する。
  • --trimwhitespace nonblank-lines : 空行以外で不要なスペースを削除。
  • --stripunusedargs closure-only : クロージャでのみ使用しない引数を _ に置き換える。
  • --disable strongOutlets : @IBOutlet のあとの weak を削除しない。weak を削除するのはアップルの最近の方針らしいので保留した。