2022 年 10 月(版本 1.73)
更新 1.73.1:此更新解决了这些 问题。
下载:Windows:x64 Arm64 | Mac:通用 英特尔 硅 | Linux:deb rpm tarball Arm snap
欢迎使用 2022 年 10 月版的 Visual Studio Code。此版本包含许多更新,我们希望您会喜欢,其中一些主要亮点包括
- 搜索包含/排除文件夹 - 快速设置要在树视图中包含/排除的文件夹。
- 命令中心模式快捷方式 - 在最近的文件列表之前显示常用模式。
- 合并编辑器改进 - 访问“组合”选项以自动合并冲突。
- Markdown 自动链接更新 - 文件和图像链接在重命名/移动时更新。
- 更多音频提示 - 任务已完成或失败,终端快速修复可用。
- vscode.dev 受保护分支工作流程 - 在提交到受保护分支时创建新分支。
- 新的 Python 扩展 - 为 isort、Pylint 和 Flake8 提供新的独立扩展。
- 开发容器模板 - 基于现有模板创建新的开发容器。
如果您想在线阅读这些发行说明,请访问 更新,网址为 code.visualstudio.com。
内部人员:希望尽快试用新功能?您可以下载每晚的 内部人员 版本,并在新功能可用后立即试用。
无障碍功能
新的音频提示
有新的 音频提示 来帮助使用任务和终端。
- 任务已完成 - 发出声音以指示任务已完成(由
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 中使用的列表样式已略微更新,具有圆角和增加的左右边距。
更新了列表视图的 codicons
平面列表和树形列表视图现在使用更清晰的 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,并将默认日志级别设置为 debug
,用于来自 Git 扩展的日志输出通道。
code --log vscode.git:debug
新的 list.collapseAllToFocus 树视图命令
一个新的命令list.collapseAllToFocus
允许您递归地折叠当前聚焦的树项。这在您想要折叠非根树项的所有子项时非常有用。该命令没有默认的键绑定,但您可以通过键盘快捷键编辑器添加自己的键盘快捷键(⌘K ⌘S(Windows、Linux Ctrl+K Ctrl+S))。
合并编辑器
在这个里程碑中,我们继续对合并编辑器进行打磨,此更新包含一些错误修复和一些新功能。
接受双方将追加冲突
在此版本中,接受传入和接受当前始终可以选择。当同时选择这两个选项时,合并编辑器将追加相应的更改行。
在下面的简短视频中,RelativePattern
被导入两次,因为两行都被接受了
当冲突可以在字符级别没有冲突的情况下解决时,会显示选项接受组合,并且可以使用它来自动解决冲突。
在下面的视频中,两个符号被导入到同一个导入语句中
针对基线的差异修饰
当打开基线视图时,会显示当前聚焦的侧边和基线之间的差异。此差异视图可用于更好地理解传入和当前中的更改。
差异算法改进
合并编辑器的默认差异算法已更改。新的差异算法针对合并场景进行了优化。在常见情况下,块的数量被最小化,插入位置被优化。如果新的算法导致问题,则可以使用设置"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 网页版
改进的分支创建和保护工作流程
当您在 Web 版 VS Code 中的 GitHub 或 Azure Repos 代码库中时,提交到受保护的分支现在会通知您当前分支受到保护,并提示您创建一个新分支。
此流程还将遵守以下设置
git.branchPrefix
允许您使用配置的前缀预填充分支名称快速输入。"git.branchProtectionPrompt": "alwaysCommitToNewBranch"
允许您在尝试提交到受保护的分支时跳过提示,并直接进入创建新分支的快速输入。
此外,当您创建新分支时,您可以通过配置"remoteHub.switchToCreatedBranch": "always"
来绕过有关是否切换到新创建分支的提示。
所有上述内容也适用于在桌面版 VS Code 上使用GitHub 代码库或Azure Repos扩展。
Web 版的本地化改进
几个月前,我们开始为 Web 版 VS Code 进行本地化。到目前为止,VS Code 核心和在扩展清单中静态声明字符串的扩展能够被本地化。在这个迭代中,我们完成了拼图的最后一块:扩展代码中的字符串。这是由于我们上个月提出的本地化 API的最终确定。
随着我们继续在所有扩展中采用这个新的 API,请留意 VS Code 被本地化的更多内容。如果您是扩展作者,您可以在vscode-l10n 代码库中了解有关新 API 的更多信息。
对扩展的贡献
Python
迁移到 isort 扩展
在 2022 年 5 月的版本中,我们宣布了一个新的isort扩展,它与 Python 扩展一起工作来对导入进行排序。例如,当您打开一个文件,并且导入不符合 isort 标准时,它将显示一个错误诊断并提供一个代码操作来修复导入顺序。在此版本中,我们正在迁移到使用独立的 isort 扩展,而不是 Python 扩展中内置的 isort 支持,方法是自动在 Python 扩展旁边安装它。
使用 Pylance 时默认关闭自动导入
自从自动导入首次在 Pylance 中实现以来,我们一直收到很多关于自动将导入添加到文件是多么令人困惑,有时甚至是令人讨厌的反馈,例如,当建议被意外接受时。从这个版本开始,使用 Pylance 时,默认情况下将不再自动导入包。如果您想为您的 Python 项目重新启用自动导入,您可以通过设置"python.analysis.autoImportCompletions": true
来实现。
Pylint 和 Flake8 扩展推荐
在我们之前的版本中,我们宣布了新的Pylint和Flake8扩展,它们通过语言服务器协议 (LSP) 与 Python 扩展协同工作以提供代码分析。在此版本中,如果仍然使用 Python 扩展中内置的 Pylint 和 Flake8 功能,我们将显示一个通知,提示您安装这些新的扩展。
远程开发
远程开发扩展允许您使用容器、远程机器或Windows 子系统 for Linux (WSL) 作为功能齐全的开发环境。此版本的主要亮点包括
- Dev Container 模板 - 快速基于现有模板创建 Dev Container。
- Dev Container 功能 - 通过包含预打包的功能(或创建您自己的!)向 Dev Container 添加功能。
- 在没有起始文件夹的情况下创建新的 Dev Container。
您可以在远程开发版本说明中了解有关新扩展功能和错误修复的信息。
GitHub 拉取请求和问题
我们继续在GitHub 拉取请求和问题扩展方面进行工作,该扩展允许您处理、创建和管理拉取请求和问题。查看扩展的 0.54.0 版本的变更日志,以了解其他亮点。
预览功能
TypeScript 4.9
此更新包括对即将发布的 TypeScript 4.9 版本的支持。请参阅TypeScript 4.9 迭代计划,以了解有关 TypeScript 团队当前正在进行工作的更多详细信息。一些编辑器工具亮点
要开始使用 TypeScript 4.9 nightly 版本,请安装TypeScript Nightly扩展。
设置配置文件
在过去的几个月里,我们一直在努力在 VS Code 中支持设置配置文件,这是社区最受欢迎的要求之一。此功能可以通过workbench.experimental.settingsProfiles.enabled
设置进行预览。试试看,并在vscode 代码库中创建问题或在问题 #116740中发表评论,给我们提供反馈。
显示同步的配置文件数据
您现在可以在同步活动(远程)视图中查看每个配置文件同步的数据。这有助于了解为每个配置文件同步了哪些数据。
注意:此功能目前仅在 VS Code 的内部人员版本中可用。
扩展创作
为工作区编辑提供元数据
用于应用工作区编辑的 API 现在允许扩展提供元数据,例如将编辑标记为重构。此额外的元数据将被编辑器和自动保存重构后(设置:files.refactoring.autoSave
)所尊重。
限制 MarkdownString 和 Webview 中可执行的命令
MarkdownString
中的 命令链接 是一种在 VS Code 的悬停消息或 IntelliSense 详细信息中创建自定义交互的有用方法。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。
调试适配器协议
新的 'startDebugging' 反向请求
如今,VS Code 支持多个并发调试会话,但 调试适配器协议 (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 环境中加载或定义全局变量。
预加载脚本必须是一个 JavaScript 模块,它导出 activate
函数。所有预加载都在任何 渲染器脚本 之前进行评估。
笔记本渲染器可以访问所有输出项
自定义笔记本渲染器 现在可以访问其正在渲染的输出项的所有 MIME 数据。如果渲染器确定无法正确渲染主要输出项,则此 API 提议允许它回退以渲染其他 MIME 类型之一。
此提议的入口点是一个新的 OutputItem._allOutputItems
属性。该属性是一个有序列表,包含当前输出项包含的所有 MIME 类型。列表中的每个项目都具有以下形状 { mime, getItem() }
。mime
是 MIME 类型,例如 text/html
或 image/png
,而 getItem()
函数返回对该 MIME 类型的 OutputItem
的承诺。
以下是渲染器如何使用此新 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 引发的任何错误都将记录到您的附加器中,以实现更好的错误诊断。
在 遥测示例 中有一个简单的示例,您可以在 问题 #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 设置默认情况下将在 Windows 11 上下文菜单 中为 Insider 添加一个使用 Code - Insider 打开上下文菜单条目。对于以前在安装 Insider 时选择加入上下文菜单的用户,在更新到最新的 Insider 时,将使用更新的条目替换旧式菜单 Shift + F10
中显示的条目。对于其他人,您需要重新安装 Insider 并选择加入以在设置向导中启用此菜单条目。由于我们在开发菜单条目期间遇到了问题,我们计划在将此功能推送到所有 Windows 11 用户的稳定版本之前,将其限制为 Insider 一两个里程碑,以获得信心。
然后,使用 Code Insider 打开操作将在 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 选择器的未 await 调用 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: 从被归类为 Python 的 Snakefile 中移除 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): 更新 'Feature Contributions' 中的列名 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 编辑器启用 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: 在复制头部链接时添加 github 企业版的上游来源 PR #4028
- @Thomas1664: 检查部分的 UI 修复 PR #4059
- @yin1999 (A1lo): fix: 为 ssh 协议上游使用 ssh url PR #3853
对 `vscode-dev-chrome-launcher` 的贡献
- @mirdaki: 添加设置稳定版或内部版构建的选项 PR #20
- @infinitepower18 添加描述并在扩展设置中修复空白图标 PR #18