OSS探訪GitHubでログイン

Swift sourceを共通ruleでformat・lintし、CLI・Xcode・SwiftPM・CIへ組み込む

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
8,928
主要言語
Swift
ライセンス
MIT
リポジトリ最終更新
2026/10/06
ページ内ナビ

概要

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]

lint mode・SwiftPM plugin・GitHub Actionsへ同じruleを展開する

local formatだけでなく--lintで差分を検出し、SwiftPM command plugin、Xcode build phase、pre-commit hook、GitHub Actionsなどへ同じconfigurationを組み込めます。

出典:[2][3]

向いている用途

Swift code styleの差分noiseを減らしreviewをbehaviorへ集中させたいteamに向く

developerごとのspacingやdeclaration orderなどの差を自動整形へ寄せ、format違反をCIで検出したいSwift/iOS projectに適します。

出典:[2]

導入前の確認

format commandはsourceを書き換えるためversion固定とdiff確認が重要

READMEはswiftformat .が対象Swift fileを上書きする点を警告し、shared projectではtool versionを揃えることを推奨しています。0.63.1ではdeterministic sorting向け--locale追加や複数rule修正が含まれ、Package.swiftはSwift tools 5.7です。

出典:[2][4][3]

参考にした公式資料

  1. [1]nicklockwood/SwiftFormat — GitHub repository(2026-10-06)
  2. [2]SwiftFormat 0.63.1 — README(2026-10-06)
  3. [3]SwiftFormat 0.63.1 — Package.swift(2026-10-06)
  4. [4]SwiftFormat 0.63.1 release(2026-10-06)
  5. [5]SwiftFormat MIT license(2026-10-06)
編集部からの補足

Swift code styleを自動化しreviewのformat差分を減らしたいteamに向きます。format実行はsourceを書き換えるため、version固定・git管理・CIのlint modeを組み合わせる運用が安全です。

3ステップで試す

  1. 1

    SwiftFormat 0.63.1をSwiftPM dependencyへ追加する

    projectで使用するformatter versionを固定し、SwiftFormatPluginを利用できるようにします。

    .package(url: "https://github.com/nicklockwood/SwiftFormat", exact: "0.63.1")
  2. 2

    .swiftformatにproject ruleを定義する

    Swift versionとindentをproject rootのconfigへ固定します。

    printf "%s\n" "--swiftversion 6.0" "--indent 2" > .swiftformat
  3. 3

    SwiftPM pluginからformatを実行する

    .swiftformatを読み込み、package内のSwift sourceへformatterを適用します。実行前に変更をgitへ保存しておくと安全です。

    swift package plugin --allow-writing-to-package-directory swiftformat
公式READMEで確認

成長

成長の推移 · 直近30日

8,928 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
18
Open PR
6

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る
Stars
8,928
Forks
708
Watchers
75
Open Issues
288
Contributors
191
所有者種別
User
主要言語
Swift
ライセンス
MIT
リポジトリ最終更新
2026/10/06

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?