2023 年 4 月(版本 1.78)
更新 1.78.1:此更新解决了此安全问题。
更新 1.78.2:此更新解决了这些问题。
下载:Windows:x64 Arm64 | Mac:通用 Intel Silicon | Linux:deb rpm tarball Arm snap
欢迎使用 Visual Studio Code 2023 年 4 月版本。此版本中有许多更新,我们希望您会喜欢,一些主要亮点包括
- 可访问性改进 - 更好的屏幕阅读器支持,新的音频提示。
- 新的颜色主题 - “现代”浅色和深色颜色主题默认设置。
- 配置文件模板 - 内置的 Python、Java、数据科学等的模板。
- 拖放选择器 - 选择您希望将项目链接放置到编辑器中的方式。
- 独立颜色选择器 - 用于插入或修改颜色格式的颜色选择器 UI。
- 源代码管理输入的快速修复 - 直接在输入框中修复拼写和其他错误。
- 将视频拖放到 Markdown 文件中 - 轻松在 Markdown 文件中添加视频标签。
- 将图像文件拖放到 Notebook 中以创建附件 - 在图像链接、路径或附件之间进行选择。
- Git LFS 和 VS Code for the Web - 在使用 Git 大文件存储的仓库中使用 vscode.dev。
- VS Code Day 2023 - 在 YouTube 播放列表中了解会议内容。
如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新页面。
内测版:想尽快尝试新功能?您可以下载每晚的内测版构建,并尽快尝试最新的更新。
辅助功能
Aria 详细信息设置
屏幕阅读器用户可以通过 "accessibility.verbosity.diff-editor" 和 "accessibility.verbosity.terminal" 设置,从功能的 aria-label 中排除提示,以减少冗余。
改进和统一的快速选择体验
以前,可访问性模式的用户在处理命令面板和其他快速选择时会遇到不同的行为。在可访问性模式下,为了完全可访问,快速选择的第一个项目不会被选中。在此迭代中,我们引入了新的行为,允许您拥有两全其美:一个可访问的且快速的快速选择工作流程,使您可以立即按 Enter。
注意:这种方法的一个权衡是,如果选择了快速选择中的项目,由于 ARIA 的限制,您将无法听到快速选择输入框的 ARIA 更改。要听到这些更改,您可以按住 Shift + Tab,直到列表中没有项目被选中。
终端
终端可访问缓冲区改进
- 使用 ⌥↓ (Windows, Linux Alt+Down) 和 ⌥↑ (Windows, Linux Alt+Up) 在命令之间跳转。
- 使用 设置选择锚点、从锚点到光标选择 和页面导航,通过 ⇧PageUp (Windows, Linux Shift+PageUp) 和 ⇧PageDown (Windows, Linux Shift+PageDown)。
- 在接受转到新位置的命令之前,使用 转到可访问视图中的符号(⇧⌘O (Windows, Linux Ctrl+Shift+O))预览位置。
- 在动态更新发生时与输出进行交互。
终端可访问性帮助菜单
现在可以使用箭头键导航终端的 可访问性帮助 菜单。
Diff 编辑器音频提示改进
VS Code 现在会缓存音频提示,以便只加载一次,从而提高响应速度,并改进了 diff 编辑器使用的音调。
转到行/列播报
当调用 转到行/列...(⌃G (Windows, Linux Ctrl+G))时,屏幕阅读器现在会朗读相关的行内容。
工作台
新的默认颜色主题
新的“深色现代”和“浅色现代”主题取代了“深色+”和“浅色+”,成为新的默认深色和浅色颜色主题。

配置文件模板
配置文件允许您根据当前项目或任务快速切换编辑器扩展、设置和 UI 布局。为了帮助您开始使用配置文件,我们发布了 配置文件模板,它们是针对不同编程语言和场景的精选配置文件。您可以按原样使用配置文件模板,也可以将其用作进一步定制自己工作流程的起点。
您通过“**配置文件**”>“**创建配置文件...**”下拉菜单选择一个配置文件模板

选择配置文件模板后,您可以查看设置、扩展和其他数据,如果不想将它们包含在新配置文件中,可以删除单个项目。

