本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

在Visual Studio Code中使用Swift

Swift 是一种通用编程语言,对新手友好,对专家强大。 它快速、现代、安全,书写起来令人愉快。本主题详细介绍了在 Visual Studio Code 中设置和使用 Swift 的方法,以及 swiftlang.swift-vscode 扩展。

Swift 扩展包括:

  • 语法高亮和代码补全
  • 代码导航功能,如“转到定义”和“查找所有引用”
  • 代码重构和快速修复
  • 包管理及支持 Swift 包管理器的任务
  • 丰富的调试支持
  • 使用xctest或Swift Testing框架进行测试

Swift 扩展旨在支持以下项目:

  • Swift 包管理器项目(例如使用 aPackage.swift)
  • 项目可以生成一个编译命令.json(例如,使用 CMake)

安装扩展

  1. 首先,安装 Swift。如果你的系统上还没有安装 Swift,请参阅 Swift.org 上的入门指南
  2. 下载并安装 Visual Studio Code.
  3. VS Code 市场 安装 Swift 扩展,或直接从 VS Code 扩展面板中安装。

从扩展面板安装 swift-vscode 扩展

创建一个新的 Swift 项目

要创建一个新的 Swift 项目,您可以使用Swift:创建新项目...在 Swift 扩展中使用命令来引导您完成此过程。您可以通过打开命令面板并按照以下说明进行操作来找到此命令。

  • 对于macOS:CMD+Shift+P
  • 其他平台:Ctrl+Shift+P

创建新项目命令显示可用的项目模板

  1. 从模板列表中选择您想要创建的项目类型。
  2. 选择项目将要存储的目录。
  3. 给你的项目取一个名字。
  4. 打开新创建的项目。您将被提示在当前Windows、新Windows或当前工作区中打开该项目。默认行为可以通过使用来配置 swift.openAfterCreateNewProject设置。

语言特性

Swift扩展使用SourceKit LSP 来实现语言特性。SourceKit LSP在编辑器中提供了以下功能。使用这些链接查看每个主题的VS Code文档:

SourceKit LSP 还提供了代码操作来自动化常见任务。在 VS Code 中,代码操作会显示在编辑器边缘附近的一个小灯泡旁边(见下图的示例)。点击小灯泡将显示可用的操作,这些操作可能包括:

  • 将目标添加到您的Package.swift
  • 将JSON转换为协议
  • 为你的函数添加文档

包裹迅速行动

重要

在 Swift 6.1 之前,您必须执行一个快速构建在使用语言特性之前,需要在命令行或在 VS Code 中对项目发出命令。这会填充 SourceKit-LSP 中的索引。

快速任务

Visual Studio Code 提供任务作为运行外部工具的一种方式。请参阅 通过任务集成外部工具 文档以了解更多信息。

Swift 扩展提供了一些内置任务,您可以使用这些任务通过 Swift 包管理器进行构建。您还可以通过创建一个自定义任务来配置自定义任务。 任务.json在项目根文件夹中的文件。例如,这个 任务.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"
    }
  ]
}

上述任务被配置为处于构建组。这意味着它将出现在运行构建任务 可以通过 CMD+Shift+B 在 macOS 上打开的菜单或 Ctrl+Shift+B 在其他平台上打开的菜单:

运行构建任务菜单

在构建过程中出现的任何错误都会在编辑器中显示为诊断信息,同时也会显示 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 的 Debug 视图启动调试会话。

  1. 选择您希望调试的启动配置。
  2. 点击绿色播放按钮以启动调试会话。

可执行文件将被启动,并且您可以在您的 Swift 代码中设置断点,当代码执行时这些断点将会被触发。

下面的截图显示了一个调试Hello World程序的示例。它暂停在断点上,你可以看到调试视图显示了作用域中变量的值。你还可以在编辑器中悬停标识符以查看它们的变量值:

调试

测试探索者

Visual Studio Code 在左侧边栏中提供了一个测试浏览器视图,可以用于:

  • 导航到测试
  • 运行测试
  • 调试测试

Swift 扩展支持 XCTest 以及 Swift 测试。 当您编写测试时,它们会自动添加到测试浏览器中。

内联测试错误

调试测试:

  1. 设置断点
  2. 运行测试、套件或整个测试目标调试测试个人资料。

运行测试并覆盖分析被测代码并在测试完成后打开代码覆盖报告。浏览覆盖文件时,测试期间执行的行号显示为绿色,未执行的行号显示为红色。将鼠标悬停在行号上会显示被覆盖行的执行次数。可以使用以下选项显示或隐藏行执行计数。 测试:显示行内覆盖命令。

Swift Testing测试用 Tab 注释的测试可以在测试资源管理器中过滤@TestTarget:标签名然后你可以运行或调试过滤后的测试列表。

重要

Swift VS Code 扩展不支持在 Swift 5.10 或更早版本中运行 Swift 测试。

高级工具链选择

Swift扩展会自动检测您已安装的Swift工具链。 但是,它还提供一个名为的命令Swift:选择工具链...可以用来在多个已安装的工具链之间进行选择。

重要

这是一个高级功能,用于在你的机器上配置 VS Code 的非默认工具链。建议使用xcode-select在macOS或迅速地在 Linux 上全局切换工具链。

您可能会被提示选择配置此新路径的位置。您的选项是

  • 保存在用户设置中
  • 保存到工作区设置

请记住,工作区设置优先于用户设置:

设置选择

Swift 扩展将提示您重新加载扩展,以使用新的工具链。您必须这样做,否则扩展将无法正常工作:

重新加载 VS Code 警告