2024年3月(版本 1.88)
更新 1.88.1:本次更新修复了这些 问题。
下载:Windows:x64 Arm64 | Mac:Universal Intel silicon | Linux:deb rpm tarball Arm snap
欢迎阅读 Visual Studio Code 2024 年 3 月版发布说明。此版本带来了许多我们希望您会喜欢的更新,主要亮点包括:
- 应用自定义编辑器标签 - 区分文件名相同的编辑器。
- 锁定滚动 - 并排比较编辑器时同步滚动。
- 扩展更新改进 - 无需重新加载即可重启扩展,并随 VS Code 发布更新扩展。
- 测试覆盖率 API - VS Code 原生代码覆盖率支持。
- 小地图中的折叠标记 - 从小地图轻松识别和导航到代码部分。
- 快速搜索改进 - 粘性文件路径分隔符和分隔符按钮。
- 笔记本分段运行单元格 - 快速运行笔记本某一部分中的所有单元格。
- Copilot 改进 - 改进了内联聊天 UI、提交消息和已用引用。
- Python 自动检测改进 - 检测 Flask 和 Django 的启动文件,发现 Hatch 环境。
- 预览:终端内联聊天 - 直接从终端启动 Copilot 内联聊天会话。
如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新。Insiders:想尽快尝试新功能吗?您可以下载每晚Insiders版本并尽快尝试最新更新。
辅助功能
语音录制提示音
我们为语音录制添加了新的无障碍提示音
- 语音录制开始 - 通过
accessibility.signals.voiceRecordingStarted设置配置 - 语音录制结束 - 通过
accessibility.signals.voiceRecordingStopped设置配置
改进了差异编辑器(Diff Editor)的无障碍性
如果您使用屏幕阅读器,现在当差异编辑器成为活动编辑器时,您会收到提示。您可以使用 accessibility.verbosity.diffEditorActive 设置禁用此行为。
我们还在 无障碍帮助对话框中添加了关于 差异编辑器:切换侧边(Diff Editor: Switch Side)的信息,这是一个对键盘用户很有帮助的命令。
无障碍信号现在在差异编辑器的两侧均可工作。此前,它们仅在修改侧可用。
无障碍视图(Accessible View)中的聊天代码块命令
当您在无障碍视图中检查聊天响应时,现在可以使用聊天视图中提供的代码块命令和快捷键绑定。
这些包括聊天:插入到光标处、聊天:插入到终端以及聊天:插入到新文件。
笔记本单元格 aria 标签更新
笔记本单元格的 Aria 标签现在会更新,以指示单元格当前是否正在执行或处于挂起执行状态。
工作台
浮动窗口中的自定义编辑器支持
我们扩展了对将编辑器打开到 浮动窗口的支持,使其适用于自定义编辑器,以及所有使用 Webview API 的编辑器。这包括 Markdown 预览、浏览器预览和复杂的自定义编辑器,例如我们的 十六进制编辑器。
注意:由于技术限制,将基于 Webview 的编辑器在窗口间移动时,需要重新加载该编辑器的内容。随后由编辑器负责恢复您之前积累的状态。在某些情况下,您的状态可能会重置,就像第一次打开该编辑器一样。
打开编辑器的自定义标签
现在您可以自定义编辑器选项卡和“打开的编辑器”视图的显示标签。此功能有助于区分具有相同名称文件的编辑器。
您可以根据自己的喜好,通过在 workbench.editor.customLabels.patterns 设置下添加条目来定制这些标签。每个条目都应包含一个匹配文件路径的 glob 模式和一个定义编辑器选项卡新名称的模板。此自定义仅在文件路径与指定模式匹配时应用。模式是否匹配,取决于它是定义为相对文件路径模式还是绝对文件路径模式。
模板可以包含诸如 ${filename}、${extname}、${dirname} 和 ${dirname(N)} 等变量,这些变量会被文件路径中的值动态替换。
要启用或禁用这些自定义标签,请使用 workbench.editor.customLabels.enabled 设置。这使您无需删除自定义模式即可随时切换回原始编辑器名称。
锁定滚动
现在,您可以使用视图:切换编辑器锁定滚动(View: Toggle Locked Scrolling Across Editors)命令同步所有可见编辑器的滚动。这意味着当您在一个编辑器中滚动时,其他编辑器也会滚动相同的距离,从而保持一切对齐。如果您需要并排比较文件,此功能非常有用。
如果您需要更多控制权来启用和禁用锁定滚动,您可以选择仅在按住特定快捷键时激活滚动同步。为 workbench.action.holdLockedScrolling 命令设置快捷键,即可根据需要临时锁定跨编辑器的滚动。
底部的活动栏
此前,我们引入了将活动栏移动到侧边栏顶部的选项。现在,我们也允许您将活动栏移动到底部。为此,请将 workbench.activityBar.location 设置更改为 bottom。
我们还改进了活动栏位于顶部时的外观,以确保它能与界面的其余部分和谐统一。

