VS Codeのエージェントモードを拡張するには、を試してください!

Visual Studio Code で Swift を使用する

Swift は、初心者にも親しみやすく、専門家にとってはパワフルな汎用プログラミング言語です。高速でモダン、安全で、楽しくコーディングできます。このトピックでは、Visual Studio Code 内で swiftlang.swift-vscode 拡張機能を使用して Swift をセットアップし、使用する方法について詳しく説明します。

Swift 拡張機能には以下が含まれます:

  • シンタックス ハイライトとコード補完
  • 「定義へ移動」や「すべての参照を検索」などのコード ナビゲーション機能
  • リファクタリングとコードのクイック フィックス
  • Swift Package Manager をサポートしたパッケージ管理とタスク
  • 豊富なデバッグ サポート
  • XCTest または Swift Testing フレームワークを使用したテスト

Swift 拡張機能は、以下のプロジェクトをサポートするように設計されています:

  • Swift Package Manager プロジェクト (例: Package.swift を使用)
  • compile_commands.json を生成できるプロジェクト (例: CMake を使用)

拡張機能をインストールする

  1. まず、Swift をインストールします。システムに Swift がまだインストールされていない場合は、Swift.org のスタート ガイド を参照してください。
  2. Visual Studio Code をダウンロードしてインストールします
  3. VS Code Marketplace から、または VS Code の拡張機能ペインから直接 Swift 拡張機能をインストールします。

Installing the swift-vscode extension from the extensions pane

新しい Swift プロジェクトを作成する

新しい Swift プロジェクトを作成するには、Swift 拡張機能の Swift: Create New Project... コマンドを使用して、プロセスをガイドさせることができます。このコマンドは、コマンド パレットを開き、以下の手順に従うことで見つけられます。

  • macOS の場合: CMD+Shift+P
  • その他のプラットフォームの場合: Ctrl+Shift+P

Create New Project command showing available project templates

  1. テンプレートのリストから作成したいプロジェクトの種類を選択します。
  2. プロジェクトを保存するディレクトリを選択します。
  3. プロジェクトに名前を付けます。
  4. 新しく作成したプロジェクトを開きます。現在のウィンドウで開くか、新しいウィンドウで開くか、または現在のワークスペースに追加するかを尋ねられます。このデフォルトの動作は、swift.openAfterCreateNewProject 設定を使用して構成できます。

言語機能

Swift 拡張機能は、言語機能を強化するために SourceKit LSP を使用します。SourceKit LSP は、エディターで以下の機能を提供します。各トピックの VS Code ドキュメントを参照するには、これらのリンクを使用してください:

SourceKit LSP は、一般的なタスクを自動化するためのコード アクションも提供します。VS Code のコード アクションは、エディターのマージン付近に電球として表示されます (この例は以下のスクリーンショットを参照)。電球をクリックすると、利用可能なアクションが表示され、以下のようなものが含まれます:

  • Package.swift にターゲットを追加する
  • JSON をプロトコルに変換する
  • 関数にドキュメントを追加する

Package swift actions

重要

Swift 6.1 より前では、言語機能を使用する前に、コマンドラインまたは VS Code のタスクを使用してプロジェクトで swift build コマンドを実行する必要があります。これにより、SourceKit-LSP のインデックスが作成されます。

Swift タスク

Visual Studio Code は、外部ツールを実行する方法としてタスクを提供します。詳しくは、「タスクを介した外部ツールとの統合」のドキュメントを参照してください。

Swift 拡張機能には、Swift Package Manager を介してビルドするために使用できる組み込みのタスクがいくつか用意されています。プロジェクトのルート フォルダーに tasks.json ファイルを作成することで、カスタム タスクを構成することもできます。たとえば、この tasks.json は、Swift ターゲットをリリース モードでビルドします。

{
  "version": "2.0.0",
  "tasks": [
    {
      "type": "swift",
      "label": "Swift Build All - Release",
      "detail": "swift build --build-tests",
      "args": ["build", "--build-tests", "-c", "release"],
      "env": {},
      "cwd": "${workspaceFolder}",
      "group": "build"
    }
  ]
}

上記のタスクは、build グループに属するように構成されています。これは、macOS では CMD+Shift+B、その他のプラットフォームでは Ctrl+Shift+B で開くことができる ビルド タスクの実行 メニューに表示されることを意味します。

