在Visual Studio Code中使用Swift
Swift 是一种通用编程语言,对新手友好,对专家强大。 它快速、现代、安全,书写起来令人愉快。本主题详细介绍了在 Visual Studio Code 中设置和使用 Swift 的方法,以及 swiftlang.swift-vscode 扩展。
Swift 扩展包括:
- 语法高亮和代码补全
- 代码导航功能,如“转到定义”和“查找所有引用”
- 代码重构和快速修复
- 包管理及支持 Swift 包管理器的任务
- 丰富的调试支持
- 使用xctest或Swift Testing框架进行测试
Swift 扩展旨在支持以下项目:
- Swift 包管理器项目(例如使用 a
Package.swift) - 项目可以生成一个
编译命令.json(例如,使用 CMake)
安装扩展
- 首先,安装 Swift。如果你的系统上还没有安装 Swift,请参阅 Swift.org 上的入门指南。
- 下载并安装 Visual Studio Code.
- 从 VS Code 市场 安装 Swift 扩展,或直接从 VS Code 扩展面板中安装。

创建一个新的 Swift 项目
要创建一个新的 Swift 项目,您可以使用Swift:创建新项目...在 Swift 扩展中使用命令来引导您完成此过程。您可以通过打开命令面板并按照以下说明进行操作来找到此命令。
- 对于macOS:CMD+Shift+P
- 其他平台:Ctrl+Shift+P

- 从模板列表中选择您想要创建的项目类型。
- 选择项目将要存储的目录。
- 给你的项目取一个名字。
- 打开新创建的项目。您将被提示在当前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 视图启动调试会话。
- 选择您希望调试的启动配置。
- 点击绿色播放按钮以启动调试会话。
可执行文件将被启动,并且您可以在您的 Swift 代码中设置断点,当代码执行时这些断点将会被触发。
下面的截图显示了一个调试Hello World程序的示例。它暂停在断点上,你可以看到调试视图显示了作用域中变量的值。你还可以在编辑器中悬停标识符以查看它们的变量值:

测试探索者
Visual Studio Code 在左侧边栏中提供了一个测试浏览器视图,可以用于:
- 导航到测试
- 运行测试
- 调试测试
Swift 扩展支持 XCTest 以及 Swift 测试。 当您编写测试时,它们会自动添加到测试浏览器中。

调试测试:
- 设置断点
- 运行测试、套件或整个测试目标
调试测试个人资料。
该运行测试并覆盖分析被测代码并在测试完成后打开代码覆盖报告。浏览覆盖文件时,测试期间执行的行号显示为绿色,未执行的行号显示为红色。将鼠标悬停在行号上会显示被覆盖行的执行次数。可以使用以下选项显示或隐藏行执行计数。
测试:显示行内覆盖命令。
Swift Testing测试用
Tab
注释的测试可以在测试资源管理器中过滤@TestTarget:标签名然后你可以运行或调试过滤后的测试列表。
Swift VS Code 扩展不支持在 Swift 5.10 或更早版本中运行 Swift 测试。
高级工具链选择
Swift扩展会自动检测您已安装的Swift工具链。
但是,它还提供一个名为的命令Swift:选择工具链...可以用来在多个已安装的工具链之间进行选择。
这是一个高级功能,用于在你的机器上配置 VS Code 的非默认工具链。建议使用xcode-select在macOS或迅速地在 Linux 上全局切换工具链。
您可能会被提示选择配置此新路径的位置。您的选项是
- 保存在用户设置中
- 保存到工作区设置
请记住,工作区设置优先于用户设置:

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