搜索编辑器单击行为
现在,您可以配置 search.searchEditor.singleClickBehaviour 设置,以确定单击搜索编辑器条目时的行为。目前,该设置仅支持打开“速览定义”。
快速搜索改进
粘性文件路径
在快速搜索中,我们使文件名分隔符具有粘性,以便更清楚地了解搜索结果与哪个文件相关联。当您在一个文件中多次出现搜索词时,这非常有用。
文件路径分隔符按钮
当您将鼠标悬停在特定文件的搜索结果上,或者向下箭头移动到结果时,文件路径分隔符处也会出现按钮(例如打开该文件)。
快速选择分隔符导航快捷键
我们收到反馈称,能够快速选择器中的分隔符之间进行导航会很好。本次迭代中,我们添加了相应的快捷键。在 Windows 和 Linux 上,您可以使用 Alt+Up/Down,在 macOS 上是 Cmd+Up/Down。在此示例视频中,您可以看到活动项目在以下内容间移动
- 命令面板中的
最近使用和其他命令分隔符 - 快速搜索中的文件路径分隔符之间
快速选择器禁用复选框项
本次迭代中,我们改进了当快速选择器显示已禁用项目时的视觉效果。可以在“管理受信任的扩展”快速选择器中找到一个示例,该选择器可为您登录的任何账户访问。

扩展更新改进
重启扩展
当扩展更新时,您现在可以重启扩展,而无需重新加载窗口。

注意:当您连接到远程服务器(如 WSL、SSH 或开发容器)时,仍需重新加载窗口才能更新扩展。
随 VS Code 更新同步更新扩展
当启用了 扩展自动更新 后,VS Code 现在会更新那些与可更新的新版 VS Code 兼容的扩展。如果扩展的新版本与当前版本的 VS Code 不兼容,则仅在您更新 VS Code 后,该扩展的新版本才会被启用。
跳转到评论回复
现在,“评论”视图中评论线程的上下文菜单包含“回复”操作(当该线程允许回复时)。这使您能够快速跳转到回复输入框并开始输入回复。

编辑器
小地图章节标题
小地图现在可以识别并呈现由折叠标记定义的章节,例如 TypeScript 中的 //#region,或使用 MARK: 的注释。这让您可以快速扫描和浏览大型文件。

重构预览快捷键
我们更新了“重命名符号”重构预览(F2)的快捷键,以保持与其他上下文中重构预览(如代码操作)的一致性。现在,您可以使用 ⌘Enter (Windows, Linux Ctrl+Enter) 预览编辑(此前为 Shift + Enter)。
当悬停在代码操作上时,⌘Enter (Windows, Linux Ctrl+Enter) 也会在工作台中打开重构预览面板。
差异编辑器暂存/撤销选择按钮
差异编辑器现在有一个用于暂存和撤销控件的独立槽位。这些操作使您可以暂存或撤销已更改的代码块。
如果您对某些更改进行了文本选择,这些按钮允许您暂存或撤销所选的更改(选择范围内的所有更改字符)。

您可以通过将 diffEditor.renderGutterMenu 设置为 false 来隐藏差异编辑器的槽位。
重命名建议行为
我们改进了使用重命名建议的流程,使其与快速选择器一致。当您从列表中选择重命名建议时,输入值会相应更新,从而允许您进一步修改该建议。

源代码管理
传入更改文件装饰
为了帮助避免从远程合并/变基更改时产生潜在冲突,我们现在为所有有传入更改且已获取但尚未合并/变基的文件显示文件装饰。要从该功能中受益,您需要启用 git.autofetch 和 git.decorations.enabled 设置。

主题:GitHub Sharp(在 vscode.dev 上预览)
终端
调试终端中的 Shell 集成
为了向用户和扩展提供增强的功能,在调试时启动的终端中现在会自动启用 Shell 集成。
运行最近命令改进
基于 Shell 集成的运行最近命令(⌃⌥R (Windows, Linux Ctrl+Alt+R))现在会在可能的情况下滚动到并显示上次运行该命令的时间。运行该命令或取消快速选择器会将终端返回到其之前的状态。
主题:Sapphire (在 vscode.dev 上预览)
打开检测到的链接改进
打开检测到的链接命令(⇧⌘G (Windows, Linux Ctrl+Shift+G))现在可以在编辑器中预览链接结果,并突出显示终端中的链接源。
此外,重复的链接现在会被过滤掉,所有链接都以一致的格式呈现。

