2024 年 8 月(版本 1.93)
更新 1.93.1:此更新解决了这些 问题。
下载:Windows: x64 Arm64 | Mac: 通用 Intel Apple 芯片 | Linux: deb rpm tarball Arm snap
欢迎使用 Visual Studio Code 2024 年 8 月版。此版本有许多更新,我们希望你会喜欢,其中一些主要亮点包括
- 配置文件编辑器 - 在一个位置切换和管理你的配置文件。
- Django 单元测试支持 - 从测试资源管理器中发现并运行 Django 单元测试。
- vscode.dev 上的 IntelliSense - 使用 IntelliSense 提升你在 vscode.dev 中的 JS 和 TS 编码。
- 笔记本差异查看器 - 通过折叠未更改的单元格来高效地查看笔记本中的更改。
- 通过键盘调整列大小 - 通过键盘使 VS Code 中调整表格列大小更加便捷。
- 源代码管理图表 - 轻松隐藏、折叠或移动源代码管理图表。
- GitHub Copilot - 在快速聊天中添加上下文,改进了测试生成和聊天历史记录。
- 实验:自定义 Copilot 指令 - 为 Copilot 定义特定的代码生成指令。
如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新。Insiders:想尽快尝试新功能吗?您可以下载每晚Insiders版本并尽快尝试最新更新。
辅助功能
通过键盘调整表格列大小
新命令 list.resizeColumn 使你能够使用键盘调整列大小。触发此命令时,选择要调整大小的列并提供要设置的宽度百分比。以下视频演示了如何将其应用于调整键盘快捷方式编辑器中的列大小。
屏幕阅读器对合成聊天响应的支持
我们更新了 accessibility.voice.autoSynthesize 设置,以使屏幕阅读器用户可以选择收听由我们的合成器播报的聊天响应,而不是获取 aria 警报。
调试改进
当你在编辑器中调试时,调用 Debug: Add to Watch 命令现在会为屏幕阅读器用户播报变量的值。
此外,调试辅助功能帮助对话框也得到了改进,以提高彻底性。
工作台
新的配置文件编辑器
新的配置文件编辑器现在在 Visual Studio Code 中普遍可用。新的配置文件编辑器使你能够在一个位置管理配置文件。此体验包括创建新配置文件、编辑和删除现有配置文件以及导入和导出配置文件以与他人共享。有关更多信息,请参阅配置文件文档。

Linux 对窗口控制叠加层的支持
新设置 window.experimentalControlOverlay 使本机窗口控件能够显示,即使通过 window.titleBarStyle 设置启用了自定义标题栏。

开箱即用,我们尚未在 Linux 上默认启用自定义标题,但我们计划最终这样做。启用自定义标题后,本机窗口控制叠加层将自动出现。我们欢迎你在使用此新功能时发现的任何反馈!
评论排序
评论现在可以按其在文件中的位置或按日期排序。

从设置编辑器复制设置 URL
你可以从设置编辑器复制指向特定设置的直接 URL。当你导航到设置 URL 时,它会打开 VS Code 并将焦点放在设置编辑器中相应的设置上。

资源管理器中的反向排序
我们添加了一个额外的排序选项 explorer.sortOrderReverse,它使你能够反转各种资源管理器排序配置中的任何一个,从而提供进一步的排序灵活性。
编辑器
灯泡改进
在上一个里程碑中,我们改进了显示“代码操作”灯泡图标的位置。我们现在决定默认将 editor.lightbulb.enabled 设置为 onCode。这意味着灯泡图标仅在光标位于包含源代码的行上时显示,并且显示频率会降低。
操作列表的颜色主题
操作列表控件(例如代码操作菜单)的颜色可以通过主题使用 editorActionList.background、editorActionList.foreground、editorActionList.focusForeground 和 editorActionList.focusBackground 键进行配置。默认情况下,操作列表控件主题与快速选择和命令面板的主题匹配。获取有关自定义颜色主题的更多信息。
GitHub Copilot
在此里程碑中,我们继续改进 VS Code 中的 GitHub Copilot 体验,包括编辑器、聊天视图和行内聊天。我们还添加了几个实验性功能供你试用,并希望获得你的反馈。
改进的测试生成
使用 GitHub Copilot,你可以为代码生成测试,方法是使用编辑器内容菜单中的 Generate Tests using Copilot 操作,或使用行内聊天中的 /tests 斜杠命令。
我们改进了测试生成流程,方法是查找现有测试文件并将新生成的测试附加到该文件末尾。如果尚无测试文件,Copilot 会为生成的测试创建一个新测试文件。
重命名用于生成测试和文档的代码操作
当你将光标放在标识符(例如方法名称)上时,GitHub Copilot 会为你提供用于生成测试或文档的代码操作。为了更好地反映其用途,我们将这些代码操作重命名为 Generate Tests using Copilot 和 Generate Documentation using Copilot。以前,这些操作分别称为 Test using Copilot 和 Document using Copilot。

