はじめに
私は今までMintでSwiftFormatをインストールしていました。
SwiftFormatのREADMEを見てたらSwiftPMでも管理できるっぽいのでやってみました。
「spm-swiftformat」というプロジェクトを作成しました。
ここにSwiftFormatをいれてみます。
やりかた
各種ファイルを設定
spm-swiftformatに移動します。
cd /Users/miyamototaishin/Desktop/spm-swiftformat
BuildToolsというフォルダを作成します。
mkdir BuildTools
cd BuildTools
Package.swiftを作成します。
touch Package.swift
Empty.swift
を作成します。
touch Empty.swift
Package.swift
を開きます。
open Package.swift
Package.swift
に以下をコピペします。
// swift-tools-version: 5.6
import PackageDescription
let package = Package(
name: "BuildTools",
dependencies: [
.package(url: "https://github.com/nicklockwood/SwiftFormat", from: "0.50.7")
],
targets: [.target(name: "BuildTools", path: "")]
)
ディレクトリを1つ上の階層に移動します。
cd ..
.swiftformat
を作成します。
touch .swiftformat
open .swiftformat
.swiftformatにルールを設定します
(詳細はこちらをみてください)
--swiftversion 5.7
--commas inline
Run Scriptを作成
① プロジェクトを選択します
② ターゲットを選択します
③ 「Build Phases」を選択します
④ 「+」を選択します
⑤ 「New Run Script Phase」を選択します
追加された「Run Script」に以下のスクリプトをコピペします。
cd BuildTools
xcrun --sdk macosx swift build -c release
先ほどと同じ手順でRun Scriptを作成します。
作成したRun Scriptに以下のスクリプトをコピペします。
cd BuildTools
xcrun --sdk macosx swift build -c release \
--package-path .build/checkouts/SwiftFormat \
--product swiftformat
.build/checkouts/SwiftFormat/.build/release/swiftformat $SRCROOT --config $SRCROOT/.swiftformat --swiftversion 5.7
ビルド
こんな感じでメチャクチャにしたコードが元通りになれば成功です。
おわり
他のCLIツールも同じ感じでできるっぽい?
次はSwiftLintでやってみたいです。