根据模板创建新配置文件后,对设置、扩展或 UI 所做的更改将持久化到您的配置文件中。
字形边距装饰渲染改进
本月,我们改进了出现在编辑器边距中的装饰的渲染。调试相关的装饰(如断点和堆栈帧指针)将始终渲染在编辑器行号旁边。其他装饰会渲染在任何调试相关装饰的左侧。这样即使同一行有其他装饰(如测试装饰或书签),您也可以看到断点。请注意,点击尚未限定到单个装饰。

从图像预览复制图像
您现在可以使用 ⌘C (Windows, Linux Ctrl+C) 或在预览中右键单击并选择 复制,从内置图像预览中复制图像。复制的图像数据可以粘贴回 VS Code 或其他应用程序中。
编辑器
拖放选择器
VS Code 允许您在按住 Shift 后再拖放文件和内容到文本编辑器中。在此更新中,我们添加了 UI,让您可以更改将此内容插入文件的方式。例如,将图像拖放到 Markdown 文件后,此控件允许您在插入 Markdown 图像、图像的工作区相对路径和图像的完整路径之间切换。
当您拖放内容并且有多种可能的插入方式时,将显示拖放选择器控件。您可以通过单击它或使用 ⌘. (Windows, Linux Ctrl+.) 打开该控件。拖放选择器会在您开始输入或将光标移到插入文本外部时消失。您还可以使用 "editor.dropIntoEditor.showDropSelector": "never" 完全禁用拖放选择器控件。
VS Code 包含几种内置方式来放置常见的内容格式。扩展程序也可以使用 DocumentDropEditProvider API 添加自己的放置选项。
独立颜色选择器
现在可以启动一个独立的颜色选择器来插入和替换颜色。要打开颜色选择器,请从命令面板中选择 显示或聚焦独立颜色选择器。

当扩展没有提供任何颜色或颜色格式时,颜色选择器会退回到 CSS 格式的颜色。现在还可以在所有文件类型中可视化 CSS 格式颜色的内联颜色装饰器。要显示这些装饰器,请启用 编辑器: 默认颜色装饰器 (editor.defaultColorDecorators) 设置。
时区偏移的新代码片段变量
现在可以使用一个新的代码片段变量 CURRENT_TIMEZONE_OFFSET。此变量返回当前时区偏移,格式为 +HH:MM 或 -HH:MM(例如 -07:00)。这补充了其他与时间相关的代码片段变量,如 CURRENT_YEAR、CURRENT_MONTH、CURRENT_DAY_NAME 等。
Diff 算法改进
我们继续改进 VS Code 中的新 diff 算法,并弃用了旧算法。虽然旧算法仍然是 diff 编辑器的默认设置,但我们将慢慢将默认设置更改为新算法并衡量其性能。
您可以通过设置 diffEditor.diffAlgorithm 为 advanced(新 diff 算法)或 legacy(默认)来覆盖默认设置。
在许多情况下,新算法会产生更好的 diff,但对于某些文档可能会变慢。
以下是一些示例(传统版与高级版对比)
-
通过考虑缩进来改进行插入 diff


-
通过考虑空格和分隔符字符来改进词语插入 diff


-
通过最小化 diff 的长度和块的数量,实现更自然的 diff


-
通过将字符级 diff 扩展到整个单词(如果单词的一部分发生显著变化),减少噪音


差异化源代码甚至仅仅评估差异的质量都是难题,仍然有改进的空间。如果您遇到认为算法可以做得更好的差异,请尝试我们的 diff playground,并在我们的问题跟踪器中分享您的反馈和想法!
内联完成改进
在此迭代中,我们重写了内联完成功能,并修复了许多错误。
最值得注意的是,接受单词现在可以跨越多行工作,并且有一个新的命令 接受行。为了支持此功能,接受下一个单词/行不再向扩展询问,因为内联完成提供程序扩展在询问下一行的内联完成时通常会报告完全不同的建议。
扩展
改进的扩展推荐通知
扩展推荐通知现在会显示推荐扩展的发布者。这有助于您在安装扩展之前做出更明智的决定。以下图像显示了有单个扩展和多个扩展推荐时的通知。

告知已安装的已弃用扩展
如果您安装的扩展已被弃用,您现在会收到通知,告知您此情况并建议替代方案。每个已弃用扩展只会显示一次。