改进的聊天历史记录
你可以使用聊天视图顶部的 Show Chats 按钮从聊天历史记录中打开以前的聊天会话。这些会话现在具有更用户友好、由 AI 生成的名称。你还可以通过选择每行上的铅笔图标手动重命名会话。
这些聊天历史记录条目现在也按其上次请求的日期排序,并按日期分段进行标记和分组。

注意:只有新的聊天会话才会获得 AI 生成的名称,你已有的任何聊天会话都不会被重命名。
为空窗口保存聊天会话
以前,VS Code 不会为空窗口(未打开文件夹或工作区)保存聊天会话。现在,这些会话会按预期保存,并且可以通过 Show Chats 按钮加载来自空窗口的以前聊天记录。
注意:你应该避免同时在多个空窗口中打开和使用同一个聊天会话。
在快速聊天中附加上下文
使用快速聊天时,你现在可以使用 Attach Context 操作将文件和符号等上下文附加到 Copilot 请求中。
踩踏反馈详情
你是否收到了来自 Copilot Chat 的响应,但不是你所期望的?通过选择聊天响应工具栏上的 Thumbs down 按钮来帮助我们。现在,它会显示一个下拉菜单,其中包含一些详细选项供你描述问题。你也可以从此菜单中打开问题报告器。
![]()
代码生成指令(实验性)
设置:github.copilot.chat.experimental.codeGeneration.instructions
Copilot 可以帮助你生成代码,例如作为重构的一部分、生成单元测试或实现功能。你可能希望使用特定的库,或遵循特定的编码风格来生成 Copilot 代码。
实验性设置 github.copilot.chat.experimental.codeGeneration.instructions 允许你定义一组指令,这些指令会添加到生成代码的每个 Copilot 请求中。
这些指令可以在用户或工作区设置中定义,也可以从文件中导入。
以下代码片段演示了如何从设置和外部文件定义一组指令
"github.copilot.chat.experimental.codeGeneration.instructions": [
{
"text": "Always add a comment: 'Generated by Copilot'."
},
{
"text": "In TypeScript always use underscore for private field names."
},
{
"file": "code-style.md" // import instructions from file `code-style.md`
}
],
myProject/code-style.md 的内容
Always use React functional components.
Always add comments.
在屏幕截图中,你可以从引用部分看到使用了这些指令

聊天视图中的自动聊天参与者检测(实验性)
设置:chat.experimental.detectParticipant.enabled
GitHub Copilot 有几个内置的聊天参与者,例如 @workspace,它们也向聊天视图贡献命令。以前,你必须在聊天提示中明确指定聊天参与者和命令。
为了更容易地使用自然语言聊天参与者,在接下来的几周里,我们正在试验启用 Copilot Chat 自动将你的问题路由到合适的参与者或聊天命令。

