LoginSignup
5
3

More than 1 year has passed since last update.

【Swift】SwiftFormatをSwiftPMで管理する

Last updated at Posted at 2023-01-12

はじめに

私は今までMintでSwiftFormatをインストールしていました。

SwiftFormatのREADMEを見てたらSwiftPMでも管理できるっぽいのでやってみました。

「spm-swiftformat」というプロジェクトを作成しました。
ここにSwiftFormatをいれてみます。
スクリーンショット 2023-01-12 20.30.15.png

やりかた

各種ファイルを設定

spm-swiftformatに移動します。

ターミナル
cd /Users/miyamototaishin/Desktop/spm-swiftformat

スクリーンショット 2023-01-12 20.32.10.png

BuildToolsというフォルダを作成します。

ターミナル
mkdir BuildTools

スクリーンショット 2023-01-12 20.34.00.png

ターミナル
cd BuildTools

スクリーンショット 2023-01-12 20.34.15.png

Package.swiftを作成します。

ターミナル
touch Package.swift

スクリーンショット 2023-01-12 20.35.47.png

Empty.swiftを作成します。

ターミナル
touch Empty.swift

スクリーンショット 2023-01-12 20.37.03.png

Package.swiftを開きます。

ターミナル
open Package.swift

スクリーンショット 2023-01-12 20.38.03.png

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 ..

スクリーンショット 2023-01-12 20.55.12.png

.swiftformatを作成します。

ターミナル
touch .swiftformat

スクリーンショット 2023-01-12 20.55.44.png

ターミナル
open .swiftformat

スクリーンショット 2023-01-12 20.55.56.png

.swiftformatにルールを設定します
(詳細はこちらをみてください)

.swiftformat
--swiftversion 5.7

--commas inline

Run Scriptを作成

プロジェクトをダブルタップで開きます。
スクリーンショット 2023-01-12 20.43.23.png

① プロジェクトを選択します
② ターゲットを選択します
③ 「Build Phases」を選択します
④ 「+」を選択します
スクリーンショット 2023-01-12 20.47.17.png
⑤ 「New Run Script Phase」を選択します
スクリーンショット 2023-01-12 20.50.44.png

追加された「Run Script」に以下のスクリプトをコピペします。

cd BuildTools

xcrun --sdk macosx swift build -c release

スクリーンショット 2023-01-15 20.47.02.png

先ほどと同じ手順で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

スクリーンショット 2023-01-16 20.12.37.png

ビルド

こんな感じでメチャクチャにしたコードが元通りになれば成功です。
スクリーンショット 2023-01-12 21.00.02.png

ビルドします。
スクリーンショット 2023-01-12 21.00.40.png

戻りました!!
スクリーンショット 2023-01-12 21.10.15.png

おわり

他のCLIツールも同じ感じでできるっぽい?
次はSwiftLintでやってみたいです。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3