词链接的额外上下文
词链接由 terminal.integrated.wordSeparators 设置定义,当找不到文件/文件夹/URI 时,它们是回退方案。激活后,这些链接现在包含额外的周围上下文,以增加用于搜索的行号和列信息。
注意截图中链接 terminalLinkParsing 已被选中,但产生的搜索也包括链接后的行号。

新链接格式
现在终端中可以检测到以下链接格式,即使路径包含空格
FILE path:line:column
终端粘性滚动透明度支持
终端中的粘性滚动现在支持透明度。主题可以通过将 terminalStickyScroll.background 主题颜色配置为透明值,或在您的 settings.json 中指定覆盖来使用此功能。例如
{
"workbench.colorCustomizations": {
"[Default Dark Modern]": {
"terminalStickyScroll.background": "#181818c0"
}
}
}
这将产生一个透明的粘性滚动背景,允许背后的文本透视出来

测试
测试覆盖率
本次迭代中,我们完成了测试覆盖率 API,为 VS Code 带来了原生覆盖率支持。如果您的测试系统支持,您可以使用新的运行并带覆盖率(Run With Coverage)按钮获取覆盖率信息

同样有新的快捷键用于带覆盖率运行测试,例如 Ctrl+; Ctrl+Shift+A 运行所有测试并带覆盖率,Ctrl+; Ctrl+Shift+L 运行最近的一组测试并带覆盖率。
覆盖率信息默认显示在行号上作为覆盖层,但您可以切换内联覆盖率以查看源文件的完整详细信息

主题:Codesong(在vscode.dev上预览)
使用测试覆盖率需要您的扩展实现新的 API。一些扩展,例如 Java 测试运行程序和 node:test 运行程序已经支持它。在团队的 12 月和 1 月更新中了解更多关于 Java 测试覆盖率的信息。
扩展开发者可以在 测试 API 文档中找到有关测试覆盖率 API 的更多详细信息。
测试消息中的颜色代码支持
我们现在解析终端颜色代码以对文本测试消息进行着色,例如测试失败时显示的那些消息,而不是显示原始的“不可打印”数据代码。
语言
TypeScript 5.4
VS Code 现在包含 TypeScript 5.4。此重大更新为类型检查和 IntelliSense 带来了新的改进,并修复了多个错误。有关详细信息,请参阅 TypeScript 5.4 发布博客文章。
更智能地在 Markdown 中插入图像和链接
当您将图像或文件拖放或粘贴到 Markdown 文件时,VS Code 会自动为其插入 Markdown 图像或链接语法。现在,当我们插入到代码块和其他不支持 Markdown 语法的上下文中时,我们也会智能地禁用此行为
您可以随时通过使用拖放/粘贴小部件切换回插入 Markdown 语法。您可以使用 markdown.editor.drop.enabled 和 markdown.editor.filePaste.enabled 设置来配置此行为。
Notebook
笔记本输出中的键盘快捷键
我们现在支持笔记本输出中的一些标准键盘快捷键
- 可以使用键盘快捷键 Ctrl+A 和 Ctrl+C 选择并复制输出。
- 可滚动输出可以使用键盘快捷键 Up 和 Down 进行滚动。
- 可以使用键盘快捷键 Ctrl+Home 和 Ctrl+End(macOS 上为 Cmd+Up 和 Cmd+Down)滚动到可滚动输出的顶部和底部。
- 可以使用键盘快捷键 Ctrl+Shift+Up 和 Ctrl+Shift+End(macOS 上为 Shift+Cmd+Up 和 Shift+Cmd+Down)选择从当前选择点到输出顶部或底部的内容。
单元格错误诊断
扩展现在可以为失败的单元格提供错误详细信息,以便在单元格内显示错误诊断。在聚焦单元格容器时,notebook.cell.openFailureActions (⌘. (Windows, Linux Ctrl+.)) 会跳转到该错误的快速操作菜单。仅当有语言模型可用于提供快速操作时,才会显示该诊断。
分段运行单元格
为了更轻松地运行笔记本中的相关单元格,现在可以使用运行分段单元格操作运行由 Markdown 章节标题分组的单元格。此操作可在笔记本大纲视图和粘性滚动元素中使用。
在粘性滚动元素中,右键单击您选择的标题,并通过上下文菜单中的操作运行该分段。在大纲视图中,选择悬停或选择时出现的工具栏图标,然后通过显示的操作运行单个单元格或单元格分段。
大纲视图中的过滤支持
您现在可以在笔记本大纲视图中使用过滤器,使您能够控制是否包含 Markdown 标题、代码单元格和代码单元格符号。过滤器对应于以下设置
notebook.outline.showMarkdownHeadersOnlynotebook.outline.showCodeCellsnotebook.outline.showCodeCellSymbols
关闭时提示保存交互式窗口
通过启用 interactiveWindow.promptToSaveOnClose 设置,当交互式窗口关闭时,系统会提示您保存内容,以确保您不会丢失任何工作。当前唯一支持的文件格式是 .ipynb。
远程开发
远程开发扩展允许您通过 SSH 或远程隧道使用开发容器、远程机器或适用于 Linux 的 Windows 子系统 (WSL) 作为功能齐全的开发环境。
亮点包括:
- 针对具有扩展支持的发行版的备用服务器下载
- 基于 URI 查询字符串的端口转发
- 开发容器扩展自动启动 Docker
- 通过组策略限制对开发隧道和端口转发的访问
您可以在 远程开发发布说明中了解有关这些功能的更多信息。
对扩展的贡献
VS Code Speech
延迟激活
VS Code 语音扩展现在仅在 VS Code 中请求语音转文本服务时才会激活。这确保了该扩展不会对扩展宿主的启动时间产生负面影响。
将显示语言用作默认语音语言
默认情况下,VS Code 语音扩展现在使用 VS Code 的显示语言作为语音语言,并在支持该语言的情况下选择相应的模型。
对于 accessibility.voice.speechLanguage 设置,auto 是新的默认值。
GitHub Copilot
内联聊天改进
内联聊天现在作为浮动控件启动,使其更加轻量化。在第一次请求后,控件会展开以占据更多空间。我们还调整了渲染,使其与其他聊天体验(如聊天视图或快速聊天)更加一致。
主题:GitHub Light Colorblind (Beta)
我们重新定位了重运行和反馈控件,并使用于查看差异的切换控件与“接受”和“丢弃”按钮一起变得更加突出。
主题:GitHub Light Colorblind (Beta)
笔记本内核状态作为上下文
当您在笔记本中时,内核状态(例如变量和可用包)现在会自动作为上下文包含在内联聊天中。这使 Copilot 能够使用笔记本的当前状态来提供更相关的补全。
主题:GitHub Dark
提交消息生成改进
为了提高生成提交消息的质量,我们现在还将存储库中最近 10 次提交的提交消息,以及当前用户最近 10 次提交的提交消息作为额外上下文包含在内。
工作区创建改进
@workspace /new 命令现在会在检测到聊天提示词的合适匹配时,从 GitHub 存储库中精选示例项目作为建议。