源代码管理
源代码管理输入中的快速修复
源代码管理消息框中现在支持代码操作和快速修复
例如,Code Spell Checker 扩展会在源代码管理输入中添加拼写修复。扩展可以提供额外的修复和代码操作。
GitHub 仓库规则集
VS Code 已经允许您使用 git.branchProtection 设置定义分支保护。在此里程碑中,我们添加了一个新的实验性功能,它使用最近宣布的 GitHub 仓库规则集来确定分支是否受到保护。如果您正在使用 GitHub 仓库规则集,可以使用 github.branchProtection 设置启用此功能。
Notebook
将图像文件拖放到 Notebook 中以创建附件
您现在可以将图像文件拖放到 Notebook Markdown 单元格中以创建附件。拖放图像时,使用 新的拖放选择器控件 选择 将图像插入为附件

这会将图像作为附件添加到 Notebook 中,而不是仅仅添加指向图像的链接

切换 Notebook 输出滚动
您现在可以通过命令 Notebook: 切换单元格输出滚动(⌘K Y (Windows, Linux Ctrl+K Y))或截断消息中的链接,来切换单个单元格以在可滚动区域中显示输出。
查找控件改进
Notebook 查找控件默认搜索在视觉上显示的内容中的关键字。用户可以通过设置 notebook.find.scope 更改搜索范围(Markdown 源代码、Markdown 预览、代码源代码和代码输出)。此外,在替换匹配项时,Markdown 单元格会转换为可编辑单元格,以便您可以进行替换。完成后,单元格会转换回 Markdown,并恢复预览。
语言
将视频拖放到 Markdown 文件中
想在 Markdown 中插入视频?只需将其拖放到编辑器中,然后按住 Shift 将其放到文件中
这会插入一个指向视频文件的 <video> 标签。您可以从 VS Code 的资源管理器或本地操作系统拖放视频。
HTML 中 JavaScript 脚本块的严格空值
您现在可以使用 js/ts.implicitProjectConfig.strictNullChecks 设置为 HTML 脚本块中的 JavaScript 启用严格空值

启用严格空值后,悬停和其他 IntelliSense 功能会在类型可能为空时显示。例如,请注意 el 的类型现在如何变为 HTMLElement | null。这是因为 document.getElementById 如果找不到具有该 ID 的元素,则返回 null。
测试
连续运行现在可以为单个测试打开。这需要一个支持连续运行并采用了在上一次迭代中定型的 supportsContinuousRun API 的测试扩展。

Web 版 VS Code
将文件提交到 Git 大文件存储
Git 大文件存储 (LFS) 允许您在 Git 仓库中高效地存储大文件。github.dev 和 vscode.dev 现在支持向托管在 GitHub 上的 Git 仓库提交文件到 Git LFS,从而无需在本地安装 Git 的 LFS 扩展即可从浏览器轻松更新。
github.dev 和 vscode.dev 中的 LFS 提交支持在您的仓库根目录中已经有一个 .gitattributes 文件来指定哪些文件类型应使用 Git LFS 存储时开箱即用。要首次为 Git LFS 设置仓库,请参阅 Git LFS 文档。
远程开发
远程开发扩展允许您通过 SSH 或远程隧道使用开发容器、远程机器或适用于 Linux 的 Windows 子系统 (WSL) 作为功能齐全的开发环境。
您可以在 远程开发发行说明中了解新扩展功能和错误修复。
并查看 使用 VS Code 进行随处开发 的 VS Code Day 会议。
对扩展的贡献
Python
Jupyter 扩展不再默认安装
应反馈自 Dev Container 用户,他们希望在不默认安装 Jupyter 扩展的情况下更快地创建容器,因此 Jupyter 扩展不再与 Python 扩展一起默认自动安装。
如果您有只列出 Python 扩展的 Dev Container 定义,并希望继续在容器中使用 Jupyter Notebook 功能,可以将 Jupyter 扩展 ID 添加到 devcontainer.json 文件中
"customizations": {
"vscode": {
"extensions": ["ms-python.vscode-pylance", "ms-python.python", "ms-toolsai.jupyter"]
}
}
或者,您可以创建一个包含 Python 和 Jupyter 扩展以及您最喜欢的任何其他扩展的配置文件。
使用 microvenv 创建环境命令
当使用未安装 venv 包的 Python 发行版调用 Python: 创建环境 命令时,Python 扩展现在使用 microvenv 作为后备。这对于预装在基于 Unix 的系统上的 Python 环境可能是一个障碍。
Microvenv 是一个轻量级的 Python 模块,它提供了一种创建 Python 项目虚拟环境的极简方法。它没有传统的激活脚本,但当您的 Python 发行版中没有 venv 模块时,它提供了一个创建隔离环境的良好替代方案。
创建环境 命令还将 pip 安装到通过 microvenv 创建的环境中。
格式化扩展推荐
在以前的版本中,我们宣布了用于 Black Formatter 和 autopep8 的新扩展,它们通过 语言服务器协议 (LSP) 与 Python 扩展协同工作,为 Python 文件提供格式化。在此版本中,如果您仍在使用的 Python 扩展的内置格式化功能,我们会显示一条通知,提示您安装这些新扩展。
运行 Python 操作现在在子菜单中
为了简化右键单击编辑器时可用的 Python 命令,在终端中运行 Python 文件 和 在 Python 终端中运行选择/行 命令现在是 运行 Python 条目下的子菜单项。