如果自动选择的参与者不适合你的问题,你可以选择聊天响应顶部的 rerun without 链接将你的问题重新发送给 Copilot。
使用最近的编码文件作为行内聊天上下文(实验性)
设置:github.copilot.chat.experimental.temporalContext.enabled
通常,当你提示 Copilot 时,你正在询问与你刚刚处理或查看的代码相关的问题。行内聊天现在可以使用最近查看或编辑的代码作为上下文来提供更相关的建议。
此功能仍处于实验阶段,但也适合所有人进行测试。
使用当前编辑器行作为行内聊天提示(实验性)
设置:github.copilot.config.experimental.inlineChatCompletionTrigger.enabled
现在,你可以先在编辑器中开始输入,然后直接使用当前行的内容作为行内聊天的提示,而不必先打开行内聊天然后输入聊天提示。为了获得更流畅的聊天体验,Copilot 可以检测你何时正在提示而不是编写代码,然后自动为你启动行内聊天。
使用当前行作为行内聊天提示的不同方式如下:
- 从命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 输入 Inline Chat: Start in Editor with Current Line
- 为 inlineChat.startWithCurrentLine 命令配置一个键绑定,将其与
inlineChatExpansion上下文键结合使用 - 启用
github.copilot.config.experimental.inlineChatCompletionTrigger.enabled设置,以便 Copilot 检测到当前行主要包含文本而不是源代码,然后启动行内聊天。
以下视频演示了 Copilot 在检测到当前行主要包含文本后如何建议启动行内聊天。
从聊天开始调试(实验性)
设置:github.copilot.advanced.startDebugging.experimental.enabled
@vscode 聊天参与者上有一个新的实验性斜杠命令 /startDebugging。此命令使你能够创建启动配置并开始调试应用程序。
你还可以通过“创建 launch.json”快速选择中的 Generate Debug Configuration with GitHub Copilot 选项访问此命令。

根据测试覆盖率生成测试(实验性)
设置:github.copilot.chat.experimental.generateTests.codeLens
如果测试覆盖率信息可用,GitHub Copilot 可以为尚未被测试覆盖的函数和方法提供一个 CodeLens Generate tests using Copilot。
语言
将“SQL”重命名为“MS SQL”
SQL 文件的语言名称已从“SQL”重命名为“MS SQL”,以更好地反映该语言对 Microsoft SQL Server (T-SQL) 语法的侧重。此语言模式的文件扩展名仍然是 .sql,语法突出显示保持不变。
vscode.dev 上的完整项目 IntelliSense 和包类型定义
在 VS Code for the Web 上使用 JavaScript 和 TypeScript 变得更好了。首先,我们实现了包 IntelliSense,因此你可以看到来自任何导入包(例如 react)的建议和文档。这与 VS Code 桌面版中的工作方式非常相似。

在 TypeScript 文件中,我们为 package.json 中列出的包提供 IntelliSense。JavaScript 文件稍微灵活一些,使用自动类型获取,它为导入到当前文件中的任何包提供 IntelliSense,即使它未列在 package.json 中。
由于包 IntelliSense,我们还为 JavaScript 和 TypeScript 项目启用了完整的项目 IntelliSense。这大大改进了代码导航,让你能够正确地 Go to Definition 和 Find All References 到项目中的任何符号。它还支持类型错误报告。我们现在甚至在编写代码时支持自动导入。

包类型定义和完整项目 IntelliSense 在 Chrome、Microsoft Edge 和 Firefox 中受支持。Safari 尚不受支持,因为它未实现 ReadableByteStreamController。
源代码管理
源代码管理图表视图
根据用户反馈,我们将上一个里程碑中启用的历史记录图表从源代码管理视图移到了一个名为源代码管理图表的新视图中。这减少了主视图的信息过载,并使你可以根据需要隐藏/折叠/移动新视图。这也为功能齐全的历史记录图表奠定了基础。
源代码管理图表视图目前显示当前分支的远程/基础。在下一个里程碑中,我们正在努力添加将图表过滤到任何存储库引用的功能,并改进具有多个存储库的工作区的体验。

