Swiftフォーマッターの主な機能
- Swiftコードのインデント、スペース、括弧を**ワンクリックでクリーンアップ**
- *インデントサイズ*スライダーで**設定可能なインデントサイズ**(1〜8スペース)
- **折り返し/行の長さ**制御で長い式をお好みの列幅内に収める
- 標準的な`.swift`ソースファイルと貼り付けたスニペットをサポート
- **iOS、macOS、watchOS、tvOS、サーバーサイドSwift**プロジェクトに最適
- 内部でSwiftFormatスタイルのエンジンを使用し、慣用的なSwift出力を実現
- 冪等性のあるフォーマット - 複数回実行しても同じ出力を維持
- アカウント不要 - 貼り付けてフォーマットし、クリーンな結果をコピーするだけ
🛠️ Swiftフォーマッターの使い方 for swift-formatter
1. Swiftコードを貼り付けまたはアップロード
📥 Swiftコードをエディターに直接貼り付けるか、`.swift`ファイルをドラッグ&ドロップしてください。このツールは一般的なXcodeスタイルのSwiftソースに最適化されています。
2. インデントと行の長さを設定
📏 **インデントサイズ**スライダーを使用して各インデントレベルで使用するスペース数を選択し、**折り返し/行の長さ**を設定して長い行を折り返す位置を制御します(`0`に設定すると折り返しベースのフォーマットを無効化)。
3. 「フォーマット」をクリック
⚡ **フォーマット**ボタンを押してSwiftFormatスタイルのルールを適用します。フォーマッターはインデント、`:`と演算子の周囲のスペースを正規化し、設定に従って長い行を折り返します。
4. 結果を確認してコピー
🔍 元のバージョンとフォーマットされたバージョンを比較します。結果に満足したら、フォーマットされたSwiftをXcode、Swift Playground、またはGitコミットにコピーしてください。
技術仕様
フォーマットエンジンとスタイル
このツールは一般的なSwiftFormatの慣習を模倣し、ファイルと貢献者間でコードベースの一貫性を維持します。
| 側面 | 動作 | 備考 |
|---|---|---|
| 言語 | Swift | Swift 5+のソースファイルで最適に動作します。 |
| インデント | レベルごとに設定可能なスペース | **インデントサイズ**オプション(1–8)で制御されます。 |
| 行の折り返し | オプションの折り返し列 | **折り返し/行の長さ**(0–120; `0` = 折り返しなし)で制御されます。 |
| 空白 | `:`と演算子の周囲を正規化 | コードレビュー全体での可読性と一貫性を向上させます。 |
| 冪等性のある出力 | 同じ入力 → 同じ出力 | フォーマットがずれることなく複数回実行しても安全です。 |
サポートされる入力と制限
AppleプラットフォームとサーバーサイドSwiftプロジェクトで使用される実世界のSwiftソースファイルに焦点を当てています。
| パラメータ | 値 / 動作 | 備考 |
|---|---|---|
| ファイル拡張子 | .swift | 標準的なSwiftソースファイル。 |
| MIMEタイプ | text/x-swift | エディタとドロップゾーンの検出に内部的に使用されます。 |
| 最大入力サイズ | ≈ 2 MBのソース | 非常に大きなファイルは、CIでのローカルSwiftFormatによるフォーマットが適しています。 |
| 出力拡張子 | .swift | フォーマットされたコンテンツはSwiftソースファイルとして保存するのが最適です。 |
検証とエラー
フォーマッタは構文的に有効なSwiftを期待します。入力が不完全であるか、重大な構文エラーを含む場合、フォーマットされた出力ではなく、失敗またはエラーメッセージを返す可能性があります。
SwiftFormatを使用したコマンドライン代替手段
Xcode、CI、またはpre-commitフックで同じスタイルを使用したいですか?SwiftFormatを直接使用してください:
macOS (Homebrew)
Homebrew経由でSwiftFormatをインストール
brew install swiftformatシステムに`swiftformat` CLIを追加します。
単一のSwiftファイルをフォーマット
swiftformat MyViewController.swiftデフォルトのSwiftFormatルールを使用してファイルをその場で書き換えます。
Xcodeプロジェクト全体をフォーマット
swiftformat .現在のディレクトリ内のすべての`.swift`ファイルを再帰的にフォーマットします。
プロジェクトレベルの設定
カスタム設定を使用
swiftformat . --config .swiftformat`.swiftformat`設定ファイルに保存されたチーム固有のルールを適用します。
Git pre-commitと統合
swiftformat . && git commit各コミット前にSwiftFormatを実行して、メインブランチをクリーンに保ちます。
Swiftフォーマッタの実用的なユースケース
iOS & macOS アプリ開発
UIKit、SwiftUI、Combineを多用するコードを機能ブランチ間で読みやすく一貫性のある状態に保ちます。
- コードレビュー前にビューコントローラー、ビューモデル、サービスのフォーマットを標準化します。
- スクラッチパッドやプロトタイプのSwiftコードを本番ターゲットにコピーする前に整理します。
- 複雑なSwiftUIビュー階層のインデントと折り返しを揃えます。
struct ContentView: View {
var body: some View {
VStack {
Text("Hello")
Button("Tap me") {
print("Tapped")
}
}
}
}
サーバーサイドSwift(Vapor、Hummingbirdなど)
APIハンドラーとルーティングコードをスキャンしやすく、レビューしやすくします。
- 複雑なチェーンを追いやすくするために、ルートとミドルウェア宣言を再フォーマットします。
- 長いプロパティリストを持つJSONエンコード/デコード構造体を整理します。
- Swiftコード内での長いSQLやHTTPクライアント呼び出しの折り返しを一貫して保証します。
app.get("hello") { req async throws -> String in
"Hello, world!"
}
Swiftの教育と学習
学生に慣用的なSwiftの見た目を示し、演習における「スタイルノイズ」を減らします。
- スライドやドキュメントで例を共有する前にSwiftコードを正規化します。
- スペースやインデントではなくロジックに焦点を当てるために学生の提出物を整理します。
- 良いフォーマットが動作を変えずに可読性を向上させる方法を示します。
func fibonacci(_ n: Int) -> Int {
if n < 2 { return n }
return fibonacci(n - 1) + fibonacci(n - 2)
}
❓ Frequently Asked Questions
❓このSwiftフォーマッターは実際に何を変更しますか?
📏折り返し/行の長さには何を選ぶべきですか?
🧹これはSwiftLintの代替ですか?
🔒本番のSwiftコードをここに貼り付けても安全ですか?
⚡このフォーマッターをすべてのコミットで自動的に実行できますか?
Pro Tips
チームで**インデントサイズ**と**折り返し/行の長さ**を合意し、このツールと`.swiftformat`設定の両方で同じ値を反映させましょう。
プルリクエストでフォーマッターを実行し、コードレビューをスペースの議論ではなくロジックとアーキテクチャに集中させましょう。
生成されたSwiftコード(コード生成ツールからのものなど)にフォーマッターを使用し、手書きのコードと同じくらいクリーンに見えるようにしましょう。
このフォーマッターをXcodeの「再インデント」と組み合わせて、迅速なローカルの調整にのみ使用し、真に一貫したスタイルを維持するためにCIでSwiftFormatを使用しましょう。
Additional Resources
Other Tools
- CSSビューティファイア
- HTMLビューティファイア
- JavaScriptビューティファイア
- PHPビューティファイア
- カラーピッカー
- スプライト抽出ツール
- Base64デコーダー
- Base64エンコーダー
- C#フォーマッタ
- CSVフォーマッタ
- Dockerfile Formatter
- Elmフォーマッタ
- ENVフォーマッタ
- Goフォーマッタ
- GraphQLフォーマッタ
- HCLフォーマッタ
- INIフォーマッタ
- JSONフォーマッタ
- LaTeXフォーマッタ
- Markdownフォーマッタ
- Objective-Cフォーマッタ
- Php Formatter
- Protoフォーマッタ
- Pythonフォーマッタ
- Rubyフォーマッタ
- Rustフォーマッタ
- Scalaフォーマッタ
- シェルスクリプトフォーマッタ
- SQLフォーマッタ
- SVG フォーマッタ
- TOML フォーマッタ
- Typescript Formatter
- XML フォーマッタ
- YAML フォーマッタ
- Yarn フォーマッタ
- CSSミニファイア
- Html Minifier
- Javascript Minifier
- JSONミニファイア
- XML ミニファイア
- HTTPヘッダービューア
- PDFからテキストへ
- 正規表現テスター
- SERPランクチェッカー
- Whois ルックアップ