Loading…

概要 オンラインSwiftフォーマッター

**コンパイル可能な**Swiftコードを書くのは簡単ですが、**美しく一貫性がありレビュー対応可能な**Swiftコードを書くのはより困難です。このオンラインSwiftフォーマッターはSwiftFormatスタイルのルールを使用して、インデント、スペース、行の折り返しを正規化し、Xcode、Swift Playgrounds、CIパイプライン全体で`.swift`ファイルをクリーンに保ちます。

Swiftフォーマッターの主な機能

  • Swiftコードのインデント、スペース、括弧を**ワンクリックでクリーンアップ**
  • *インデントサイズ*スライダーで**設定可能なインデントサイズ**(1〜8スペース)
  • **折り返し/行の長さ**制御で長い式をお好みの列幅内に収める
  • 標準的な`.swift`ソースファイルと貼り付けたスニペットをサポート
  • **iOS、macOS、watchOS、tvOS、サーバーサイドSwift**プロジェクトに最適
  • 内部でSwiftFormatスタイルのエンジンを使用し、慣用的なSwift出力を実現
  • 冪等性のあるフォーマット - 複数回実行しても同じ出力を維持
  • アカウント不要 - 貼り付けてフォーマットし、クリーンな結果をコピーするだけ

🛠️ Swiftフォーマッターの使い方 for swift-formatter

1

1. Swiftコードを貼り付けまたはアップロード

📥 Swiftコードをエディターに直接貼り付けるか、`.swift`ファイルをドラッグ&ドロップしてください。このツールは一般的なXcodeスタイルのSwiftソースに最適化されています。

2

2. インデントと行の長さを設定

📏 **インデントサイズ**スライダーを使用して各インデントレベルで使用するスペース数を選択し、**折り返し/行の長さ**を設定して長い行を折り返す位置を制御します(`0`に設定すると折り返しベースのフォーマットを無効化)。

3

3. 「フォーマット」をクリック

⚡ **フォーマット**ボタンを押してSwiftFormatスタイルのルールを適用します。フォーマッターはインデント、`:`と演算子の周囲のスペースを正規化し、設定に従って長い行を折り返します。

4

4. 結果を確認してコピー

🔍 元のバージョンとフォーマットされたバージョンを比較します。結果に満足したら、フォーマットされたSwiftをXcode、Swift Playground、またはGitコミットにコピーしてください。

技術仕様

フォーマットエンジンとスタイル

このツールは一般的なSwiftFormatの慣習を模倣し、ファイルと貢献者間でコードベースの一貫性を維持します。

側面動作備考
言語SwiftSwift 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を実行して、メインブランチをクリーンに保ちます。

このオンラインツールを迅速な単発のクリーンアップに使用し、その後、SwiftFormatと共有の`.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フォーマッターは実際に何を変更しますか?

フォーマッターは**インデント、スペース、行の折り返し**を調整してSwiftスタイルの慣習に従います。コードのロジックを意図的に変更することはありません。レイアウトのみを変更します。

📏折り返し/行の長さには何を選ぶべきですか?

一般的な選択肢は**80から100文字**の範囲で、チームや表示幅によって異なります。狭いレイアウト(分割ビューのXcodeなど)には小さい値を、チームが広い行に慣れている場合は大きい値を使用します。行の長さに基づく折り返しをしたくない場合は`0`に設定します。

🧹これはSwiftLintの代替ですか?

いいえ。フォーマッターは**レイアウトとスタイル**(インデント、折り返し、スペース)に焦点を当て、SwiftLintは**リンティングルールと潜在的な問題**(未使用コード、命名、複雑さ)に焦点を当てます。多くのチームは両方を併用しています。

🔒本番のSwiftコードをここに貼り付けても安全ですか?

一般的なルールとして、非常に機密性の高いコード(独自のアルゴリズムや秘密など)をオンラインツールに貼り付けるのは避けてください。機密プロジェクトでは、ローカルまたはCIシステム内でプライベート設定でSwiftFormatを実行することを推奨します。

このフォーマッターをすべてのコミットで自動的に実行できますか?

はい – リポジトリで**SwiftFormat**を使用して(例えばGitのpre-commitフック、Xcodeビルドフェーズ、CIジョブ経由で)同じスタイルを自動的に強制します。このオンラインツールはクイックチェックと小さなスニペットに最適です。

Pro Tips

Best Practice

チームで**インデントサイズ**と**折り返し/行の長さ**を合意し、このツールと`.swiftformat`設定の両方で同じ値を反映させましょう。

Best Practice

プルリクエストでフォーマッターを実行し、コードレビューをスペースの議論ではなくロジックとアーキテクチャに集中させましょう。

Best Practice

生成されたSwiftコード(コード生成ツールからのものなど)にフォーマッターを使用し、手書きのコードと同じくらいクリーンに見えるようにしましょう。

Best Practice

このフォーマッターをXcodeの「再インデント」と組み合わせて、迅速なローカルの調整にのみ使用し、真に一貫したスタイルを維持するためにCIでSwiftFormatを使用しましょう。

Additional Resources

Other Tools