2023年7月 (版本 1.81)
更新 1.81.1:更新解决了这些问题。
下载: Windows: x64 Arm64 | Mac: 通用 Intel 硅 | Linux: deb rpm tarball Arm snap
欢迎来到2023年7月的Visual Studio Code发布版本。这个版本有很多更新,我们希望你会喜欢,主要亮点包括:
- 无障碍改进 - 为通知、聊天响应和悬停提供无障碍视图支持。
- VS Code 配置文件 - 通过部分配置文件和“应用到所有配置文件”选项进行更精细的控制。
- 新的差异编辑器功能 - 折叠未更改的区域,更好的差异区域文本对齐。
- 带有符号链接的Git仓库 - 支持带有符号链接的仓库路径。
- 笔记本更新 - 在关闭的笔记本中搜索文本,"粘性滚动"显示Markdown标题。
- Python 测试发现 - 容错的 pytest 发现会在所有文件中继续。
- 在 GitHub Codespaces 中访问 Jupyter 服务器 - 在 codespace 中连接到远程 Jupyter 服务器。
- GitHub 拉取请求创建 - 更好的基础分支检测,记住以前的创建 PR 选项。
- 预览:GitHub Copilot UX - 快速聊天改进,迭代/修复命令。
如果您想在线阅读这些发行说明,请访问 更新 页面 code.visualstudio.com.
内部人士: 想尽快尝试新功能吗?你可以下载 内部人士 构建版,并在最新更新可用时立即尝试。
无障碍
无障碍视图改进
该无障碍视图 (⌥F2 (Windows Alt+F2, Linux Shift+Alt+F2)) 命令允许屏幕阅读器用户逐字符、逐行检查内容。在上一次迭代中,我们为编辑器悬停和聊天面板响应添加了无障碍视图。
现在有无障碍视图用于通知、内联聊天响应、Jupyter notebook输出和工作台悬停。
当一个提供无障碍视图的元素获得焦点时,会在ARIA标签中提供一个提示。该提示可以通过每个功能的设置进行禁用。可访问性。详细程度设置。
有 无障碍视图中显示下一个 (⌥] (Windows, Linux Alt+])) 和 无障碍视图中显示上一个 (⌥[ (Windows, Linux Alt+[)) 命令,用于在聊天面板和通知列表之间轻松导航各个元素。
面包屑符号信息
使用 聚焦并选择面包屑 (面包屑.聚焦和选择) 命令,面包屑导航现在包括供屏幕阅读器使用的符号信息。
输入控制和结果导航一致性
在Extensions视图、键盘快捷键编辑器以及Comments、Problems和Debug Console面板中,导航输入控件(例如搜索或过滤输入)与其结果之间的体验现在是一致的,使用(⌘↓ (Windows, Linux Ctrl+Down)) 和(⌘↑ (Windows, Linux Ctrl+Up))。
可访问的差异查看器
在差异编辑器中,差异审查窗格被重命名为可访问差异查看器。可访问差异查看器解决了差异编辑器的无障碍问题,可以通过F7或差异编辑器打开可访问差异查看器命令打开。此外,我们还修复了一些错误并添加了一些新功能,例如可以从查看器中启动无障碍帮助对话框或跳转到修改的编辑器。
个人资料
支持部分档案
现在,您可以创建一个配置文件,在该配置文件中仅自定义一组配置(设置、键盘快捷键、片段、任务和扩展)。例如,您可以创建一个配置文件,其中包含所有配置,但不包括键盘快捷键,并且当此配置文件处于活动状态时,VS Code 会应用默认配置文件中的键盘快捷键。
在创建新配置文件的截图中,键盘快捷键未选中,并显示了一个使用默认配置文件的消息。在该 VS Code 会话期间任何活动的键盘快捷键都不会应用到新配置文件。

您还可以在复制来自下拉菜单来创建一个部分配置文件。复制来自或现有配置文件时,使用模板

您还可以通过在编辑配置文件界面中编辑配置文件,将现有配置文件配置为使用默认配置文件的配置。

导出部分配置文件时,您可以选择仅导出配置文件中定制的配置,或同时包括默认配置文件中的配置。

将设置应用到所有配置文件
您现在可以通过在设置编辑器中选择应用设置到所有配置文件选项来为所有配置文件应用设置。

这将应用该设置的值到所有配置文件。任何来自配置文件的对此设置的更新都会应用到所有配置文件。您可以取消选中将设置应用到所有配置文件 选项来撤销此同步。
将扩展应用到所有配置文件
现在,您可以在所有配置文件中包含一个扩展,只需在扩展视图中选择将扩展应用于所有配置文件选项。

这使得此扩展在所有配置文件中都可用。您可以取消选中将扩展应用于所有配置文件 选项来撤销此操作。
设置 JSON 文件的命令 ID 在非默认配置文件中进行了调整
偏好设置:打开用户设置 (JSON) (工作台.操作.打开SettingsJson) 命令现在将在用户处于非默认配置文件时打开特定于配置文件的设置JSON文件。要显示应用程序范围的设置,请使用 偏好设置:打开应用程序设置 (JSON) (工作台.操作.打开应用程序设置Json) 请使用命令。
工作台
即将推出的更新发行说明
每当有每月的稳定更新准备安装时,您现在可以通过显示更新发行说明命令在活动栏底部的管理菜单(齿轮按钮)查看发行说明。
编辑器
Markdown粘贴URL作为格式化链接
该markdown.editor.pasteUrlAsFormattedLink设置现在有一个新的选项聪明。聪明粘贴功能可以检测您是否将内容粘贴到可能不需要自动Markdown链接格式化的文本中。一些情况被忽略。聪明粘贴包括在Markdown链接内、覆盖另一个Markdown链接以及在代码块内粘贴。
默认情况下,粘贴链接为格式化链接该功能目前关闭 (从不),但您可以更改设置到聪明或总是(总是创建一个格式化的URL链接)。
异步标记化发布
在1.76更新中,我们在web-worker上实现了编辑器文档的异步标记化,以提高渲染器进程的性能。从那时起,我们修复了由罕见的竞争条件引起的几个错误,并在此版本中,我们开始向稳定用户推出这一功能。
如果您不想等待,您可以设置编辑器.实验性.异步分词至真立即获取异步分词。
差异编辑器
在这一版本中,我们继续开发新的差异编辑器,并计划逐步向稳定用户推出。您可以通过设置立即尝试:"diffEditor.experimental.useVersion2": true新的差异编辑器包括以下描述的几个新功能和错误修复。
折叠不变区域
使用diffEditor.experimental.collapseUnchangedRegions为了在新的 diff 编辑器中隐藏未更改的区域。此功能在审阅包含大量未更改行的大 diff 时非常有用。
隐藏线条块的边界可以拖动或点击以从底部或顶部显示文本。

差异区域对齐
新的差异编辑器现在在差异区域对齐文本,使得更容易审查缩进更改和插入行的差异。
之前(未启用差异区域对齐和空白差异):

之后(带不同区域对齐):

新的差异算法现在默认启用
我们已经完成了新差异算法的推出,现在它是 VS Code 的默认设置。您可以在 过去的版本更新说明中阅读到一些算法改进。
差异降噪
在此次更新中,我们为新的差异算法添加了启发式方法,以减少匹配不相关单词的可能性。
这是之前差异编辑器的样子(注意如何这个双方的匹配,即使匹配没有帮助):

这是现在的样子,带有启发式改进(请注意,无关匹配较少):

换边
当使用新差异编辑器的并排视图时,现在有一个新命令差异编辑器:切换 sides,允许您在两侧之间跳转。切换 sides 时,活动编辑器中的光标位置和当前选择会被映射到另一侧。
还有更多
查看1.80版本更新日志,了解新差异编辑器的详细更改内容!
终端
自定义悬停在内联终端标签中
面板内联终端标签在现在只有一个终端时显示,现在使用自定义悬停以获得更一致的外观并支持嵌入链接。

源代码管理
支持带有符号链接的Git仓库
根据社区反馈,现在支持具有路径符号链接的Git仓库,通过使用--路径格式选项,添加到版本解析版本中的Git命令2.31从这个版本开始,所有源代码管理功能(例如,源代码管理视图、仓库检测、添加/修改/删除行编辑器装饰等)在打开这样的仓库时应该按预期工作。
调试
JavaScript 调试器
对快速节点(版本)管理器的支持
JavaScript 调试器现在支持 快速节点管理器 (fnm) 在其运行时版本中。使用 fnm 的用户现在可以设置 运行时版本属性于launch.json选择Node.js版本。
笔记本电脑
富文本搜索封闭笔记本
在之前的版本中,我们引入了对公开笔记本的丰富内容工作区搜索。现在,预览支持也可以查看封闭笔记本的丰富内容结果。
当您在搜索视图中搜索文本时,从笔记本中预览的搜索结果应与您打开笔记本编辑器时字符串的外观匹配。请注意,这仅在笔记本关闭时显示输入的结果。要尝试此功能,请启用搜索.实验性.关闭笔记本丰富内容结果在你的设置中。
改进了大型流输出的性能
我们对在执行过程中流式传输的大单元格输出进行了性能改进。这减少了渲染活动的量,但目前仅适用于可滚动的单元格输出。
笔记本粘性滚动
此次发布为笔记本编辑器带来了“粘性滚动”的第一个版本。粘性滚动显示在笔记本编辑器顶部,显示当前可见的单元格或单元格输出的Markdown标题。选择一个粘性滚动“行”会将该单元格聚焦,使您能够快速导航笔记本。此功能通过以下方式启用notebook.stickyScroll.enabled 设置或 视图:切换笔记本粘性滚动 命令。
VS Code 用于网页
始终加载内置扩展的最新版本
vscode.dev 现在总是加载内置扩展的最新版本。这意味着,当您打开 vscode.dev 时,将不再看到更新内置扩展到最新版本的“需要重新加载”通知。
远程开发
这些远程开发扩展允许您使用开发容器、通过SSH或远程隧道连接远程机器,或者使用Windows子系统 for Linux(WSL)作为功能齐全的开发环境。
亮点包括:
- 在 VS Code 中将远程隧道作为服务安装。
- 简化的 @devcontainers/cli 安装。
- 在锁定文件中记录开发容器功能的依赖关系。
您可以在远程开发发布说明中了解新的扩展功能和错误修复。
对扩展的贡献
GitHub Copilot
快速聊天用户体验改进
快速聊天体验在此次迭代中得到了改进。
像之前一样,你可以通过 ⇧⌥⌘L (Windows, Linux Ctrl+Shift+Alt+L) 切换此视图。具体改进包括:
- 对话聊天:快速聊天体验现在会显示您的完整对话,同时仍然将最后的问题和答案保持在焦点。
- 斜线命令补全:现在在您输入时有斜线命令补全
输入:/输入:.
此外,有一个实验设置,chat.experimental.defaultMode, 以控制显示聊天的哪些部分。它有三个选项:
聊天视图- 在活动栏中显示聊天图标以在聊天视图中启动聊天(默认)。快速问题- 在标题栏中显示聊天图标以启动快速聊天。两者- 两个聊天图标都可见,允许您打开任一聊天界面。
我们想了解您对这个设置以及快速聊天体验的看法,所以请不要犹豫,提出反馈的问题。
斜线命令改进
我们在面板、内联和快速聊天的斜线命令中进行了以下可用性改进:
- 斜线命令现在显示为块,并且可以使用一次删除键删除。
- 接受来自建议列表的斜线命令,例如
/清除和/帮助,现在执行命令,接受完成任务后不再需要明确提交聊天请求。 - 该
/创建工作区面板聊天斜线命令在首次使用问题后重新填充聊天输入,使您可以轻松地就您的工作区提出后续问题。
以下记录展示了所有三种改进:
迭代修复
在使用/修复命令,您可以使用设置启用迭代修复github.copilot.editor.iterativeFixing当启用迭代修复时,如果在第一次修复后,选择中仍然存在诊断错误,则会再次运行修复。此设置默认启用。
笔记本生成改进
在生成笔记本时,有一些额外的步骤可以提高生成代码的质量,并修复语言扩展在生成代码中检测到的诊断。默认情况下是禁用的,但可以通过以下设置启用:
"github.copilot.notebook": {
"iterativeFixing": true,
"iterativeImproving": true
}
内联聊天
在使用内联聊天时,您现在可以使用设置启用和禁用差异视图显示差异您可以右键单击内联聊天以显示上下文菜单来更改此设置。
终端上下文
Copilot聊天现在知道关于活动终端的缓冲区和选择。
Python
容错的pytest发现
作为我们新的测试架构发布的一部分,测试浏览器面板现在支持容错的pytest发现。当pytest在发现过程中抛出可以处理的错误时(例如,来自未知导入的错误),其他测试仍将在错误文件之外被发现。此功能仅适用于新的测试重写,该功能仍处于实验阶段。目前,重写功能对所有Insiders用户和25%的Stable用户有效,但很快将普及。与此同时,您可以使用python测试适配器设置。
用于带参数运行文件的调试器配置
新的Debugpy扩展现在提供了一个带有参数的Python文件 launch.json配置,这在你想要为Python文件提供不同的输入值时非常有用,而不需要每次运行它时都修改你的代码或调试器配置。
要使用此配置,请确保已安装Debugpy扩展。按运行和调试视图,按⇧⌘D(Windows, LinuxCtrl+Shift+D),选择创建 launch.json 文件或齿轮图标以访问launch.json 文件。选择 Debugpy,然后从可用配置中选择 Python: 带参数的文件。
现在,当您想要调试一个需要命令行参数的Python文件 (F5) 时,会出现一个提示框,允许您输入要传递给Python文件的所需参数。
在输入参数后,按回车键,调试器将启动,允许你逐步执行代码。
主题: Catppuccin Macchiato (预览于 vscode.dev)
npm 包用于 Python 扩展 API
Python 扩展现在提供一个 npm 包,使其他扩展作者更容易访问和跟踪 Python 扩展 API 的变化。查看 @vscode/python-extension npm 模块以在用户机器上处理可用的 Python 环境。
用于Python扩展的开发容器
现在有一个Dev Container,用于Python扩展,包含微软官方的Node.js镜像。通过这个自定义的开发容器,用户能够在GitHub Codespace中打开Python扩展仓库,并立即开始开发和测试Python扩展,无需安装。预安装了Python版本3.7, 3.8, 3.9, 3.10和3.11,用户可以使用pyenv方便地在Python版本之间切换。
朱庇特
连接到Codespace上的Jupyter服务器
在github.dev上使用Jupyter notebook时,您现在可以通过内核选择器连接到GitHub Codespace实例上运行的Jupyter服务器。
继续保存未提交的更改
您可以通过选择笔记本工具栏中的继续在按钮来切换到底层代码空间,并且工作区中的任何未提交更改都会被带到代码空间。
GitHub 拉取请求和问题
在GitHub Pull Requests and Issues扩展上取得了更多进展,该扩展允许您处理、创建和管理拉取请求和问题。在这一迭代中,我们专注于更新创建视图,使其更整洁且更有用。
改进的创建视图包括:
- 该视图尝试检测最适合您的 PR 的基础分支,而不是总是使用默认分支。
- 您可以在 创建 视图中为您的 PR 添加审阅者、指派者、标签和里程碑。
- 默认情况下,您上次的“创建选项”会被记住(例如草稿或自动合并)。
- 查看性能要快得多。
- 在发布你的分支之前,你可以查看差异。
- 一旦分支发布,你也可以查看提交(未发布的分支此功能即将推出)。

查看0.70.0版本的更新日志,了解其他亮点。
GitHub 认证
在登出时撤销 GitHub OAuth 令牌
之前,当你在 VS Code 中注销 GitHub 账户时,它只会从 secrets 存储中删除OAuth 令牌。令牌仍然有效,并且可以向 GitHub 的 API 发送请求。为了改进令牌管理的安全性,我们现在尝试在后端删除令牌,以便在注销后令牌不再有效。
扩展编写
添加了 revealSetting 和 focusSearch 到 IOpenSettingsActionOptions
扩展现在可以传递揭示设置对象和聚焦搜索布尔值转换为命令,例如工作台.操作.打开SettingsJson接受打开设置动作选项参数。
例如,以下命令
vscode.commands.executeCommand('workbench.action.openSettingsJson', {
revealSetting: { key: 'editor.renderWhitespace' }
});
打开用户设置JSON文件,然后揭示编辑器.渲染空白设置如果它存在。
新的TestController.invalidateTestResults方法
测试扩展可以调用新方法测试控制器. 无效化测试结果以告知用户一个或多个测试的结果可能不再适用。例如,一个扩展可能会执行如下操作:
onFileChange(uri => {
// 当文件更改时,使文件中的测试无效:
testController.invalidateTestResults(getTestsInFile(uri));
});
onConfigurationChange( () => {
// 使所有测试的结果无效:
testController.invalidateTestResults();
});
网络代理的Kerberos身份验证
使用扩展的对不起,我无法访问特定的网页内容或链接。如果你能提供具体的文本内容,我可以帮助你进行翻译。Node.js 模块现在可以使用需要 Kerberos 认证的网络代理。本地机器需要配置 Kerberos,但扩展不需要做任何事情即可使用此功能。
在自动选择的服务主名称不起作用的情况下,用户可以提供一个http.proxyKerberosServicePrincipal设置:

快速选择项中的图标已最终确定
图标在 API 中快速选择项目已经完成。您现在可以使用图标路径属性以显示图标快速选择项目好的。
![]()
工程
缩小 VS Code 并进行名称重整
最近的工程努力将VS Code发布的JavaScript代码量减少了20%。在通过名称标记缩小VS Code的博客文章中,您可以了解VS Code工程师Matt Bierner和Johannes Rieken如何研究标识符名称标记以优化代码大小,并使用TypeScript提出了有效的解决方案。
更多pty主机改进
- 性能
- pty主机现在只在需要时启动,因此从不打开终端的用户将节省大约50-100 MB。
- 进一步并行化终端重新连接,加快终端初始化时间。
- 终端输出消息现在被缓冲,减少了从pty主机和托管终端的Windows传输的数据量。
- 诊断
- 在跟踪日志级别时,每个进程之间的延迟统计数据会被记录。
- WindowsID被记录到终端输出通道的所有日志中。
- Pty host RPC 日志现在会记录由于异常导致失败的响应。
重要修复
谢谢
最后但同样重要的,向VS Code的贡献者们致以深深的谢意。
问题跟踪
对我们的问题跟踪的贡献:
拉取请求
贡献于Visual Studio Code输入:
- @a-stewart (Anthony Stewart)将操作小部件的最大宽度增加到浏览器宽度的80%PR #186157
- @abhijit-chikane (阿比吉特·奇卡内):修复断点占位符的大小写PR #185753
- @andrewbranch (Andrew Branch): [typescript-language-features] 更新 autoImportFileExcludePatterns 描述 PR #186528
- @colombod (Diego Colombo):添加提议的api以在语言配置中支持自动关闭配对PR #186567
- @Dromantor (Andreas Pareis):修复 #173858 小地图滑块无法滚动到顶部 PR #180728
- @EhabY (Ehab Younes):在TreeView API中暴露出聚焦元素和更改事件PR #184268
- @gjsjohnmurray (约翰·默里)
- 使用
去到文件测试输出内联操作的 codicon (修复 #186369) PR #188472 - 在测试视图进度区域显示占位符文本(修复 #141181)PR #188484
- 使用
- @hsfzxjy
- 将Ctrl+DownArrow和Ctrl+UpArrow推广到大多数输入-结果小部件(修复 #179967)PR #187077
- 修复上下文菜单定位不准确PR #187157
- @jeanp413 (让·皮埃尔)
- 修复升级后扩展激活失败的问题,错误:无法找到模块 'vscode'PR #187090
- 修复在终端中关闭查找小部件后无法使用 cmd+上/下 在终端中PR #187781
- 修复终端查找小部件在工具提示中缺失的快捷键PR #187787
- @lkct (Rickey K. Liang): 恢复 Python 文档字符串颜色 PR #184938
- @m-ou-se (Mara Bos):接受 --goto 格式中的尾随冒号。PR #186174
- @mwerschy (Malte Werschy):实现缩进指南颜色化选项。PR #178112
- @rielAsh24 (Ashriel):修复 #182014:ISO 日期格式 PR #185587
- @ssigwart (Stephen Sigwart):修复了 TypeScript 和 PHP 的单行 if/else 和循环缩进PR #136577
- @SvanT (斯万特·博贝格): 处理
终端词链接检测器听众 PR #187083 - @weartist (Hans):修复 #187223 PR #188144
- @yiliang114 (易良)
- 修复:拼写错误PR #186607
- 修复:关闭 #187788,恢复树视图状态PR #187902
- @ yshaojun
- 修复:颜色提示可能会显示两次 (#_175476)PR #186926
- 修复:防止重复原因 (#_186206)PR #187985
- 修复:修改了编辑器宽度 (#_175397)PR #188012
贡献于vscode扩展示例输入:
- @dsanders11 (David Sanders):修正 EACCES 错误代码名称 PR #847
贡献于vscode-十六进制编辑器输入:
贡献于vscode-js调试输入:
- @zardoy (Vitaly):修复成员表达式完成PR #1758
贡献于vscode-拉取请求-GitHub输入:
- @mgyucht (Miles Yucht):正确地反向迭代文件之间的差异PR #5036
贡献于vscode-vsce输入:
- @drewbrokke (Drew Brokke): (#_868) publish 选项 --skip-duplicate 不考虑目标平台 PR #873
贡献于创新更新器输入:
- @panekj (Jakub Panek):功能:用 windows-sys 替换未维护的 winapi PR #18
贡献于语言服务器协议输入:
- @c-claeys (Cristopher Claeys):通过添加多范围格式化
文本文档/范围格式化符合规格 PR #1759 - @gundermanc (Christian Gunderman):Semantic Tokens LSIF 规范。PR #1754
- @semanticart (Jeffrey Chupp):修正拼写错误PR #1774
贡献于摩纳哥编辑器输入:
- @claylibrarymarket:修复 Twig 的纯文本类表达式 PR #4063
- @FossPrime (Ray Foss):使用新的 GitHub 页面工作流程 PR #4000
- @leandrocp (Leandro Pereira):Elixir - 添加对多字母大写符号的支持 PR #4041
- @philippleidig (PhilippLe):为结构化文本(st)语言添加TwinCAT文件支持PR #3315
- @remcohaszing (雷姆科·哈兹ing)