主题:GitHub Sharp (在 vscode.dev 上预览)
支持 reftable 格式
Git 2.45 添加了对名为 "reftable" 的新引用存储后端的初步支持。在此里程碑中,我们更新了内置的 Git 扩展以支持此新引用存储后端。
使用 Git 2.45,你可以使用 --ref-format=reftable 标志创建或克隆使用新引用存储后端的存储库。Git 2.46 还添加了对使用 git refs migrate 命令将现有存储库迁移到使用新引用存储格式的支持。
请注意,新的引用存储后端仍被认为是实验性的。
紧凑文件夹设置
感谢社区贡献,我们添加了一个新设置 scm.compactFolders,用于控制在将更改视为树形时,文件夹是否以紧凑形式呈现在源代码管理视图中。
终端
Julia 和 NuShell 支持
现在对 Julia 和 NuShell 有了 shell 集成支持。这为这些 shell 类型启用了诸如命令装饰和运行最近命令等功能。
移动多个终端选项卡
你现在可以多选终端选项卡并将它们作为有序组在终端列表中移动。
命令指南设置和颜色主题
命令指南是悬停在命令及其输出旁边时显示的条形。你现在可以使用 terminal.integrated.shellIntegration.showCommandGuide 设置禁用命令指南,并且颜色可以通过主题使用 terminalCommandGuide.foreground 主题键进行配置。
Notebook
在差异视图中显示或隐藏未更改的单元格
笔记本差异视图现在隐藏未更改的单元格,使你能够专注于已更改的单元格。同时,所有未更改单元格的输入始终折叠。
在差异视图中管理空格
笔记本差异视图现在遵循以下设置
diffEditor.ignoreTrimWhitespace- 显示差异时忽略开头和结尾(修剪)的空格。
笔记本执行计数粘滞滚动
向下滚动代码单元格时,代码单元格的执行计数现在会粘滞在屏幕底部。这使得在长代码单元格中工作时更容易看到执行状态并进行更新。
任务
进程退出时保持任务终端打开
如果任务的终端进程以非零代码退出,我们现在保持终端打开,以便于调试。
调试
跳转到变量定义
调试扩展现在可以将变量和表达式链接到代码中的位置。在“变量”视图、“监视”视图和“调试控制台”中,具有此链接的数据可以通过按住 Ctrl(在 macOS 上按住 Cmd)来选择。
内置的 JavaScript 调试器将链接代码中定义的函数位置,其他调试扩展需要采用相应的协议更改才能启用此功能。
查找控件
你现在可以在调试控制台 (⌥⌘F (Windows, Linux Ctrl+Alt+F)) 中打开“查找”控件以搜索输入中的结果。对搜索输出中结果的支持将在未来的里程碑中进行研究。
你还可以通过“调试控制台”工具栏中“筛选”控件右侧显示的 Debug Console: Focus Find 操作访问该控件。
启动配置输入缓存
启动配置和任务中使用的输入变量现在会保留上次输入的值,以简化重新运行依赖于它们的调试会话的过程。仅当输入上没有明确定义 default 时才会这样做。
JavaScript 调试器
实验性网络视图
当 debug.javascript.enableNetworkView 设置打开时,JavaScript 调试器现在包含一个基本的、实验性的“网络”视图。该视图显示有关浏览器会话发出的请求和响应的信息。
主题:Codesong (在 vscode.dev 上预览)
当进程使用参数中的 --experimental-network-inspection 启动时,例如通过将 "runtimeArgs": ["--experimental-network-inspection"] 添加到 node 启动配置中,网络视图也适用于 Node.js 22.6.0 及更高版本。
注意:Node 的网络实现仍处于非常早期的阶段,大多数关于请求和响应的数据尚不可用。
测试
支持消息上的堆栈跟踪
测试扩展现在可以将堆栈跟踪与测试失败相关联。当它们这样做时,你将在“测试结果”视图和错误预览中看到调用堆栈中每个帧周围的代码。你可以在视图中按住 Ctrl(在 macOS 上按住 Cmd)选择代码以转到其原始位置,或使用其标头上的 Go to File 操作。
主题:Codesong (在 vscode.dev 上预览)
安装程序
Debian 软件包现在会提示你确认是否要添加 packages.microsoft.com 存储库。这使你以后可以使用 apt 更新软件包。

远程开发
远程开发扩展允许您通过 SSH 或远程隧道使用开发容器、远程机器或适用于 Linux 的 Windows 子系统 (WSL) 作为功能齐全的开发环境。
亮点包括:
- Dev Container 模板的可选路径
- 使用 SSH 扩展了对远程操作系统的兼容性
你可以在远程开发发行说明中了解有关这些功能的更多信息。
Web 版 VS Code
在 https://vscode.dev 上或在桌面上使用 GitHub Repositories extension 浏览 GitHub 存储库时,现在会遵守 git.openDiffOnClick 设置。

