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

创建一个新的Swift项目
要创建新的Swift项目,你可以使用斯威夫特:创建新项目......指挥
Swift扩展会指导你完成整个流程。你可以打开这个命令找到
命令调色板,并按照下面的说明作。
- macOS 版本:CMD+Shift+P
- 其他平台:Ctrl+Shift+P

- 从模板列表中选择你想创建的项目类型。
- 选择项目将要存储的目录。
- 给你的项目起个名字。
- 打开新创建的项目。你将被提示在
当前窗口、新窗口,或者添加到当前工作区。该
默认行为可以通过使用
swift.openAfterCreateNewProject环境。
语言特征
Swift 扩展使用 SourceKit LSP 来驱动语言功能。SourceKit LSP 提供了以下功能 编辑。请使用这些链接查看每个主题的VS代码文档:
SourceKit LSP 还提供代码作以自动化常见任务。VS Code 中的代码作 在编辑器边缘附近出现一个灯泡(见下方截图,了解 举个例子)。点击灯泡会显示可用的作 这些可能包括:
- 向你的目标添加
Package.swift - 将 JSON 转换为协议
- 为你的函数添加文档

在Swift 6.1之前,你必须执行快速建造你的项目中的命令也可以
在使用语言功能之前,可以在命令行或使用VS Code中的任务。
这会填充SourceKit-LSP中的索引。
快速任务
Visual Studio Code 提供了任务,作为运行外部工具的方式。请参阅“通过任务集成外部工具”文档了解更多。
Swift扩展提供了一些内置任务,你可以用来构建
Swift 软件包管理器。你也可以通过创建一个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"
}
]
}
上述任务配置为建造小组。这意味着它会
出现在运行构建任务在macOS上可以通过CMD+Shift+B打开菜单,在其他平台上按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 中的调试视图启动调试会话。
- 选择你想要调试的启动配置。
- 点击绿色播放按钮启动调试会话。
执行文件会被启动,你可以在 中设置断点 你的Swift代码,在代码执行时会被触发。
下面的截图展示了调试 Hello World 程序的示例。它 在断点上暂停,你可以看到调试视图显示这些值 范围中的变量。你也可以在编辑器中将鼠标悬停在标识符上查看 它们的变量值:

测试探索器
Visual Studio Code 在左侧侧栏提供了一个测试资源管理器视图,可以 可使用:
- 为了导航到测试
- 进行测试
- 调试测试
Swift扩展支持XCTest以及Swift测试。 当你编写测试时,它们会自动添加到测试资源管理器中。

调试测试:
- 设定一个断点
- 用
调试测试档案。
该有覆盖的运行测试配置文件对被测代码进行分析并打开一个
测试运行完成时,代码覆盖率报告。当你浏览覆盖的文件时,
测试中执行的行号显示为绿色,执行的行号显示为绿色
未接显示为红色。鼠标悬停在行号上显示覆盖次数
台词被执行。行执行计数可以通过测试:展示直联覆盖指挥部。
带Tab的Swift Testing测试可以通过以下方式在测试资源管理器中进行筛选@TestTarget:tagName.那你就可以了
运行或调试过滤后的测试列表。
Swift VS Code 扩展不支持在 Swift 5.10 或更早版本中运行 Swift 测试。
高级工具链选择
Swift扩展会自动检测你安装的Swift工具链。
不过,它还提供一个命令,称为斯威夫特:选择工具链......即
如果你安装了多个工具链,可以用来在工具链之间选择。
这是一个用于将 VS Code 与工具链配置为高级功能
比你机器的默认设置更重要。建议使用XCODE-SELECT(Xcode-select)关于
macOS 或迅速在 Linux 上实现了全球工具链切换。
你可能会被提示选择配置这条新路径的位置。你的选择有 收件人:
- 保存在用户设置里
- 保存在工作区设置里
请记住,工作区设置优先于用户设置:

Swift扩展程序会提示你重新加载扩展程序以实现 拿起新的工具链。你必须这样做,否则扩展不会生效 正常工作:
