ページ内ナビ
概要
SwiftFormatはSwift codeを自動整形するlibrary/CLIです。whitespaceだけでなくimplicit self、冗長なparenthesesなどSwift idiomに沿うruleを適用し、.swiftformat、lint mode、Xcode extension、SwiftPM plugin、GitHub Actionsなどでteamのcode styleを自動化できます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
format ruleとoptionを.swiftformatへ固定してsourceを自動整形する
swiftformat .でdirectory内のSwift fileへruleを適用し、.swiftformatでindent、Swift version、rule enable/disableなどをproject単位に管理できます。--infer-optionsから既存styleに近いoptionを推定することもできます。
出典:[2]
向いている用途
Swift code styleの差分noiseを減らしreviewをbehaviorへ集中させたいteamに向く
developerごとのspacingやdeclaration orderなどの差を自動整形へ寄せ、format違反をCIで検出したいSwift/iOS projectに適します。
出典:[2]
導入前の確認
参考にした公式資料
- [1]nicklockwood/SwiftFormat — GitHub repository(2026-10-06)
- [2]SwiftFormat 0.63.1 — README(2026-10-06)
- [3]SwiftFormat 0.63.1 — Package.swift(2026-10-06)
- [4]SwiftFormat 0.63.1 release(2026-10-06)
- [5]SwiftFormat MIT license(2026-10-06)
編集部からの補足
Swift code styleを自動化しreviewのformat差分を減らしたいteamに向きます。format実行はsourceを書き換えるため、version固定・git管理・CIのlint modeを組み合わせる運用が安全です。
3ステップで試す
- 1
SwiftFormat 0.63.1をSwiftPM dependencyへ追加する
projectで使用するformatter versionを固定し、SwiftFormatPluginを利用できるようにします。
.package(url: "https://github.com/nicklockwood/SwiftFormat", exact: "0.63.1") - 2
.swiftformatにproject ruleを定義する
Swift versionとindentをproject rootのconfigへ固定します。
printf "%s\n" "--swiftversion 6.0" "--indent 2" > .swiftformat - 3
SwiftPM pluginからformatを実行する
.swiftformatを読み込み、package内のSwift sourceへformatterを適用します。実行前に変更をgitへ保存しておくと安全です。
swift package plugin --allow-writing-to-package-directory swiftformat
成長
成長の推移 · 直近30日
8,928 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 18
- Open PR
- 6
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Apache Maven5,369 Stars
共通タグ 2件 · 共通カテゴリ 3件
POMでdependency・plugin・build lifecycleを共有し、Java/JVM buildを標準化するproject management tool
Java - Appium22,046 Stars
共通タグ 2件 · 共通カテゴリ 2件
WebDriver互換APIでAndroid・iOS・desktop appのE2E testを自動化する
TypeScript - Allure Report5,549 Stars
共通タグ 2件 · 共通カテゴリ 2件
複数言語・test frameworkの実行結果を統一reportへ変換し、履歴・step・attachmentを可視化する
HTML - Renovate22,688 Stars
共通タグ 1件 · 共通カテゴリ 3件
90超のpackage managerを横断してdependency update PRを自動化する
TypeScript - Turborepo31,176 Stars
共通タグ 1件 · 共通カテゴリ 2件
MonorepoのTask GraphとCacheでbuild・test・lintを必要な範囲だけ実行するBuild System
Rust - Nx29,392 Stars
共通タグ 1件 · 共通カテゴリ 2件
複数プロジェクトの依存関係を把握し、必要なタスクだけを効率よく実行する
TypeScript
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。