2022 年 10 月 (版本 1.73)
更新 1.73.1:此更新解决了这些 问题。
下载:Windows: x64 Arm64 | Mac: 通用 Intel Apple 芯片 | Linux: deb rpm tarball Arm snap
欢迎来到 Visual Studio Code 2022 年 10 月版。此版本包含许多我们希望您喜欢的新内容,其中一些主要亮点包括
- 搜索包含/排除文件夹 - 快速设置要在树状视图中包含/排除的文件夹。
- 命令中心模式快捷方式 - 在最近文件列表之前显示常用模式。
- 合并编辑器改进 - 访问“组合”选项以自动合并冲突。
- Markdown 自动更新链接 - 文件和图像链接在重命名/移动时更新。
- 更多音频提示 - 任务完成或失败,终端快速修复可用。
- vscode.dev 受保护分支工作流 - 在提交到受保护分支时创建新分支。
- 新的 Python 扩展 - 用于 isort、Pylint 和 Flake8 的新独立扩展。
- 开发容器模板 - 基于现有模板创建新的开发容器。
如果您想在线阅读这些发布说明,请访问 code.visualstudio.com 上的更新日志。
Insiders 版本:想尽快尝试新功能吗?您可以下载每夜构建的 Insiders 版本,并在最新更新可用后立即试用。
辅助功能
新增音频提示
新增了 音频提示,以帮助您使用任务和终端。
- 任务完成 - 在任务完成时播放声音(由
audioCues.taskCompleted
设置控制)。 - 任务失败 - 在任务失败时播放声音(
audioCues.taskFailed
)。 - 终端快速修复 - 如果当前行有快速修复可用(
audioCues.terminalQuickFix
)。
屏幕阅读器模式下的换行
在屏幕阅读器模式下运行 VS Code 时,曾禁用了换行以防止屏幕阅读器体验下降。此问题已修复,可以通过 editor.wordWrap
启用换行。
辅助功能设置标签
现在可以使用 accessibility
标签,以提高与辅助功能相关的设置的可发现性。
首选项:打开辅助功能设置 命令会使用 @tag:accessibility
过滤器打开设置编辑器。
工作台
在搜索中包含和排除文件夹
在搜索视图的结果树状视图中右键单击文件夹时,现在上下文菜单中新增了两个选项。
-
选择 仅在文件夹内搜索 会将选定的文件夹路径添加到 要包含的文件 文本框。在此文本框中添加路径会将搜索结果限制为符合列出的路径或模式的结果。
主题:GitHub Dark Dimmed (在 vscode.dev 上预览)
-
选择 从搜索中排除文件夹 会将选定的文件夹路径添加到 要排除的文件 文本框。在此处添加路径将排除任何符合列出的路径或模式的搜索结果。
主题:GitHub Dark Dimmed (在 vscode.dev 上预览)
命令中心模式快捷方式
在命令中心顶部新增了一个部分,以便于发现如何导航到文件、运行命令等。
这个简短的模式列表还提供快捷键提示,以便您无需通过命令中心即可直接跳转到最常用的模式(例如 转到文件)。
默认情况下,命令中心 UI 不显示在标题栏中,但您可以通过 窗口:命令中心 (window.commandCenter
) 设置或右键单击标题栏并勾选 命令中心 来启用它。
设置编辑器工作区信任和策略指示器
由于受限模式工作区或组织策略管理而未应用的设置现在使用指示器显示其状态。即使在受限模式工作区中,用户也可以读写工作区设置(使用 settings.json
文件一直都可能),但在计算受限工作区中使用的设置最终值时,不会考虑工作区设置值。
默认的浅色主题也进行了一些调整,指示器区域的 codicon 图标 渲染更清晰,焦点边框更紧凑。
大纲默认折叠状态
有一个新设置 outline.collapseItems
,用于控制大纲视图中项的默认折叠状态。默认值为 false
,表示大纲项默认展开。将其设置为 true
以使大纲项默认折叠。此设置可以按语言设置,也适用于笔记本。
重新排列“视图”菜单
在 VS Code 菜单栏的“视图”菜单中,最后一个组是不断增长的编辑器操作列表。为了平衡菜单增长和功能性,我们已将主要与外观相关的项移至 外观 子菜单下。换行 和 粘滞滚动 选项保留在其原始位置,即菜单底部。
主题:GitHub Light Default (在 vscode.dev 上预览)
输入 UI 上的圆角
文本输入框、文本区域和下拉列表现在都显示圆角,以匹配之前版本中应用于按钮的样式。
快速选择列表样式更新
快速选择 UI 中使用的列表样式已轻微更新,增加了圆角和左右边距。
列表视图的 codicon 图标更新
平面列表视图和树状列表视图现在使用更清晰易读的 codicon 图标来表示列表类型。
次侧边栏前景颜色
次侧边栏总体上模仿了主侧边栏的主题风格,但并非所有主题键都能正确应用。现在次侧边栏可以正确使用 "sideBar.foreground"
主题键。
下方是右侧带有资源管理器的主要侧边栏和左侧带有大纲视图的次要侧边栏,它们都使用了相同的粉色前景颜色。
主题:GitHub Light Default (在 vscode.dev 上预览)
不再显示“折叠范围过多”通知
出于性能原因,我们将编辑器中显示的折叠范围数量限制为 5000。此限制可以通过设置 editor.foldingMaximumRegions
进行配置。超出此限制时,VS Code 以前会显示通知。现在,状态栏中的语言状态悬停提示会显示此信息。
默认折叠提供者
通常,当一种语言有多个折叠提供者处于活动状态时,VS Core 会尝试合并结果。如果存在冲突的范围,会丢弃一些范围。此外,并非所有折叠提供者都可以与其他提供者组合使用。
新的 editor.defaultFoldingProvider
设置允许您选择要使用的折叠提供者。提供者的名称是贡献该提供者的扩展 ID ({publisher}.{extension}
)。
以下示例将(假设的)扩展 aeschli.better-folding
的折叠提供者设置为 JavaScript 的默认提供者。
"[javascript]": {
"editor.defaultFoldingRangeProvider": "aeschli.better-folding"
}
按输出通道设置日志级别
您现在可以使用命令 开发者:设置日志级别... 按日志输出通道设置日志级别。当您只想查看特定日志输出通道的更多日志时,这非常有用。该命令将首先显示输出通道列表,选择一个后,系统会提示您设置日志级别。
您还可以从命令行按扩展设置日志级别。当您想查看特定扩展的更多日志时,这非常有用。例如,以下脚本允许您启动 VS Code,并将 Git 扩展的日志输出通道的默认日志级别设置为 debug
。
code --log vscode.git:debug
新增 list.collapseAllToFocus 树状视图命令
新命令 list.collapseAllToFocus
允许您递归折叠当前聚焦的树项。当您想要折叠非根树项的所有子项时,这非常有用。该命令没有默认快捷键,但您可以通过键盘快捷键编辑器添加自己的快捷键(⌘K ⌘S (Windows, Linux Ctrl+K Ctrl+S))。
合并编辑器
在这个里程碑中,我们继续完善了合并编辑器,本次更新包含了一些错误修复和一些新功能。
接受双方内容会附加冲突
在此版本中,接受内入 和 接受当前 始终可以同时选择。当同时选择这两个选项时,合并编辑器会附加相应的更改行。
在下面的短视频中,由于接受了双方的行,RelativePattern
被导入了两次
当冲突可以在字符级别上解决而没有冲突时,会显示 接受组合 选项,并且可以使用它自动解决冲突。
在下面的视频中,两个符号都被导入到同一个 import 语句中
与基础版本比较的差异装饰
打开基础版本视图时,会显示当前聚焦的一侧与基础版本之间的差异。此差异视图可用于更好地理解 内入 和 当前 版本中的更改。
差异算法改进
合并编辑器的默认差异算法已更改。新的差异算法针对合并场景进行了优化。在常见情况下,它最大程度地减少了差异块(hunks)的数量,并优化了插入位置。如果新算法导致问题,可以使用设置 "mergeEditor.diffAlgorithm": "smart"
切回先前的算法(默认现在是 experimental
)。
以下截图演示了插入方面的改进。请注意,这两个差异都是正确的,但新行为更清晰地突出了插入的文本
旧行为
新行为
新的差异算法目前仅在合并编辑器中默认启用。如果您希望常规差异编辑器也使用新的差异算法,可以设置 "diffEditor.diffAlgorithm": "experimental"
。
导航查看冲突
您现在可以单击冲突计数器跳转到下一个未处理的冲突
语言
Markdown 文件重命名/移动时自动更新链接
厌倦了在移动或重命名文件时意外破坏 Markdown 中的链接或图像?试试新的 markdown.updateLinksOnFileMove.enabled
设置!
启用此新设置后,当文件在 VS Code 资源管理器中移动或重命名时,VS Code 将自动更新 Markdown 中的链接和图像
您可以使用 markdown.updateLinksOnFileMove.include
控制受影响的文件类型。默认情况下,它对所有 Markdown 文件和常见图像文件格式启用。
Markdown 插入链接命令
新的 Markdown:插入工作区文件链接 和 Markdown:插入工作区图像 命令允许您使用文件选择器快速向 Markdown 中插入链接和图像
请记住,这些命令只是向 Markdown 文件添加链接和图像的一种选项。您也可以使用 Markdown 路径补全 或什至从 VS Code 的资源管理器中拖放文件 来插入链接或图像。
Markdown 未使用和重复链接定义诊断
我们内置的 Markdown 验证现在可以提醒您注意未使用或重复的 链接定义。您可以使用 markdown.validate.enabled
启用此功能
如果您想要更精细地控制这些错误,可以使用这些 markdown.validate
设置来禁用这些错误 (ignore
) 或更改其严重性 (warning
, error
)
markdown.validate.duplicateLinkDefinitions.enabled
markdown.validate.unusedLinkDefinitions.enabled
还有一个快速修复功能,可以删除重复或未使用的链接定义。
Markdown 链接出现高亮
Markdown 中的链接出现高亮会显示当前文档中光标下的链接被使用的所有位置
请注意,当光标位于文档中的第一个链接上时,所有指向 First Header
的链接以及标题本身都在文档中以及文档右侧的侧边栏中高亮显示。
此功能默认关闭。要启用它,请打开 markdown.occurrencesHighlight.enabled
设置。
新的 Razor 语法高亮语法
VS Code 有一个新的、维护更完善的 Razor 语法,用于 Razor 文件的语法高亮。新语法正在积极维护,并修复了旧语法中存在的问题。
VS Code for the Web
改进的分支创建和保护工作流
当您在 VS Code for the Web 中的 GitHub 或 Azure Repos 仓库中时,提交到受保护的分支现在会通知您当前分支已受保护,并提示您创建一个新分支。
此工作流还将遵守以下设置
git.branchPrefix
允许您使用配置的前缀预填充分支名称快速输入框。"git.branchProtectionPrompt": "alwaysCommitToNewBranch"
允许您在尝试提交到受保护分支时跳过提示,直接进入创建新分支的快速输入框。
此外,当您创建新分支时,可以通过配置 "remoteHub.switchToCreatedBranch": "always"
来绕过关于是否切换到新创建分支的提示。
上述所有内容也适用于在桌面版 VS Code 中使用 GitHub Repositories 或 Azure Repos 扩展。
Web 端本地化改进
几个月前,我们开始为 VS Code for the Web 进行本地化工作。到目前为止,VS Code 核心和在扩展清单中静态声明字符串的扩展已经可以本地化。本次迭代,我们完成了最后一块拼图:扩展代码中的字符串。这得益于我们上个月提议的本地化 API 的定稿。
随着我们在所有扩展中继续采用这个新的 API,敬请关注 VS Code 更多部分的本地化。如果您是扩展作者,可以在 vscode-l10n 仓库中了解有关新 API 的更多信息。
对扩展的贡献
Python
迁移到 isort 扩展
在我们 2022 年 5 月的发布中,我们宣布了一个新的 isort 扩展,它可以与 Python 扩展协同工作以排序 import 语句。例如,当您打开文件并且 import 语句不符合 isort 标准时,它会显示错误诊断并提供一个代码操作来修复 import 顺序。在此版本中,我们通过在安装 Python 扩展时自动安装独立的 isort 扩展,从 Python 扩展内置的 isort 支持迁移到使用该独立扩展。
使用 Pylance 时默认关闭自动 import 功能
自 Pylance 中首次实现自动 import 功能以来,我们收到了很多关于它有多令人困惑,有时甚至令人烦恼的反馈,比如在意外接受建议时自动将 import 添加到文件中。从本版本开始,使用 Pylance 时默认不再自动导入包。如果您想为 Python 项目重新启用自动 import 功能,可以通过设置 "python.analysis.autoImportCompletions": true
来实现。
Pylint 和 Flake8 扩展推荐
在我们的先前的发布中,我们宣布了新的 Pylint 和 Flake8 扩展,它们通过 Language Server Protocol (LSP) 与 Python 扩展协同工作以提供 linting 功能。在此版本中,如果您仍在使用 Python 扩展内置的 Pylint 和 Flake8 功能,我们将显示通知,提示您安装这些新扩展。
远程开发
远程开发扩展允许您使用容器、远程机器或 适用于 Linux 的 Windows 子系统 (WSL) 作为功能齐全的开发环境。此版本的亮点包括
您可以在远程开发发布说明中了解新的扩展功能和错误修复。
GitHub 拉取请求和问题
GitHub 拉取请求和问题扩展的工作仍在继续,该扩展允许您处理、创建和管理拉取请求和问题。查看该扩展 0.54.0 版本的更新日志以查看其他亮点。
预览功能
TypeScript 4.9
此更新包括对即将发布的 TypeScript 4.9 版本的支持。有关 TypeScript 团队目前正在开展工作的更多详细信息,请参阅 TypeScript 4.9 迭代计划。一些编辑器工具亮点
- 一个新的 排序 Import 命令,可以在不删除未使用的 import 的情况下排序 import 语句。
- 在 return 语句上运行 转到定义 现在会跳转到函数声明处。
- 切换到新的默认文件观察器,性能应有所提升。
要开始使用 TypeScript 4.9 每夜构建版本,请安装 TypeScript Nightly 扩展。
设置配置文件
在过去的几个月里,我们一直在努力支持 VS Code 中的 设置配置文件,这是社区中最受欢迎的需求之一。此功能通过 workbench.experimental.settingsProfiles.enabled
设置进行预览。请尝试并向我们提供反馈,可以在vscode 仓库中创建问题或在issue #116740 中评论。
显示同步的配置文件数据
您现在可以在 同步活动 (远程) 视图中查看每个配置文件同步的数据。这对于理解每个配置文件同步了哪些数据很有帮助。
注意:此功能目前仅在 VS Code 的 Insiders 版本中可用。
扩展创作
为工作区编辑提供元数据
用于应用工作区编辑的 API 现在允许扩展提供元数据,例如将编辑标记为重构。编辑器和重构后的自动保存功能(设置:files.refactoring.autoSave
)将遵守此额外元数据。
限制 MarkdownString 和 webview 可以运行的命令
MarkdownString
中的命令链接是一种在 VS Code 的悬停提示或智能感知详细信息中创建自定义交互的有用方法。Webview 也可以使用命令链接直接从 webview 触发 VS Code 命令。但是,命令链接也可能很危险,因为它们可以用于执行任何命令,包括许多在设计时未考虑安全性的命令。因此,命令链接默认是禁用的,必须由扩展明确启用。
虽然这种全有或全无的方法可行,但我们也发现它给扩展作者带来了过多的安全负担。需要使用命令链接的扩展必须验证其渲染的内容中只包含安全命令。这既容易忘记也容易出错。
为了改进这一点,我们引入了新的命令链接启用 API,允许扩展只启用命令的一个受信任子集。
对于 MarkdownString
,isTrusted
属性现在接受一个可执行命令的允许列表(所有其他命令将被阻止)
const md = new vscode.MarkdownString(
`A command link: [Open setting](command:workbench.action.openSettings)`
);
// Set trusted commands instead of enabling all commands
md.isTrusted = { enabledCommands: ['workbench.action.openSettings'] };
对于 webview,WebviewOptions.enableCommandUris
属性现在可以是启用命令的列表,而不再是简单的 true/false
const options: vscode.WebviewOptions = {
enableCommandUris: ['workbench.action.openSettings']
};
我们强烈鼓励所有使用命令链接的扩展采用这个新的、更严格的 API 来提高安全性。
WebView 和 Webview 视图的一致来源
为了提高 WebView 的加载时间,我们现在尝试为给定类型的 webview 的所有实例维护一个一致的来源。这有两个主要好处
-
WebView 可以更好地利用缓存。这意味着本地资源加载应该更快。
-
WebView 可以使用本地存储和其他按来源划分的 Web API。
请记住,webview 的所有实例现在都将在同一个来源上运行,因此如果它们正在使用诸如本地存储之类的 API,请务必按资源对任何特定于文档的数据/状态进行分区。例如,
localStorage.setItem('scrollPosition', 100)
会将所有 webview 实例的scrollPosition
设置为 100。如果您想为单个资源设置滚动位置,还需要在键中包含资源 ID:localStorage.setItem(myDocUri, JSON.stringify({scrollPosition: 100 }))
。您也不应该使用 localStorage 或类似 API 存储关键数据,例如文档内容。虽然 VS Code 会尽最大努力为 webview 维护一致的来源,但我们无法保证来源不会改变。
在许多情况下,您应该使用webview 状态 API,因为这些 API 会为您处理上述两个问题。
来源是为每个扩展和 webview 类型随机生成的。同一个来源用于 webview 的所有实例。
目前,普通WebView 和 Webview 视图 都尝试维护一致的来源。我们计划在下一次迭代中将其应用于自定义编辑器和笔记本 webview。
Debug Adapter Protocol
新增 'startDebugging' 反向请求
如今,VS Code 支持多个并发调试会话,但 Debug Adapter Protocol (DAP) 仅涵盖单个会话。这意味着以编程方式创建新的调试会话不是 DAP 的一部分,只能在 DAP 或调试适配器外部进行,通常是在包含调试适配器的调试扩展中。因此,对于非 VS Code DAP 客户端,诸如自动调试子进程等多会话功能不容易获得,因为它们通常只使用调试适配器,而不使用 VS Code 特定的调试扩展。
为了改善这种情况,我们在 DAP 中添加了一个新的反向请求 startDebugging
,它允许扩展从调试适配器内部创建一个新的调试会话(与调用者类型相同)。客户端能力 supportsStartDebuggingRequest
向调试适配器指示客户端支持 startDebugging
。
在 10 月份的版本中,VS Code 已经实现了 startDebugging
。
提议的 API
每个里程碑都会带来新的提议的 API,扩展作者可以试用它们。一如既往,我们希望收到您的反馈。以下是试用提议的 API 的步骤
- 找到您想尝试的提议,并将其名称添加到
package.json#enabledApiProposals
中。 - 使用最新的 vscode-dts 并运行
vscode-dts dev
。它会将相应的d.ts
文件下载到您的工作区。 - 您现在可以针对该提议进行编程。
您不能发布使用提议的 API 的扩展。下个版本可能会有重大更改,我们绝不希望破坏现有扩展。
静态笔记本预加载
新的 notebookPreload
提议的贡献点允许扩展贡献加载到特定类型笔记本中的脚本。
{
"contributes": {
"notebookPreload": [
{
"type": "jupyter-notebook", // Type of notebook for the preload script
"entrypoint": "./path/to/preload.js"
}
]
}
}
此贡献点由 contribNotebookStaticPreloads
API 提议控制。扩展可以使用预加载在笔记本 JavaScript 环境中加载或定义全局变量。
预加载脚本必须是导出 activate
函数的 JavaScript 模块。所有预加载都在任何 渲染器脚本 之前执行。
笔记本渲染器可以访问所有输出项
自定义笔记本渲染器 现在可以访问其正在渲染的输出项的所有 MIME 数据。如果渲染器确定无法正确渲染主输出项,则此 API 提议允许它回退渲染其他 MIME 类型之一。
此提议的入口点是一个新的 OutputItem._allOutputItems
属性。该属性是当前输出项包含的所有 MIME 类型的一个有序列表。列表中的每个项都具有 { mime, getItem() }
的形状。mime
是 MIME 类型,例如 text/html
或 image/png
,而 getItem()
函数返回该 MIME 类型的 OutputItem
的 Promise。
渲染器可以使用此新 API 的方式如下
async function renderOutputItem(outputInfo, element, signal) {
const didRender = tryRenderMainItem(outputInfo, element);
if (!didRender) {
// Fallback to render `text/html`
const htmlItem = await outputInfo._allOutputItems
.find(item => item.mime === 'text/html')
?.getItem();
if (htmlItem) {
// Here we can either render the 'text/html' item ourselves
// or delegate to another renderer.
const renderer = await ctx.getRenderer('vscode.builtin-renderer');
if (renderer) {
return renderer.renderOutputItem(htmlItem, element, signal);
}
}
}
}
请尝试此提议并告诉我们您的想法!
扩展遥测 API
为了进一步推动遥测最佳实践并增强提供给扩展的遥测功能,本次迭代引入了提议的 telemetryLogger
API。此 API 允许扩展提供一个 TelemetryAppender
,它充当核心发送逻辑(利用 Application Insights 或其他数据记录服务实现)。然后使用此 TelemetryAppender
实例化一个 TelemetryLogger
,这是您应该通过其记录遥测数据的类。
TelemetryLogger
提供了一个共享的输出通道,用于查看已发送的遥测事件、正确的遥测设置检查以及个人可识别信息的清洗。此外,利用 VS Code API 抛出的任何错误都将记录到您的 appender 中,以便更好地进行错误诊断。
遥测示例中有一个简单的示例,您可以在issue #160090 中提供反馈。
日志输出通道
在上一个里程碑中,我们引入了 LogOutputChannel
API 提议,用于创建一个仅用于日志记录的输出通道。本次迭代,我们为其添加了 logLevel
属性和 onDidChangeLogLevel
事件。logLevel
属性表示输出通道当前的日志级别,当输出通道的日志级别更改时会触发 onDidChangeLogLevel
事件。
/**
* A channel for containing log output.
*/
export interface LogOutputChannel extends OutputChannel {
/**
* The current log level of the channel.
* Defaults to application {@link env.logLevel application log level}.
*/
readonly logLevel: LogLevel;
/**
* An {@link Event} which fires when the log level of the channel changes.
*/
readonly onDidChangeLogLevel: Event<LogLevel>;
...
...
}
我们还在 env
命名空间中添加了 logLevel
属性和 onDidChangeLogLevel
事件,以表示应用程序当前的日志级别,当应用程序的日志级别更改时会触发此事件。
export namespace env {
/**
* The current log level of the application.
*/
export const logLevel: LogLevel;
/**
* An {@link Event} which fires when the log level of the application changes.
*/
export const onDidChangeLogLevel: Event<LogLevel>;
}
工程方面
优化输入延迟
随着 VS Code 的功能不断增强,按下按键时发生的活动也随之增加。在此迭代中,我们后退一步,对在编辑器中输入文字时到底发生了什么以及有哪些工作可以推迟到按键在屏幕上呈现之后进行,做了彻底的调查。本次探索的主要成果包括:
- 我们进行了一些更改,以便尽可能将工作推迟到编辑器中的按键在屏幕上呈现之后再执行。初步估计,此更改的效果是,当 IntelliSense 未显示时,输入延迟降低了约 15%;当 IntelliSense 正在重新筛选时,输入延迟的降低幅度甚至更大。
- 我们现在拥有更精细的技术,可以手动测量输入延迟,并在亚毫秒*级别进行优化。
- 正在进行一项更改,它将帮助我们跟踪和报告输入延迟样本。这将为我们提供具体的数字,以便进行维护和改进。
这项工作才刚刚开始,我们还有更多更改将在下个版本中推出。
* 这些数字非常依赖于用于测试的硬件。在高性能硬件上实现的 0.5 毫秒改进,在普通硬件上可能最终会变成 2 毫秒。
自动渲染器性能分析
VS Code 的渲染进程负责其用户界面 (UI);它确保光标闪烁、能够输入和保存。渲染进程中的任何性能问题都将对用户可见,并导致糟糕的体验。为了帮助我们识别和修复渲染进程中的性能问题,我们添加了一个新的设置 application.experimental.rendererProfiling
,可用于自动分析渲染进程的性能。该设置可以设置为 on
启用性能分析,设置为 off
禁用性能分析。启用后,只要渲染进程“看起来有压力”,就会对其进行几秒钟的性能分析,然后分析结果会进行分析、匿名化并发送供检查。您可以使用窗口日志跟踪性能分析过程。
请注意,此功能目前默认关闭,因为我们仍在学习和调整。请试用并告诉我们您的想法。
Windows 11 上下文菜单
在此版本中,VS Code 安装程序默认会为 Insiders 版本向 Windows 11 上下文菜单 添加一个通过 Code - Insiders 打开的上下文菜单项。对于之前在安装 Insiders 版本时已选择启用上下文菜单的用户,以前在旧样式菜单 Shift + F10
中显示的菜单项现在更新到最新的 Insiders 版本后将被新的菜单项取代。对于其他用户,您需要重新安装 Insiders 版本并在安装向导中选择启用此菜单项。由于我们在开发此菜单项时遇到了一些问题,我们计划在将其推送到面向所有 Windows 11 用户的 Stable 版本之前,将其限制在 Insiders 版本中几个里程碑,以获取信心。
之后,通过 Code Insiders 打开操作将可在 Windows 文件资源管理器中的文件夹和文件上下文菜单中找到。
重要修复
- 151019 调试悬停时隐藏
- 153852 提案:移除 ES5 类兼容性以加快扩展 API 速度
- 156104 如果端口已静态转发,则在点击 URL 链接时不要自动转发端口
- 158921 其他地方修改的设置指示器悬停内容溢出
致谢
最后但同样重要的一点,衷心感谢对 VS Code 做出贡献的贡献者们。
问题跟踪
对我们的问题跟踪的贡献
- John Murray (@gjsjohnmurray)
- Simon Chan (@yume-chan)
- Andrii Dieiev (@IllusionMH)
- ArturoDent (@ArturoDent)
- RedCMD (@RedCMD)
对 vscode
的贡献
- @andrewbranch (Andrew Branch): [typescript-language-features] 添加
removeUnusedImports
命令 PR #161654 - @babakks (Babak K. Shandiz): 🐛 修复未等待的调用来显示 CWD 选择器 PR #163220
- @Balastrong (Leonardo Montini): 在空文件中粘贴时自动检测缩进 PR #156282
- @Brikaa (Omar Brikaa): 添加水平滚动的键盘快捷方式 PR #162992
- @CyrilOtheninGirard (Cyril OG): Bash shell 集成 -- 当 PROMPT_COMMAND 是数组时,退出代码未恢复 PR #158091
- @daiyam (Baptiste Augrain): feat: 选择要使用的折叠提供程序 PR #157434
- @dsanders11 (David Sanders)
- 修复对不存在的
runTests
API 的引用 PR #162543 - 如果不匹配的片段是 #top,则将 webview 滚动到顶部 PR #164070
- 修复对不存在的
- @dtivel (Damon Tivel): 添加扩展签名验证服务 PR #162285
- @gjsjohnmurray (John Murray)
- 添加
outline.collapseItems
并修复大纲意外折叠 (#_53262) PR #158650 - 在属性描述中引用正确的设置 (#_162663) PR #162665
- 添加
- @hughlilly (Hugh Lilly): 修复
src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts
中描述中的逗号连接问题 PR #164401 - @jacekkopecky (Jacek Kopecký)
- 在提示保存之前检查未保存的编辑器 PR #159318
- 解决光标错位问题 PR #159325
- @jakebailey (Jake Bailey)
- 不依赖 typescript protocol.d.ts PR #163365
- 移除对 typescript/lib/protocol 被遗忘的引用 PR #163585
- 确保 'undefined' 不会进入 tsserver.web.js PR #164064
- @jannisspeer: 移除 Snakefile 被归类为 Python 的情况 PR #162749
- @jeanp413 (Jean Pierre)
- 修复分离终端编辑器不会触发 vscode.window.onDidCloseTerminal 事件的问题 PR #154546
- 修复简单浏览器 webview 在恢复后不会被重用的问题 PR #163389
- 修复禁用 OSX 特权端口的问题 PR #163890
- 修复树项标签中的换行符导致标签难以阅读的问题 PR #163995
- 修复扩展禁用按钮右侧没有边框圆角的问题 PR #164109
- @joshaber (Josh Abernathy): 添加启用打开预览的上下文,第 2 部分 PR #163682
- @jsjoeio (Joe Previte): fix: 保留 process.execArgv PR #161853
- @laurentlb (Laurent Le Brun): 更新“特性贡献”中的列名 PR #162844
- @marrej (Marcus Revaj): # 为 applyEdit() 提供正确的响应 PR #162430
- @mrienstra (Michael Rienstra): 强制使用 yarn 版本 PR #162610
- @mustard-mh (Huiwen): 修复 #161565 PR #161567
- @nikita-r (Nikita R.): 修改“WordPart”系列命令以尊重 kebab-case (解决 #158667) PR #158672
- @pingren (Ping): 在 macOS 上为 monaco editor 启用 user-select PR #156755
- @qingpeng9802 (Qingpeng Li): 解决
es5ClassCompat
性能问题 PR #155390 - @r3m0t (Tomer Chachamu)
- 允许扩展作者在 QuickPick/InputBox 中设置 valueSelection PR #157022
- 当测试项由扩展更新时过滤测试树 PR #162169
- @sean-mcmanus (Sean McManus): 更新 language-configuration.json PR #163182
- @stephen-ullom (Stephen Ullom): 修复命令中心的红绿灯位置 PR #164246
- @StephenChips (Dongcai Huang): 修复 FreePortOutputRegex PR #162323
- @unm4ever (BK0717): 添加 __vsc_prior_prompt2 PR #156140
- @w1redch4d (Swapnadeep Som): 修复嵌入代码中 HTML 样式注释的问题 PR #160981
- @yamachig (yamachi): 修复自动环绕以开放字符结尾的问题 PR #147187
- @yiliang114 (易良): fix: 关闭 #164414,修复 folder-uri 的透明传输问题 PR #164415
对 vscode-pull-request-github
的贡献
- @hoontae24: feat: 在复制 head link 时为 GitHub Enterprise 添加上游源 PR #4028
- @Thomas1664: 检查部分的 UI 修复 PR #4059
- @yin1999 (A1lo): fix: 对于 SSH 协议上游使用 SSH URL PR #3853
对 vscode-dev-chrome-launcher
的贡献
- @mirdaki: 添加设置 stable 或 insiders 构建版本的选项 PR #20
- @infinitepower18 添加描述并修复扩展设置中的空白图标 PR #18