f-string 的自动转换
一个新的 "python.analysis.autoFormatStrings" 设置,在您使用 Pylance 时启用 f-string 的自动转换。启用后,当您在引号内插入 { 时,Pylance 会自动在字符串开头插入 f
此设置的默认值当前为禁用状态,但在收到积极反馈后,将在即将发布的版本中启用。如果您对此功能有任何意见或建议,请随时在 Pylance GitHub 仓库上分享。
在包含路径的字符串上启用代码导航
还有一个新的实验性设置,称为 "python.analysis.gotoDefinitionInStringLiteral",它启用了从模块类字符串字面量进行 转到定义 的功能。如果您正在处理 Web 应用程序(如 Django 应用)并希望导航到字符串字面量中定义的模块或路径,这会很有帮助
此新设置与前面提到的 autoFormatStrings 设置一样,默认情况下是禁用的。但是,我们计划根据反馈在未来的版本中启用此行为。最终,我们计划完全删除此设置。
Jupyter
重启命令
Jupyter 扩展现在包含两个新命令,使用户可以直接重启内核并运行单元格。这些命令分别是 Restart Kernel and Run All Cells 和 Restart Kernel and Run Up To Selected Cell,可以通过命令 ID jupyter.restartkernelandrunallcells 和 jupyter.restartkernelandrunuptoselectedcell 访问。
重新连接到忙碌的远程 Jupyter 内核
在以前的版本中,当连接到远程 Jupyter 内核会话时,Jupyter 扩展会等待内核空闲后再连接。如果内核忙于运行长时间的计算,这可能需要很长时间。在此版本中,Jupyter 扩展会立即连接到内核,即使它很忙。这允许您在内核忙碌时中断它。
特定平台的 Jupyter 扩展
Jupyter 扩展现在附带特定平台的扩展,每个 VSIX 都针对特定平台构建(Windows 64 位、Windows 32 位、Linux x64、Alpine x64、macOS Intel、macOS Apple Silicon 等)。单个平台的 Jupyter 扩展的下载大小更小,从而缩短了下载时间和减少了磁盘空间使用。
GitHub 拉取请求和议题
GitHub 拉取请求和问题扩展取得了更多进展,该扩展允许您处理、创建和管理拉取请求和问题。亮点包括
- 您可以向拉取请求添加团队审阅者。
- 所有可以 签出默认分支 的位置现在都尊重
git.pullBeforeCheckout设置。 - 支持 GitHub 的文件级别注释。
请查看扩展0.64.0 版本变更日志以了解其他亮点。
GitHub Copilot
注意:这些功能在 GitHub Copilot Chat 扩展中可用。
聊天编辑器
我们 GitHub Copilot Chat 的第一个迭代在侧边栏中启用了聊天会话。现在,我们支持将相同的聊天视图作为编辑器打开。这允许您将聊天会话的位置自定义到窗口布局中的任何位置。
您可以通过运行命令 交互式会话:打开编辑器 来打开聊天编辑器,然后像处理任何其他编辑器一样在编辑器组之间移动它。

其他代码块命令
代码块工具栏中有两个新命令:插入到新文件 和 在终端中运行。它们位于现有的 复制 和 插入到光标 命令旁边,为您提供了快速对 Copilot 返回的代码建议采取行动的额外选项。

代码操作和内联聊天
编辑器聊天会话现在与快速修复集成。选择波浪线的灯泡,即可使用 Copilot 进行修复或解释的选项。
除了代码操作之外,现在也可以从编辑器上下文菜单访问内联聊天。
内联聊天模式
现在有一个设置可以更改内联聊天的不同模式:inlineChat.editMode。
选项包括
live- 直接将 AI 建议的更改应用于编辑器(默认)。livePreview- 应用更改,但在嵌入式 diff 编辑器中渲染它们。preview- 在分离的、嵌入式 diff 编辑器中显示更改。
命令面板中的类似命令
借助 Copilot 的强大功能,命令面板现在能够显示类似的命令结果。要启用此功能,您必须拥有有效的 Copilot 订阅,处于聊天视图的私人预览版中,并应用设置
"workbench.commandPalette.experimental.useSemanticSimilarity": true
以下是一些示例
-
“打开自动保存”被解释为 切换自动保存

-
“添加函数”在底部包含来自扩展程序的附加结果

-
最后,如果您的结果没有返回任何结果,您可以 询问 GitHub Copilot,它会将您在筛选框中的内容放入一个新的聊天中由 Copilot 处理。

我们将继续迭代此领域,敬请期待!
预览功能
TypeScript 5.1 支持
此更新包括对即将发布的 TypeScript 5.1 版本的支持。请阅读 TypeScript 5.1 Beta 博文和 TypeScript 5.1 迭代计划以获取有关 TypeScript 团队当前正在处理内容的更多详细信息。一些编辑器工具亮点
- JSX 标签的链接编辑支持。
@paramJSDoc 标签的代码片段补全。
要开始使用 TypeScript 5.1 nightly 版本,请安装 TypeScript Nightly 扩展。
使用 F2 重命名匹配的 JSX 标签
当您触发对 JSX 标签的重命名时,VS Code 现在仅重命名匹配的标签,而不是尝试更新标签的所有引用
这需要 TypeScript 5.1+,并且与重命名在 HTML 中的工作方式相匹配。
您可以使用 javascript.preferences.renameMatchingJsxTags 和 typescript.preferences.renameMatchingJsxTags 禁用此行为。
扩展创作
工作区编辑现在可以直接从 DataTransferFile 创建文件
将文件/内容拖放到编辑器 API 的主要用途之一是将拖放的文件/内容写入工作区。但在以前的 VS Code 版本中,这对于大文件来说可能相当慢。这是因为文件内容在进程之间被复制了两次:首先从渲染器到扩展主机读取文件内容,然后从扩展主机写回渲染器以写入文件。
class CreateFileDropProvider implements vscode.DocumentDropEditProvider {
async provideDocumentDropEdits(
_document: vscode.TextDocument,
_position: vscode.Position,
dataTransfer: vscode.DataTransfer,
_token: vscode.CancellationToken
): Promise<vscode.DocumentDropEdit | undefined> {
const pngFile = dataTransfer.get('image/png')?.asFile();
if (!pngFile) {
return;
}
// Read file
// This results in the entire file contents being copied over to the extension host.
const contents = await pngFile.data();
// Now create a workspace edit that writes the file into the workspace
// This results in the same file contents from above being copied back again.
const additionalEdit = new vscode.WorkspaceEdit();
const path = vscode.Uri.joinPath(
vscode.workspace.workspaceFolders![0].uri,
'image.png'
);
additionalEdit.createFile(path, { contents });
const edit = new vscode.DocumentDropEdit(path.fsPath);
edit.additionalEdit = additionalEdit;
return edit;
}
}
现在,您可以通过将 DataTransferFile 直接传递给 WorkspaceEdit.createFile 来避免这些额外的复制
additionalEdit.createFile(path, { contents: pngFile });
这应该会显著提高性能,尤其是在处理大文件时。
在 resolveCodeAction 中解析代码操作命令
CodeActionProvider 现在可以在 resolveCodeAction 中延迟解析 CodeAction 的命令。以前只能延迟解析 Code Action 的编辑内容。
如果命令计算成本很高,这允许 CodeActionProvider 将此工作推迟到应用 Code Action 时。
editor/lineNumber/context 菜单
我们已经确定了 editor/lineNumber/context 菜单。这允许扩展作者向锚定在编辑器行号和字形边距的上下文菜单贡献操作。贡献到此菜单的操作会在命令参数中收到行号,并在其 when 子句中引用 editorLineNumber 上下文键。
身份验证 API 改进
身份验证会话偏好现在感知工作区
对于支持一次登录多个帐户的身份验证提供程序(如 Microsoft),当调用带有 createIfNone: true 的 vscode.authentication.getSession 时,系统会提示用户选择要使用的帐户。
以前的行为
此偏好会一直记住,直到调用带有 ClearSessionPreference 标志的 vscode.authentication.getSession。
新行为
此偏好会为每个工作区记住,直到在该工作区中调用带有 ClearSessionPreference 标志的 vscode.authentication.getSession。
引入此行为是为了允许扩展为不同的工作区使用不同的帐户,并允许记住这些偏好。
注意:偏好是特定于扩展的。因此,如果一个扩展调用
vscode.authentication.getSession,它不会影响另一个扩展调用vscode.authentication.getSession的会话偏好。
桌面版中的 Microsoft 主权云支持
在此迭代中,我们将一个新的身份验证提供程序引入到核心产品中:Microsoft Sovereign Cloud。此提供程序用于向 Microsoft 云安全(如 Azure 美国政府、Azure 中国等)进行身份验证。在底层,它的工作方式与 Microsoft 身份验证提供程序完全相同,只是 URL 不同。如果您想使用此身份验证提供程序,可以通过设置 microsoft-sovereign-cloud.endpoint 值来引导用户,该值有几个默认值,但也支持自定义的主权云 URL。
请记住,大多数用户没有主权云帐户。我们的建议是,如果您想支持主权云,您应该使用户能够通过主权云登录,但不要将其作为主要工作流程的一部分,以免使用户感到困惑。
提议的 API
每个里程碑都会带来新的提议 API,扩展作者可以尝试这些 API。一如既往,我们希望得到您的反馈。以下是尝试提议 API 的步骤
- 查找您要尝试的提议并将其名称添加到
package.json#enabledApiProposals。 - 使用最新的vscode-dts并运行
vscode-dts dev。它会将相应的d.ts文件下载到您的工作区中。 - 您现在可以根据该提议进行编程。
您不能发布使用提议 API 的扩展。下个版本中可能会有破坏性更改,我们绝不希望破坏现有扩展。
格式化多个范围
DocumentRangeFormattingEditProvider API 有一个可选的提议函数,用于同时支持格式化多个范围。通过采用此 API,提供程序可以改进格式化修改后的范围的工作流,因为只需要向语言服务发出一个请求。
文档拖放元数据
此新提议丰富了现有的 拖入编辑器 API,以支持 新的拖放选择器。提供程序可以使用它来提供更好的拖入编辑器体验。
此提议的第一部分向 DocumentDropEdit 添加了一个 label 属性。此人类可读的标签描述了编辑操作,并显示在拖放选择器 UI 中

第二部分向 registerDocumentDropEditProvider 添加了一个额外的 metadata 参数。此元数据参数用于识别提供程序,并告知 VS Code 它适用的内容类型
vscode.languages.registerDocumentDropEditProvider(
'markdown',
new InsertBase64ImageProvider(),
{
// Unique id that identities this provider
id: 'insertBase64Image',
// Array of mime types, such as `image/png` or `text/plain`, that this provider supports.
// You can also use wildcards, such as `image/*` which matches any image content that is dropped.
dropMimeTypes: ['image/*']
}
);
dropMimeTypes 数组可以帮助提高性能,因为只有在拖放相关内容时才会调用您的提供程序。
工程
Electron 22 更新
在此里程碑中,我们完成了使用自定义分配器来托管扩展的 实验,并准备将 Electron 22 打包到 VS Code 桌面版中。我们要感谢所有在 Insiders 版本上进行自我托管并提供早期反馈的人员。此更新附带 Chromium 108.0.5359.215 和 Node.js 16.17.1。
VS Code Day
您可以通过 VS Code Day 2023 YouTube 播放列表了解 VS Code Day 的所有亮点。您可以在其中找到关于 GitHub Copilot、数据科学和TypeScript 等主题的会议,以及 Erich Gamma 和 Kai Maetzel 的主题演讲,他们在其中解释了团队如何构建和发布 VS Code。
感谢
最后但同样重要的是,向 VS Code 的贡献者们致以衷心的感谢。
问题跟踪
对我们问题跟踪的贡献
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @starball5 (starball)
- @tamuratak (Takashi Tamura)
- @Kathund (Kath)
- @ArturoDent (ArturoDent)
拉取请求
对 vscode 的贡献
- @a-stewart (Anthony Stewart):支持复制非 png 文件并等待焦点以避免竞态条件 PR #180322
- @andrewbranch (Andrew Branch):[typescript-language-features] 支持根据偏好设置将“转到定义”替换为“转到源定义” PR #178840
- @c-claeys (Cristopher Claeys):添加对多范围格式化的支持 PR #163190
- @donaldnevermore (Donald33 Wang):支持自定义 switch-case 缩进 PR #179670
- @FlorentRevest (Florent Revest):调试会话:使用队列确保以正确的顺序处理被调试方状态 PR #180410
- @gjsjohnmurray (John Murray):为注释设置最大高度并添加垂直滚动(#_174629) PR #180044
- @hermannloose (Hermann Loose):允许将单个注释标记为草稿 PR #173305
- @iliazeus (Ilia Pozdnyakov):为键盘快捷方式添加对 F20-F24 键的支持 PR #179591
- @jeanp413 (Jean Pierre):修复连接到远程时未使用的已配置默认 shell PR #175844
- @jjaeggli (Jacob Jaeggli):可访问性帮助对话框使用语义标记来辅助技术 PR #179726
- @KapitanOczywisty:从 fork 更新 PHP 语法 PR #180100
- @LakshyAAAgrawal (Lakshya A Agrawal):修复 vscode.d.ts 中的拼写错误 PR #177377
- @mahmoudsalah1993 (Mahmoud Salah):当只有一个 userDataProfileContentH… 时正确返回键 PR #178517
- @Mai-Lapyst:修复在运行任何任务时意外启动所有 onTaskType 扩展;修复 #175821 PR #178679
- @maxmmyron (Max):修复:差异编辑器箭头点击会启用断点 PR #179130
- @mblout (Michael Blout):添加用于调用堆栈选择更改的调试 API (63943) PR #179132
- @MonadChains (MonadChains):Issue 151220/添加当前时区偏移变量 PR #170518
- @simon04 (Simon Legner):terminalActions:“打开上次的 URL” PR #173217
- @SimonSiefke (Simon Siefke):修复:在 mainThreadExtensionService 中打印扩展 ID PR #179553
- @spahnke (Sebastian Pahnke):[Monaco] 添加
monaco.editor.registerEditorOpener方法,以便能够拦截编辑器打开操作 PR #177064 - @sumneko (最萌小汐):更新 Lua 语法 PR #177798
- @tisilent (xie jialong 努力鸭):修复 #159471 PR #177961
- @tomheaton (Tom Heaton):修复未打开文件夹时
collapseAll命令的问题 PR #180330 - @weartist (Han)
- 支持使用...打开集成终端和外部终端 PR #168879
- 添加对断点小部件的宽度自适应支持... PR #179551
- 在删除单元格之前添加确认,以解决 #173481 PR #179776
- @Wundero (Sam Riddle):使用已定义的变量而不是内部属性 PR #178701
- @yiliang114 (易良)
- 修复:关闭 #176763,修改加载 vscode-web-playground 的条件 PR #176771
- chore:重命名错误的服务名称 PR #177954
- fix:拼写错误 PR #179581
- @YinDongFang (dongfang):修复 Firefox 中“Window”键被视为“unknown”的问题(#_175739) PR #175740
对 vscode-js-debug 的贡献
对 vscode-json-languageservice 的贡献
对 vscode-pull-request-github 的贡献
- @Balastrong (Leonardo Montini)
- @eastwood (Clinton Ryan):优雅地处理 SSH 配置文件损坏或格式错误的情况 PR #4644
- @kabel (Kevin Abel)
- @ypresto (Yuya Tanaka):修复工作区中嵌套仓库的错误仓库 URL(修复复制永久链接) PR #4711
对 monaco-editor 的贡献
- @dneto0 (David Neto):添加 WebGPU 阴影语言分词器及测试 PR #3884
- @kisstkondoros (Tamas Kiss):修复 OutlineAdapter 的 convert 方法中的引用错误 PR #3924
- @tamayika:将 moduleResolution 更改为 node16 并采用 TS 5.0 PR #3860
对 devcontainers/cli 的贡献
- @aaronlehmann (Aaron Lehmann):添加对 Docker 凭证助手的支持 PR #460