@workspace /new 命令也得到了增强,以更有效地管理上下文和历史记录。这使您可以通过跟进查询来优化建议的工作区结构和文件内容。例如,“使用 TypeScript 而不是 JavaScript”或“同时也添加 bootstrap”。
@terminal /explain 斜杠命令
提供了一个新的 @terminal /explain 斜杠命令,该命令针对解释命令或错误进行了优化。如果不使用 /explain,@terminal 则针对建议修复进行了优化。此斜杠命令用于使用 Copilot 解释快速修复或解释所选内容操作中。

预览:终端内联聊天
本版本中提供了终端内联聊天的预览版,让您可以直接在终端中方便地访问 Copilot 的功能。
您可以使用 terminal.integrated.experimentalInlineChat 设置启用终端内联聊天。要在终端中调用内联聊天,请使用 ⌘I (Windows, Linux Ctrl+I) 快捷键。

终端内联聊天使用 @terminal 聊天参与者,该参与者拥有关于集成终端的 Shell 及其内容的上下文。

建议命令后,使用 ⌘Enter (Windows, Linux Ctrl+Enter) 在终端中运行该命令,或使用 ⌥Enter (Windows, Linux Alt+Enter) 将命令插入到终端。命令也可以在 Copilot 响应中直接编辑后再运行(目前在 Windows 和 Linux 上为 Ctrl+down, Tab, Tab,在 macOS 上为 Cmd+down, Tab, Tab)。

认证流程的清晰度
认证的清晰度非常重要。我们希望明确我们如何进行认证以及我们要求什么。如果您在 VS Code 中打开私有存储库,而我们没有针对此场景的正确认证,我们会弹出一个认证对话框。对话框中包含为何需要认证的说明,以及一个了解更多按钮以查找有关这些要求的更多信息。

了解更多按钮会将您带到我们的 认证要求文档。
变量引用
聊天响应中的已用引用部分提供了有关所用上下文的信息。此前,此部分仅显示隐式提取的上下文。现在,它还显示您在聊天提示中明确提到的变量,例如 #file 或 #editor。如果变量在“已用引用”中缺失,则可能表明它被忽略了,因为对于语言模型的上下文窗口而言它太大了。

次要聊天提交操作
在聊天视图中,聊天提交按钮现在有一个下拉菜单,可以轻松访问更多操作。
- 发送至 @workspace 将您的查询提交给
@workspace聊天参与者,这对于有关工作区内容的问题非常有用 - 发送至新聊天启动一个新的空聊天,然后提交查询

使用 Copilot: 解释此项 时的作用域选择
当您在活动编辑器中未做任何选择时使用 /explain,且有多个感兴趣的作用域时,我们添加了提示以澄清要解释哪个符号或块作用域。

此行为目前需要选择性加入,位于 github.copilot.chat.scopeSelection 设置下。
Python
改进了 Flask 和 Django 的调试配置选择
为 Flask 和 Django 应用创建启动配置变得更容易了!我们进行了改进,以便在为您的 Web 应用创建 launch.json 时,能够检测工作区中可能的启动文件。
对于 Django,Python 调试器扩展会查找根目录或工作区下一级子目录中的 manage.py 或 app.py 文件。对于 Flask,扩展会查找包含 Flask 应用声明(例如 app = Flask())的 wsgi.py、app.py 或 init.py 文件。
如果项目中找不到这些文件,下拉菜单会显示相应项目类型的默认选项,即使该文件可能不存在。
Hatch 环境发现
Hatch 环境现在默认被发现和激活,类似于 Venv、Conda 和 Poetry 等其他常见环境。此外,对于未注册显式环境标识符的 Hatch,扩展能够通过环境定位器确定环境类型 (Hatch)。
pipenv、pyenv 和 Poetry 项目的自动环境选择
如果您的工作区包含 pipenv、pyenv 或 Poetry 环境,则现在会自动为您的工作区选择相应的环境。此前,扩展正确地发现了这些环境,但选择了默认的全局解释器,需要您手动为工作区选择合适的环境。
现在,Python 扩展会根据环境的存在和相应的配置文件来推断已激活的环境。例如,在 pyenv 的情况下,扩展会查看 .python-version 文件以自动为工作区选择合适的解释器。
报告问题命令改进
Python 和 Python 调试器扩展现在让您更轻松地向我们的仓库报告问题!如果您使用报告问题命令 (workbench.action.openIssueReporter) 提交问题,大部分繁重的工作已经完成,您只需提供一些额外信息,以便我们的团队能够有效地分类您遇到的问题。
要使用帮助:报告问题命令为 @vscode-python 或 @vscode-python-debugger 提交问题,请分别从扩展下拉菜单中选择 Python 或 Python 调试器。
GitHub 拉取请求
GitHub Pull Requests 扩展取得了更多进展,该扩展使您能够处理、创建和管理拉取请求和问题。新功能包括:
- 过时的评论在“评论”视图中的显示方式与当前评论不同。
githubPullRequests.createDefaultBaseBranch的新auto值使用上游的默认分支作为派生存储库的基础分支。- “评论”视图中的评论线程具有内联操作(解决/取消解决,以及过时评论的“Diff Comment with HEAD”)和上下文菜单操作。
查看扩展的 0.86.0 发布说明,了解其他亮点。
Jupyter
单元格执行分析改进
通过最新的 Pylance 预发布版,我们为 Jupyter 单元格提供了更好的依赖分析。它现在理解模块导入,这在您有导入先前单元格中定义的模块的单元格时特别有用。
要启用此功能,请在 VS Code Insiders 中安装最新的 Pylance 预发布版,并启用 jupyter.executionAnalysis.enabled 和 notebook.consolidatedRunButton 设置。
扩展创作
使用问题报告器命令进行扩展错误报告
上一次迭代中,我们完善了一种扩展提交方式,允许扩展在通过 VS Code 的问题报告器向 GitHub 提交时提供额外的数据或模板。扩展可以贡献一个命令,该命令可通过帮助:报告问题...命令访问。选择他们的扩展会运行他们贡献的命令。请查看我们的 问题报告文档/发布说明,了解有关这如何与您的扩展配合工作的更多信息!
此外,所有安装的扩展都可以通过快速打开进行快速报告。通过在快速打开 (⌘P (Windows, Linux Ctrl+P)) 中输入 issue ,您可以快速选择或搜索已安装的扩展进行报告。
某些扩展将开始转向利用这种新的问题报告流程,并将不再需要直接贡献到命令面板中的自定义 报告问题... 命令。
预览功能
终端中重叠字形的重新缩放
提供了一个新的设置 terminal.integrated.rescaleOverlappingGlyphs,它会重新缩放重叠后续单元格的字形。这旨在涵盖模糊宽度字符,这些字符可能具有与后端 pty/unicode 版本认为不匹配的字体字形。例如,在大多数字体中,罗马数字 unicode 字符 (U+2160+) 通常占用多个单元格,因此在启用此设置时它们会被水平重新缩放。
无重新缩放