对扩展的贡献
Python
Django 单元测试支持
我们很高兴地宣布支持我们最请求的功能之一:你现在可以通过测试资源管理器发现并运行 Django 单元测试!有关如何启用此功能的设置说明,请查看我们的文档。
主题:Catppuccin Macchiato (在 vscode.dev 上预览)
当你探索这个新添加的功能时,请在我们的 vscode-python repo 中提供反馈并报告任何问题,或者使用 Python: Report Issue 命令。
原生 REPL 改进
我们对新的原生 REPL 体验进行了更多改进和错误修复。我们正在试验将原生 REPL 作为智能发送的默认目标,但如果你有兴趣尝试此功能,可以在用户 settings.json 中设置 python.REPL.sendToNativeREPL 并重新加载 VS Code 窗口。
使用 Pylance 从内联提示跳转到定义
当使用 Pylance启用内联提示时,你现在可以通过将鼠标悬停在类型上并按住 Ctrl(在 macOS 上按住 Cmd)点击来更方便地导航到类型的定义

调试测试时支持重新启动
你现在可以通过“调试”工具栏控件在调试测试时重新启动调试器。
GitHub 拉取请求和议题
GitHub Pull Requests 扩展取得了更多进展,该扩展使你能够处理、创建和管理拉取请求和问题。查看该扩展 0.96.0 版本的更新日志以了解亮点。
扩展创作
EcmaScript 模块 (ESM) 加载对 VS Code 的影响
我们正在将 VS Code 核心中代码的加载方式从 AMD/CommonJS 更改为 ESM。扩展将继续作为 CommonJS 加载,但此更改伴随着对 require 方法的更改:具体来说,从我们的 1.94 版本开始,require.main 将为 undefined。如果你有从安装中访问文件的用例,请考虑使用 vscode.env.appRoot,或联系我们。
终端 shell 集成 API
终端 shell 集成 API 现已可供使用。这个强大的 API 使扩展能够侦听在终端中运行的命令、读取其原始输出、退出代码和命令行。
window.onDidEndTerminalShellExecution(event => {
if (event.execution.commandLine.value.startsWith('git')) {
if (event.exitCode === 0) {
// React to a successful git command
} else {
// React to a failing git command
}
}
});
它还提供了一种更可靠地执行命令的方式,它会在发送命令之前等待提示符启动,从而防止命令在终端中额外回显一次。
const commandLine = 'echo "Hello world"';
if (term.shellIntegration) {
const execution = shellIntegration.executeCommand({ commandLine });
window.onDidEndTerminalShellExecution(event => {
if (event.execution === execution) {
console.log(`Command exited with code ${event.exitCode}`);
}
});
} else {
term.sendText(commandLine);
// Without shell integration, we can't know when the command has finished or what the
// exit code was.
}
有关更多信息,请参阅 vscode.d.ts 中的 API 和扩展示例。
Terminal.shellIntegrationwindow.onDidChangeTerminalShellIntegrationwindow.onDidStartTerminalShellExecutionwindow.onDidEndTerminalShellExecution
身份验证帐户 API
身份验证 API 在处理多个帐户时具有更多控制权。一直缺少的功能是获取所有帐户并获取特定帐户的 AuthenticationSession 的能力。通过 getAccounts API 的定稿,现在可以实现这一点。
希望使用身份验证会话的扩展作者可以运行以下代码来获取用户已登录帐户的 AuthenticationSessionAccountInformation
const accounts = vscode.authentication.getAccounts('microsoft');
从那里,你可以使用这些帐户专门为这些帐户铸造会话
const session = vscode.authentication.getSession('microsoft', scopes, {
account: accounts[0]
});
注意:为此,身份验证提供程序需要处理传递给
getSessions和createSession的参数。内置的 GitHub 和 Microsoft 提供程序已经采用了这一点。
我们相信这是处理多个身份验证会话以及处理我们以前无法支持的各种场景的最清晰方式。
调试适配器协议
我们在 Debug Adapter Protocol 中的 Variables 和其他数据类型中添加了 locationReferences,以启用关联源位置。
VS Code 中的 WebAssemblies
wasm-wasi-core 扩展的 1.0 版本以及 @vscode-wasm-wasi 和 @vscode/wasm-component-model npm 模块已发布。用法示例可以在 vscode-extension-samples 存储库的 wasm-* 子文件夹中找到。在 VS Code 博客上也有几篇关于如何在 VS Code 扩展中使用 WebAssembly 代码的文章。
预览功能
终端 IntelliSense 改进
此版本中对实验性 PowerShell IntelliSense 进行了以下改进
git checkout现在包含一个用于切换到上一个分支的-补全。terminal.integrated.suggest.runOnEnter的默认值现在设置为 ignore,这意味着 Enter 不会与 IntelliSense 交互。这是来自用户的反馈,他们认为对肌肉记忆的影响太大。- PowerShell 关键字现在可用作命令(而不是参数)的补全。
cd第一个目录建议现在始终是它本身,这使得当terminal.integrated.suggest.runOnEnter设置为 on 时事情更流畅。
- 现在,在命令行的不同位置请求建议时,建议更加一致。
- 当向后导航目录时,会为
<path>/../提供补全。
Conpty 在产品中发货
Conpty 是终端的后端,用于模拟伪终端在其他操作系统上的工作方式。此组件在 Windows 本身中发货,这意味着错误修复通过 Windows Update 发布。用户可能需要很长时间才能收到这些修复。
此版本中,我们有一个实验性设置,它将 conpty 与 VS Code 本身捆绑在一起,类似于 Windows Terminal 的做法。这意味着用户可以在我们发布 VS Code 更新时获得错误修复,而不必等待 Windows 更新。
要启用此功能,请将以下设置设置为 true
"terminal.integrated.experimental.windowsUseConptyDll": true
启用此功能后,你应该期待的改进类型是
- 更好的性能
- 更可靠的 shell 集成
- 更多转义序列支持(例如很快就会在 Windows 上支持 sixel)
目前唯一已知的问题是,一些用户有一个进程一直存在并阻止 VS Code 更新(microsoft/vscode#225719),这需要手动杀死进程才能启用更新。
TypeScript 5.6 支持
我们继续改进对即将发布的 TypeScript 5.6 版本的支持。查看TypeScript 5.6 RC 博客文章以了解此版本包含的内容的详细信息。
要开始使用 TypeScript 5.6 的预览版,请安装 TypeScript Nightly extension。
新的问题报告器实现
在此里程碑中,我们正在试验新的问题报告器实现。功能保持不变,但应该有一些改进,例如改进的多显示器支持,以及在 VS Code for the Web 中提供问题报告器。
新版本的问题报告器默认启用,可以使用 VS Code 桌面版中的 issueReporter.experimental.auxWindow 设置进行配置。
提议的 API
语言模型工具
我们继续迭代我们的 LanguageModelTool API。该 API 包含两个主要部分
-
扩展注册工具的能力。工具是旨在供语言模型使用的一项功能。例如,读取文件的 Git 历史记录。
-
语言模型支持工具的机制,例如扩展在发出请求时传递工具、语言模型请求工具调用以及扩展传回工具调用结果。
本月更改之一是用户能够手动将某些工具附加到其聊天请求。一个示例是用于计算用户希望在其请求中使用的某些动态上下文的工具。
该提案可以在 vscode.proposed.lmTools.d.ts 中找到。查看演示如何注册和调用工具的 tool-user 示例扩展。
关注 issue #213274 以获取更新或向我们提供反馈。
注意:API 仍在积极开发中,并且会发生变化。
测试增强功能
将代码与测试关联
我们正在开发一个 API,使扩展能够将代码与测试相关联,反之亦然。这使用户能够在两者之间跳转,并启用诸如 Run Tests at Cursor 等操作,使其在实现代码中也能正常工作。随着 API 的发展,我们预计会构建更多体验。
查看 vscode#126932 以获取更多信息和更新。
可归因测试覆盖率
我们正在开发一个 API,用于按每个测试归因测试覆盖率。这使用户能够查看哪些测试运行了哪些代码,从而过滤编辑器中显示的覆盖率和测试覆盖率视图中的覆盖率。
查看 vscode#212196 以获取更多信息和更新。
聊天参与者检测 API
如果你正在编写一个向聊天视图贡献参与者或聊天命令的扩展,你可以通过在 package.json 中的 chatParticipants 贡献中添加元数据来启用你的参与者和命令自动检测。我们已使用示例更新了 vscode-extension-samples 存储库,说明了如何采用此 API。测试时,请务必设置 chat.experimental.detectParticipant.enabled。请注意,这是一个提议的 API,可能会发生变化。
网站
我们修复了 VS Code API 页面下的几个链接。指向泛型类型和函数的链接再次起作用,并且原始类型和值不再格式化为链接!
工程
VS Code 使用 ESM 的进展
在此里程碑期间,我们完成了将 ESM 应用于 VS Code Core 的大部分工作。我们的目标是使用 ECMAScript 模块 (ESM) 加载并完全放弃 AMD。我们将在 9 月开始发布支持 ESM 的 Insider 版本,并计划在 10 月的下一个版本中将 ESM 发布到稳定版。
我们的 ESM 发布计划记录在 https://github.com/microsoft/vscode/issues/226260 中。
值得注意的修复
感谢
最后但同样重要的是,向 VS Code 的贡献者们致以衷心的感谢。
问题跟踪
对我们问题跟踪的贡献
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
- @albertosantini (Alberto Santini)
拉取请求
对 vscode 的贡献
- @akinomyoga (Koichi Murase):修复 Bash 集成破坏 PROMPT_COMMAND 的
$?PR #226929 - @andrewbranch (Andrew Branch):[typescript-language-features] 添加 autoImportSpecifierExcludeRegexes 偏好设置 PR #226202
- @anton-matosov (Anton Matosov):#171066 的后续修复了 zsh 和 fish shell 实现 PR #223421
- @arvid220u (Arvid Lunnemark):永远不要运行已清除的辅助窗口超时 PR #221296
- @BABA983 (BABA)
- 删除重复代码 PR #224091
- 拖动多个选项卡后尊重原始终端选项卡顺序 PR #224591
- 添加 registerWindowTitleVariable 命令 PR #225408
- @bsShoham (Shoham Ben Shitrit):在单词开头触发聊天变量补全 PR #224174
- @Cecil0o0 (hj):重构:合并相同的命名空间声明 PR #219638
- @CGNonofr (Loïc Mangeonjean):在所有地方正确检测 node env PR #221357
- @cobey (Cody Beyer):为 python 和 js 添加 ai-inference 标签 PR #225098
- @dangerman (Anees Ahee)
- 修复命令面板中缺少“Restart TS Server”命令的问题 PR #223433
- 圆角通知焦点轮廓 PR #225824
- @Flanker32 (Hanxiao Liu):更新 java ai 库的工作区标签 PR #223677
- @gabritto (Gabriela Araujo Britto)
- [typescript-language-features] 在可用时使用来自 tsserver 的提交字符 PR #223541
- [typescript-language-features] 修复诊断遥测属性名称 PR #225079
- @gjsjohnmurray (John Murray)
- 在恢复后也重置 mtime 时显示只读文件名装饰(修复 #221014) PR #221023
- 修复补全项状态栏文本的大小写错误 (#_225429) PR #225431
- 改进
workbench.editor.enablePreview设置的描述(修复 #225453) PR #225704
- @hron (Aleksei Gusev):修复:
merge.toggleActiveConflict作为快捷方式 PR #225320 - @iisaduan (Isabel Duan):在设置界面中为 typescript 的 organizeImports 添加设置 PR #209293
- @jeanp413 (Jean Pierre)
- 修复如果我将搜索视图移动到另一个位置,搜索结果不会在编辑器更改时自动更新的问题 PR #215764
- 更改终端重命名 codicon PR #225444
- 修复资源管理器将包含“cut”一词的任何文件夹/项目灰显的问题 PR #225455
- @Jesscha (JessCha):修复 extHostExtensionService.ts 中的拼写错误 PR #224111
- @m-byte (Matthias B.):修复:仅为需要 apt 源的用户添加 apt 源 (#_22145) PR #221285
- @mkasenberg:修复搜索编辑器的 focusResult PR #205914
- @mogelbrod (Victor Hallberg):为评论面板添加“按更新时间排序”选项 PR #221665
- @NriotHrreion (Norcleeh):修复:当活动终端被杀死时,命令面板关闭 PR #225500
- @r3m0t (Tomer Chachamu):修复打开用户设置时“Open Workspace Settings”的问题(修复 #148709) PR #225311
- @rbuckton (Ron Buckton):更新以支持 strictBuiltinIteratorReturn PR #222009
- @rehmsen (Ole):使 markdown 注释中的常规文本在笔记本编辑器中换行。 PR #224484
- @RichardLuo0 (RichardLuo):修复:删除对话框按钮上的工具提示 PR #225772
- @stalematker (Kevin):修复 extensionEnablementService.ts 中的拼写错误 PR #224145
- @swordensen (Michael Sorensen):修复 #218626 PR #219148
- @thegecko (Rob Moran):添加 viewContainer 贡献点 PR #212499
- @tisilent (xiejialong):添加 scm.compactFolders。 PR #221459
- @troy351:修复:multiDiffEditor 的背景颜色名称错误 PR #224151
- @walter-erquinigo (Walter Erquinigo):处理来自动态调试配置提供程序的错误 PR #202622
- @zkat (Kat Marchán):阻止 AutoInstallerFs 永远 thrashing 并修复 typings installer PR #225648
对 vscode-css-languageservice 的贡献
- @wkillerud (William Killerud):修复:支持 sass 包中的条件导出 PR #400
对 vscode-eslint 的贡献
- @denis-sokolov (Denis Sokolov):Readme 中的琐碎修复 PR #1903
对 vscode-flake8 的贡献
- @taesungh (Taesung Hwang):对
ignorePatterns默认值使用全局设置 PR #327
对 vscode-generator-code 的贡献
- @spjpgrd (seán patrick john paul george ringo doran):更新 vsc-extension-quickstart.md PR #486
对 vscode-hexeditor 的贡献
- @tomilho (Tomás Silva):HexEditor 差异 PR #522
对 vscode-isort 的贡献
- @iloveitaly (Michael Bianco):修复:添加工具路径,使 isort 在没有捆绑版本的情况下也能工作 PR #417
- @jicruz96 (J.I. Cruz):如果文件有
skip_file注释,则不记录堆栈跟踪 PR #416
对 vscode-js-profile-visualizer 的贡献
对 vscode-json-languageservice 的贡献
- @jeremyfiel (Jeremy Fiel):更新 DocumentSymbols.test.ts 中的无效 json 实例 PR #241
- @remcohaszing (Remco Haszing):弃用 Thenable 并别名为 PromiseLike PR #239
- @ttlopes (Tomás Lopes):修复 microsoft/vscode#209655:修复区分大小写的 JSON 排序错误 PR #238
对 vscode-languageserver-node 的贡献
- @DavyLandman (Davy Landman):显示来自 LSP 服务器的错误消息 PR #1490
- @sh-cho (Seonghyeon Cho):修复 npm、azure pipeline 链接 PR #1544
对 vscode-loader 的贡献
- @SimonSiefke (Simon Siefke):功能:在未定义
this的情况下将amdLoaderGlobal设置为globalThisPR #58
对 vscode-mypy 的贡献
- @hamirmahal (Hamir Mahal)
- @meghprkh (Megh Parikh):更新 mypy 到 1.11.0 PR #311
对 vscode-pull-request-github 的贡献
对 vscode-python-debugger 的贡献
对 vscode-vsce 的贡献
- @BlackHole1 (Kevin Cui):修复:概率触发 v8 崩溃 PR #1032
- @mark-wiemer (Mark Wiemer):修复 punycode 弃用警告 PR #1037
对 language-server-protocol 的贡献
- @asukaminato0721 (Asuka Minato):添加 egglog PR #1989
- @LPeter1997:在 .NET 中添加 Draco.Lsp 作为 LSP SDK PR #2001
- @marcoroth (Marco Roth)
- @techee (Jiří Techet):将 Geany 添加到支持 LSP 的编辑器列表 PR #2008
- @XuechunHHH (Xuechun Hua):将 PartiQL 添加到 servers.md PR #1985
对 python-environment-tools 的贡献