Run build task menu

ビルド中に発生したエラーは、SourceKit-LSP によって提供される診断情報と共に、エディターに診断として表示されます。別のビルド タスクを実行すると、前のビルド タスクからの診断情報がクリアされます。

デバッグ

Visual Studio Code は、豊富なデバッグ体験を提供します。詳細については、「デバッグ」ドキュメントを参照してください。

Swift 拡張機能は、デバッグ サポートを有効にするために LLDB DAP 拡張機能 に依存しています。

デフォルトでは、拡張機能は Swift パッケージ内の各実行可能ターゲットに対して起動構成を作成します。プロジェクトのルート フォルダーに launch.json ファイルを追加することで、これらを自分で構成できます。たとえば、この launch.json は、カスタム引数を付けて Swift 実行可能ファイルを起動します。

{
  "configurations": [
    {
      "type": "swift",
      "name": "Debug swift-executable",
      "request": "launch",
      "args": ["--hello", "world"],
      "cwd": "${workspaceFolder}",
      "program": "${workspaceFolder}/.build/debug/swift-executable",
      "preLaunchTask": "swift: Build Debug swift-executable"
    }
  ]
}

VS Code のデバッグ ビューを介してデバッグ セッションを開始できます。

  1. デバッグしたい起動構成を選択します。
  2. 緑色の再生ボタンをクリックして、デバッグ セッションを開始します。

実行可能ファイルが起動され、Swift コードにブレークポイントを設定すると、コードの実行中にそこで停止します。

以下のスクリーンショットは、Hello World プログラムをデバッグしている例を示しています。ブレークポイントで一時停止しており、デバッグ ビューにはスコープ内の変数の値が表示されていることがわかります。エディター内の識別子にマウスカーソルを合わせると、その変数の値を確認することもできます。

Debugging

テスト エクスプローラー

Visual Studio Code は、左側のサイドバーにテスト エクスプローラー ビューを提供しており、これを使用して以下のことが可能です:

  • テストへのナビゲート
  • テストの実行
  • テストのデバッグ

Swift 拡張機能は、XCTestSwift Testing の両方をサポートしています。テストを作成すると、それらは自動的にテスト エクスプローラーに追加されます。

Inline test errors

テストをデバッグするには:

  1. ブレークポイントを設定する
  2. デバッグ テスト プロファイルを使用して、テスト、スイート、またはテスト ターゲット全体を実行します。

カバレッジ付きでテストを実行 プロファイルは、テスト対象のコードを計測し、テスト実行が完了するとコード カバレッジ レポートを開きます。カバレッジのあるファイルを参照すると、テスト中に実行された行番号は緑色で、実行されなかった行番号は赤色で表示されます。行番号にマウスカーソルを合わせると、カバレッジのある行が何回実行されたかが表示されます。行の実行回数は、Test: Show Inline Coverage コマンドを使用して表示または非表示にできます。

タグで注釈が付けられた Swift Testing のテストは、@TestTarget:tagName を使用してテスト エクスプローラーでフィルタリングできます。その後、フィルタリングされたテストのリストを実行またはデバッグできます。

重要

Swift VS Code 拡張機能は、Swift 5.10 以前での Swift Testing テストの実行をサポートしていません。

高度なツールチェーンの選択

Swift 拡張機能は、インストールされている Swift ツールチェーンを自動的に検出します。ただし、複数インストールされている場合にツールチェーンを切り替えるために使用できる Swift: Select Toolchain... というコマンドも提供しています。

重要

これは、マシン上のデフォルト以外のツールチェーンで VS Code を構成するための高度な機能です。macOS では xcode-select、Linux では swiftly を使用して、ツールチェーンをグローバルに切り替えることをお勧めします。

この新しいパスをどこに構成するか尋ねられることがあります。選択肢は以下の通りです:

  • ユーザー設定に保存する
  • ワークスペース設定に保存する

ワークスペース設定がユーザー設定よりも優先されることに注意してください。

Settings selection

その後、Swift 拡張機能は、新しいツールチェーンを認識させるために拡張機能をリロードするように求めます。これを行わないと、拡張機能は正しく機能しません。

Reload VS Code warning