带重新缩放

何时进行重新缩放的规则仍在调整中,我们正在考虑在未来稳固时将其作为默认设置。如果您尝试此操作并看到正在重新缩放但不应重新缩放的字符,请 创建问题。
本地工作区扩展
我们很高兴介绍这一新的预览功能,它允许您直接在工作区中打包扩展。此功能旨在满足您的特定工作区需求并提供更量身定制的开发体验。
要使用此功能,您需要在工作区内的 .vscode/extensions 文件夹中打包您的扩展。VS Code 然后会在扩展视图的工作区推荐部分显示此扩展,用户可从此处安装它。VS Code 仅为该工作区安装此扩展。它还要求用户在安装和运行此扩展之前信任该工作区。
例如,考虑 VS Code 存储库中的 vscode-selfhost-test-provider 扩展。此扩展插入测试功能,使贡献者能够直接在工作区内查看和运行测试。下图显示了扩展视图“工作区推荐”部分中的 vscode-selfhost-test-provider 扩展以及安装它的能力。

此功能可在 Insiders 版本中通过 extensions.experimental.supportWorkspaceExtensions 进行预览。请尝试一下,并通过在 VS Code 存储库中创建问题来告诉我们您的反馈。
提议的 API
终端 Shell 集成 API
现在提供了一个新的建议 API,允许访问 Shell 集成激活的终端提供的一些信息。通过此 API,可以监听在终端中执行的命令的传入数据和退出代码。它还引入了一种更可靠的执行命令方式,即在发送命令之前等待提示符可用,这有助于修复各种 Shell 设置中可能出现的某些冲突/竞争条件。
这是一个使用 Terminal.shellIntegration.executeCommand 建议的示例
// Execute a command in a terminal immediately after being created
const myTerm = window.createTerminal();
window.onDidActivateTerminalShellIntegration(async ({ terminal, shellIntegration }) => {
if (terminal === myTerm) {
const command = shellIntegration.executeCommand('echo "Hello world"');
const code = await command.exitCode;
console.log(`Command exited with code ${code}`);
}
}));
// Fallback to sendText if there is no shell integration within 3 seconds of launching
setTimeout(() => {
if (!myTerm.shellIntegration) {
myTerm.sendText('echo "Hello world"');
// Without shell integration, we can't know when the command has finished or what the
// exit code was.
}
}, 3000);
这是一个监听命令数据流的示例
// Create a terminal and log all data via console.log
const myTerm = window.createTerminal();
window.onDidStartTerminalShellExecution(execution => {
if (execution.terminal === myTerm) {
const stream = execution.createDataStream();
for await (const data of stream) {
console.log(data);
}
}
});
您可以在 此处查看新的 API。
认证 API 的“了解更多”属性
本次迭代中,我们添加了一个新的建议 API,允许您在 AuthenticationForceNewSessionOptions 中指定 learnMore 属性。其想法是,如果您在选项中调用 getSession 并带有 forceNewSession 属性,则可以包含一个 URI,该 URI 将呈现给用户以了解有关为何请求认证的更多信息。以下是其外观示例

这是它在代码中的样子
vscode.authentication.getSession('github', ['repo'], {
forceNewSession: {
detail: l10n.t('To show you more relevant Copilot Chat results, we need permission to read the contents of your repository on GitHub.'),
learnMore: Uri.parse('https://aka.ms/copilotRepoScope')
};
});
您可以在 此处查看新的 API。
过时的评论
新的评论线程 applicability 属性允许在“评论”视图中将评论线程标记为过时

您可以在 此处查看 API 建议。
评论视图菜单
commentsView/commentThread/context 建议菜单允许将操作添加到“评论”视图中评论线程的右键上下文菜单。通常的 inline 组也得到尊重,以便操作在“评论”视图中内联显示。

