Visual Studio Code

一般知识

VSCode 是微软和志愿者开发的多平台开源编程编辑器。它使用扩展支持多种编程语言。这是 Firefox 开发的推荐编辑器。

有关 VSCode 项目的更多一般信息,请参阅 存储库

设置

如果 VS Code 已经打开,请先关闭它,然后通过在终端中运行以下命令来构建 VS Code 的配置

./mach ide vscode

这将自动为工作区设置一些推荐的偏好设置,如果您已设置为进行完整构建,它将启用 clangd 和 rust 集成。

如果成功,VS Code 将在最后打开。您无需每次都运行此命令来打开 VS Code,您可以通过正常方式打开它。

如果您正在运行完整构建,则上述命令将设置 Clangd 集成,以便随后调用的 ./mach build 运行并更新集成。

注意

如果 VS Code 已经使用先前生成的配置打开,请确保重新启动 VS Code,否则将不会使用新配置,并且 clangd 服务器所需的 compile_commands.json 不会刷新。这是 clangd-vscode 扩展程序中的一个已知 bug

忽略 Mercurial 存储库中的文件

注意

运行 ./mach ide vscode 时会自动执行此操作,但可以手动更改。

在 mozilla-central 中使用 Mercurial 时,VS Code 默认情况下会将您的构建目录视为普通目录,从而导致一些不良行为,包括索引时间过长、转到定义将在构建目录中打开文件而不是源代码树,以及按名称搜索文件将在源代码树和构建目录中找到重复文件(注意:在使用 Git 时,VS Code 不会这样做,因为它会读取 .gitignore)。您可以按照以下说明让 VS Code 大致忽略您的构建目录

  1. 转到“首选项”->“设置”

  2. 在“设置”中搜索“排除”

  3. (可选)选择搜索栏下方的“工作区”,仅为 mozilla-central 存储库更改此设置

  4. 在“Files: Exclude”下,单击“Add Pattern”,键入 obj-*(假设您的构建目录名称以默认文本 obj- 开头),然后单击“确定”

  5. 对“Files: Watcher Exclude”设置重复上述步骤

  6. 重新加载 VS Code:最简单的方法是退出并重新打开它。

尽管排除了上述构建目录,但“转到定义”仍将正确打开仅出现在构建目录中的文件,例如生成的源代码。

C/C++ 功能和支持

对于 C++ 支持,我们提供了一个基于 clangd 的开箱即用配置。

利用 clang 工具链编译器,我们现在在 IDE 中支持以下功能

1. 语法高亮

2. IntelliSense,提供全面的代码补全和建议

../../_images/auto_completion.gif

3. 转到定义和转到声明

../../_images/goto_definition.gif

4. 查找所有引用

../../_images/find_references.gif

5. 打开类型层次结构

../../_images/type_hierarchy.gif

6. 重命名符号,包括声明、定义和引用在内的所有符号用法都将被重命名

../../_images/rename_symbol.gif

7. 代码格式化,基于 clang-format,它使用 .clang-format.clang-format-ignore 文件遵守我们的编码标准。格式可以应用于整个文件或代码选择

../../_images/format_selection.gif

8. 内联解析错误,并提供有限的自动修复提示

../../_images/diagnostic_error.gif

9. 使用 clang-tidy 和我们启用的检查器列表进行基本静态代码分析。(这仍在进行中,并非所有检查器都受 clangd 支持)

Clangd 特定命令

Clangd 支持一些特定于 C/C++ 的命令

"clangd.switchheadersource"

此命令在当前打开的头文件中导航到其对应的源文件(如果有),反之亦然。

此命令可以从命令菜单(通过 F1 激活)或使用其键绑定 Alt+o(Mac 上为 Alt+cmd+o)调用。键绑定也可以在 Keyboard Shortcuts 中自定义。

通过 SSH 进行远程开发

VS Code 提供了一个 扩展,允许您将任何具有 SSH 服务器的远程机器用作开发环境。无论它是基于 Linux、macOS 还是 Windows,只要目标机器提供 SSH 连接,就可以用于开发。

由于扩展程序直接在远程机器上运行命令和其他扩展程序,因此您无需在本地机器上拥有任何源代码即可远程使用 VS Code。

要设置连接,请按照以下步骤操作

1. 打开 VS Code 并从左侧面板中选择 Remote Explorer

../../_images/remote_explorer.png

2.Remote Explorer 面板中,选择 SSH Targets 并单击 Add 并输入连接详细信息

../../_images/remote_explorer_add.png ../../_images/remote_explorer_add_wind.png

3. 单击您在上一步中配置的连接

4. 最后,您应该已连接到所需的远程 SSH 服务器

../../_images/connection_done.png

请注意,在第一次连接期间,VS Code 将在远程安装自身,并安装所有必要的依赖项。

提交 Bug

Bug 应在 Firefox 构建系统 产品的 开发环境集成 下提交,最好阻塞 Bug 1662709