🍣

swift-formatを試す

2021/07/08に公開

swift-formatとは

swift-formatとは、apple純正のswiftソースコードの整形ツールです。
現在はswiftバージョン5.3まで対応しています。

https://github.com/apple/swift-format

インストール方法

Homebrew

HomebrewはmacOS用のパッケージマネージャーです。

https://brew.sh/index_ja

まだインストールしていない場合は、下記コマンドを実行します。

% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

swift-formatのインストール方法

% brew install swift-format

Mint

MintはSwift製コマンドラインツールのパッケージ管理ツールです。バージョン指定もできます。

https://github.com/yonaskolb/Mint

Mintのインストール方法

% brew install mint

※事前にXcodeをインストールします。

Mintを使いswift-formatをインストール

% mint install swift-format@[バージョン]

@[バージョン]を指定しなければ、最新版がインストールされます。

使用方法

swift-formatを使用するためには、フォーマットのルールが必要になります。

最初に、プロジェクトディレクトリに移動します。

% cd /path/to/project

次に、デフォルトのフォーマットを書き出し、.swift-formatに保存します。

% swift-format --mode dump-configuration > .swift-format

デフォルトのインデントは2ですが、大抵のXcodeの設定は4なので、.swift-formatの中で以下の項目だけは書き換えます。

"indentation" : {
    "spaces" : 4
  },

swift-formatを実行します。

% swift-format -r . -i

-rオプションで対象ディレクトリを指定します。
-iオプションでソースコードを整形し保存します。

結果

例えば以下のようになります。

-import UIKit
 import Foundation
 import SwiftUI
+import UIKit
+
+struct ContentView: View {
 
-struct ContentView : View {
-    
     var body: some View {
         Text("Hello, world!")
             .padding()
     }
-    
-    
-    
+
 }

余計な改行が削除されたり、importがソートされたりしています。

参考

https://qiita.com/uhooi/items/6a41a623b13f6ef4ddf0
https://tech.connehito.com/entry/swift-format

Discussion