工程
Electron 28 更新
在本次迭代中,我们将 Electron 28 更新推广到稳定版用户。此更新附带 Chromium 120.0.6099.291 和 Node.js 18.18.2。我们要感谢所有在 Insiders 构建上进行自我托管并提供早期反馈的人。
值得注意的修复
- 204886 在简单文件选择器中打开路径不同但名称相同的文件失败
感谢
最后但同样重要的是,向 VS Code 的贡献者们致以衷心的感谢。
问题跟踪
对我们问题跟踪的贡献
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
- @starball5 (starball)
- @the-coder-o (Abdul basit)
- @ArturoDent (ArturoDent)
拉取请求
对 vscode 的贡献
- @333fred (Fred Silberberg):作为字符串或正则表达式的一部分时,请勿修剪空格 PR #198164
- @89netraM (Mårten Åsberg):渲染区间设置的最终行号 PR #207227
- @a-stewart (Anthony Stewart)
- 在 QuickAccess 中更改前缀时停止光标跳动 - v2 PR #204702
- 在 nls.mock.ts 中导出 ILocalizedString PR #206449
- @akbyrd (Adam Byrd)
- 在存在多个光标时,实现主光标和次光标的独立颜色 PR #181991
- 更改 editor.action.focusNextCursor 以显示主光标,而不是所有光标 PR #182148
- @AndreasBackx (Andreas Backx):修复 Linux Wayland 平滑滚动。 PR #205122
- @andrewbranch (Andrew Branch):[typescript-language-features] 修复 autoImportFileExcludePatterns 格式以在 Windows 上工作 PR #202762
- @andyscho (Andy Schoenberger):对于 onDidChangeSelectedNotebooks 的内核只有一个订阅者 PR #204417
- @BABA983 (BABA):更好的测试侧边栏重试颜色 PR #207949
- @BrandonXLF (Brandon Fowler):覆盖终端选项卡图像图标的 CSS 内容 PR #207220
- @BrookMaoDev (Brook Mao):改进了 editor.useTabStops 设置的描述 PR #206552
- @btwiuse:cli:向
code serve-web命令添加 --server-base-path 标志 PR #207932 - @BusinessDuck (Dmitriy Yurov):修复浏览器自动填充表单事件的 'e.getModifierState is not a function' 错误 PR #206883
- @cchanche (Clément Chanchevrier):调整终端方向 PR #205015
- @CGNonofr (Loïc Mangeonjean)
- 修复键盘布局检测 PR #205193
- 修复不在 body 上时的全屏容器尺寸检测 PR #205884
- @cpendery (Chapman Pendery)
- 修复:终端建议按模糊分数排序 PR #208486
- 修复:当快捷键发送到 shell 时不显示终端建议 PR #208523
- 修复:完成接受后建议小部件仍然存在 PR #208524
- @deyihu (hu de yi):编辑器粘贴事件结果返回 ClipboardEvent PR #192732
- @dgileadi (David Gileadi):引入小地图章节标题,仿照 Xcode PR #190759
- @futurist (James Yang):特性:为 IPCServer 添加 ipcLogger 和 timeoutDelay PR #193896
- @gjsjohnmurray (John Murray):使通道日志级别可从输出视图设置 PR #205159
- @harbin1053020115 (ermin.zem):修复:如果没有内置演练,则首次启动时选择第一个扩展演练。 PR #207303
- @hickford (M Hickford):排序行:如果没有选中任何内容,则对所有行进行排序。 PR #200325
- @hsfzxjy (Xie Jingyi)
- 修复设置编辑器列表项溢出 PR #206681
- 添加中间点击槽位的日志点 PR #206684
- @IncognitaDev (Luis Sousa):特性:将 PascalCase 添加到 CaseActions PR #206259
- @its-miroma (Miroma):更改默认 YAML 扩展 PR #206447
- @jeanp413 (Jean Pierre):修复面包屑小部件无法正确调整大小的问题 PR #200591
- @jeremy-rifkin (Jeremy Rifkin):扩展 monarch 功能以允许在规则内进行状态访问 PR #183463
- @jhasse (Jan Niklas Hasse):为 LineCommentCommand 使用 indentSize 而不是 tabSize PR #193811
- @Krzysztof-Cieslak (Krzysztof Cieślak)
- 修复内联编辑中渲染删除的差一错误 PR #205890
- 内联编辑 - 确保在模糊时取消正在进行的请求 PR #206430
- 内联编辑 - 确保在请求新编辑之前最终确定接受 PR #206525
- @lusingander (Kyosuke Fujimoto):修复
editor.cursorSurroundingLinesStyle设置的错误描述 PR #201482 - @mahmoudsalah1993 (Mahmoud Salah):对于差异编辑器,解析修改后的编辑器以允许在 c 中运行测试... PR #206026
- @marrej (Marcus Revaj):# 将部分接受种类添加到内联补全句柄 PR #202668
- @mkasenberg:searchEditor:添加单击查看选项 PR #204413
- @mroch (Marshall Roch):修复 "Extension [object Object] is not known" PR #207764
- @NriotHrreion (NoahHrreion):修复悬停小部件的意外位置 PR #205502
- @orgads (Orgad Shaneh)
- 隧道:同时为查询字符串扩展端口映射查找(第二次尝试) PR #204807
- 隧道:重新添加端口映射的单元测试 PR #207249
- @PmcFizz (Fizz):更新 IActionDescriptor.precondition 描述 PR #176124
- @raphaelgpalma (Raphael Palma):修复语法错误:'But allow them if the are made from inside an...' PR #207584
- @rehmsen (Ole):也为浏览器上的并排视图记录
resource遥测。 PR #208196 - @russelldavis (Russell Davis):修复 javascript 和 typescript 的 decreaseIndentPattern PR #201425
- @samdenty (Sam Denty):特性(web/lifecycleService):更正 startupKind PR #206563
- @Sidebail (VLADIMIR VATSURIN):修复文件相对路径链接 PR #181475
- @SimonSiefke (Simon Siefke):修复:notebook baseCellViewModel 中的内存泄漏 PR #205499
- @solimant:遵守 GitHub 品牌名称大小写 PR #208503
- @thegecko (Rob Moran):Web 扩展宿主启动时更新 extensionPaths PR #193849
- @vinistock (Vinicius Stock):修复 Ruby 注释中
in和when取消缩进的意外取消缩进 PR #206132 - @yamachu (Yusuke Yamada):修复在搜索结果中最深目录中显示文件的问题 PR #206609
- @Yesterday17 (Yesterday17):按节点深度顺序分派 GestureEvent PR #200612
- @yiliang114 (易良):修复 Webview 中复制/剪切命令无法工作的问题 PR #206529
- @yutotnh (yutotnh):添加对在词操作中识别词区域设置的支持 (#_50045) PR #203605
对 vscode-css-languageservice 的贡献
- @balaji-sivasakthi (Balaji Sivasakthi):特性:支持 scss 的悬停工具提示 PR #367
对 vscode-eslint 的贡献
- @JoshuaKGoldberg (Josh Goldberg ✨):特性:在 eslint.probe 设置中支持 json、json5、jsonc PR #1787
- @remcohaszing (Remco Haszing)
对 vscode-extension-samples 的贡献
- @juliankasimir (Julian Kasimir):特性(lang):在 showQuickPick 函数中用英语替换德语 PR #983
对 vscode-hexeditor 的贡献
对 vscode-js-debug 的贡献
- @Beanyy:修复未设置描述时远程对象中数字 0 的格式 PR #1968
- @mdh1418 (Mitchell Hwang):[CDP] 为 DotnetDebugger 错误事件发送遥测 PR #1961
- @relief-melone (Relief.Melone):添加了构建代理支持 PR #1965
对 vscode-json-languageservice 的贡献
- @denisw (Denis Washington):修复嵌套尾随逗号情况下的排序错误 PR #223
对 vscode-pull-request-github 的贡献
- @ipcjs (ipcjs):修复:使
review.openLocalFile支持从键盘触发。 PR #5840 - @mohamedamara1 (Mohamed Amara):修复 IssueOverviewPanel 的 ID PR #5822
对 vscode-pylint 的贡献
- @MGasiewski:添加将波浪号替换为主环境的逻辑 PR #524
对 vscode-python-debugger 的贡献
- @bersbersbers:更新
launch.json模式 PR #243 - @StephanTLavavej (Stephan T. Lavavej):修复拼写错误 PR #217
对 debug-adapter-protocol 的贡献
- @andyw8 (Andy Waite):更新 Ruby LSP 的适配器列表 PR #471
- @svaante (Daniel Pettersson):在实现工具部分添加 Emacs dape 包 PR #469
对 inno-updater 的贡献
- @ChayimFriedman2 (Chayim Refael Friedman):删除不需要的
unsafe impl SendPR #25
对 language-server-protocol 的贡献
- @asukaminato0721 (Asuka Minato)
- @iliaamiri (Ilia Abedianamiri):摘要段落中的一个小拼写错误 PR #1903
- @lukaskesch (Lukas Kesch):在 footer.html 中将版权年份更新为 2024 PR #1909
- @MariaSolOs (Maria José Solano):诊断消息中 MarkupContent 支持的规范 PR #1905
- @oliviacrain (Olivia Crain):删除 rnix-lsp 的服务器条目 PR #1902
对 monaco-editor 的贡献
- @jeremy-rifkin (Jeremy Rifkin):修复 C++ 原始字符串字面量高亮显示的错误 PR #4436
对 node-pty 的贡献