2024 年 8 月(版本 1.93)
更新 1.93.1:本次更新解决了这些问题。
下载:Windows:x64 Arm64 | Mac:Universal Intel silicon | Linux:deb rpm tarball Arm snap
欢迎使用 Visual Studio Code 2024 年 8 月版。此版本中有许多更新,我们希望您会喜欢,其中一些主要亮点包括
- 配置文件编辑器 - 从一个地方切换和管理您的配置文件。
- Django 单元测试支持 - 从测试资源管理器中发现并运行 Django 单元测试。
- vscode.dev 上的 IntelliSense - 利用 IntelliSense 增强您在 vscode.dev 中的 JS 和 TS 编码体验。
- Notebook Diff 查看器 - 通过折叠未更改的单元格来高效地审查 Notebook 中的更改。
- 通过键盘调整列大小 - 通过键盘更便捷地调整 VS Code 中的表格列大小。
- 源代码管理图 - 轻松隐藏、折叠或移动源代码管理图。
- GitHub Copilot - 在快速聊天中添加上下文,改进了测试生成和聊天历史记录。
- 实验:自定义 Copilot 指令 - 为 Copilot 定义特定的代码生成指令。
如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新页面。Insiders 用户: 想尽快试用新功能?您可以下载每日构建的 Insiders 版本,并在最新更新发布后立即尝试。
可访问性
通过键盘调整表格列大小
新命令 list.resizeColumn
使您能够使用键盘调整列大小。触发此命令后,选择要调整大小的列并提供所需的宽度百分比。以下视频展示了如何在键盘快捷方式编辑器中应用此功能来调整列大小。
屏幕阅读器对合成聊天响应的支持
我们更新了 accessibility.voice.autoSynthesize
设置,以允许屏幕阅读器用户选择听取由我们的合成器播报的聊天响应,而不是获取 aria 警报。
调试改进
当您在编辑器中调试时,调用调试:添加到监视命令现在会向屏幕阅读器用户播报变量的值。
此外,还改进了调试辅助功能帮助对话框,使其更全面。
工作台
新的配置文件编辑器
新的配置文件编辑器现在已在 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,您可以为代码生成测试,既可以通过编辑器上下文菜单中的使用 Copilot 生成测试操作,也可以通过内联聊天中使用 /tests
斜杠命令。
我们改进了测试生成流程,通过查找现有测试文件并将新测试生成到该文件中,并将其附加在末尾。如果尚不存在测试文件,Copilot 会为生成的测试创建一个新的测试文件。
重命名了用于生成测试和文档的代码操作
当您将光标放在标识符(例如方法名称)上时,GitHub Copilot 会为您提供生成测试或文档的代码操作。为了更好地反映其用途,我们将这些代码操作重命名为使用 Copilot 生成测试和使用 Copilot 生成文档。此前,它们被称为使用 Copilot 进行测试和使用 Copilot 生成文档。
改进的聊天历史记录
您可以通过聊天视图顶部的显示聊天按钮从聊天历史记录中打开先前的聊天会话。这些会话现在拥有更用户友好、由 AI 生成的名称。您也可以通过选择每行上的铅笔图标手动重命名会话。
这些聊天历史记录条目现在也按其最后一次请求的日期排序,并按日期分组和标记。
注意:只有新的聊天会话会获得 AI 生成的名称,您已有的任何聊天会话都不会被重命名。
保存空窗口的聊天会话
以前,VS Code 不会保存空窗口(未打开文件夹或工作区)的聊天会话。现在,这些会话会按预期保存,并且可以通过显示聊天按钮加载来自空窗口的先前聊天。
注意:您应避免在多个空窗口中同时打开和使用同一聊天会话。
在快速聊天中附加上下文
使用快速聊天时,您现在可以使用 Attach Context
操作将文件和符号等上下文附加到您的 Copilot 请求中。
“踩”反馈详情
您从 Copilot Chat 获得的回复是否与您的预期不符?通过选择聊天回复工具栏上的踩按钮来帮助我们改进。现在,它会显示一个下拉菜单,其中包含一些详细选项供您描述问题。您也可以从此菜单打开问题报告器。
代码生成指令(实验性)
设置: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 自动将您的问题路由到合适的参与者或聊天命令。
如果自动选择的参与者不适合您的问题,您可以选择聊天回复顶部的不包含此参与者重新运行链接,将您的问题重新发送给 Copilot。
使用最近的编码文件作为内联聊天上下文(实验性)
设置:github.copilot.chat.experimental.temporalContext.enabled
通常,当您向 Copilot 提问时,您会询问与您刚刚处理或查看的代码相关的问题。内联聊天现在可以使用最近查看或编辑的代码作为上下文来提供更相关的建议。
此功能仍处于实验阶段,但也适合所有人进行测试。
使用当前编辑器行作为内联聊天提示(实验性)
设置:github.copilot.config.experimental.inlineChatCompletionTrigger.enabled
您现在可以直接在编辑器中开始输入,并将当前行的内容直接用作内联聊天的提示,而无需先打开内联聊天再输入提示。为了获得更流畅的聊天体验,Copilot 可以检测您何时是在输入提示而不是编写代码,然后自动为您启动内联聊天。
使用当前行作为内联聊天提示的不同方式如下
- 从命令面板中输入内联聊天:从当前行开始(编辑器内) (⇧⌘P (Windows、Linux Ctrl+Shift+P))
- 为 inlineChat.startWithCurrentLine 命令配置一个快捷键绑定,并将其与
inlineChatExpansion
上下文键结合使用 - 启用
github.copilot.config.experimental.inlineChatCompletionTrigger.enabled
设置,这样 Copilot 会检测到当前行大部分是文本而不是源代码,然后启动内联聊天。
以下视频展示了 Copilot 在检测到当前行大部分是文本后如何建议启动内联聊天。
从聊天启动调试(实验性)
设置:github.copilot.advanced.startDebugging.experimental.enabled
@vscode
聊天参与者上现有一个新的实验性斜杠命令 /startDebugging
。此命令使您能够创建启动配置并开始调试您的应用程序。
您还可以通过“创建 launch.json”快速选择中的使用 GitHub Copilot 生成调试配置选项访问此命令。
基于测试覆盖率生成测试(实验性)
设置:github.copilot.chat.experimental.generateTests.codeLens
如果提供了测试覆盖率信息,GitHub Copilot 可以为尚未被测试覆盖的函数和方法提供一个 CodeLens 使用 Copilot 生成测试。
语言
将“SQL”重命名为“MS SQL”
为了更好地反映该语言对 Microsoft SQL Server (T-SQL) 语法的侧重,SQL 文件的语言名称已从“SQL”重命名为“MS SQL”。此语言模式的文件扩展名仍为 .sql
,语法高亮保持不变。
vscode.dev 上的完整项目 IntelliSense 和包类型
在Web 版 VS Code 上使用 JavaScript 和 TypeScript 的体验得到了大幅提升。首先,我们实现了包 IntelliSense,因此您可以查看来自任何导入包(例如 react
)的建议和文档。这与桌面版 VS Code 中的功能类似。
在 TypeScript 文件中,我们为 package.json
中列出的包提供 IntelliSense。JavaScript 文件更加灵活,使用自动类型获取,它为当前文件导入的任何包提供 IntelliSense,即使它未在 package.json
中列出。
得益于包 IntelliSense,我们还为 JavaScript 和 TypeScript 项目启用了完整的项目 IntelliSense。这极大地改善了代码导航,使您能够正确地转到定义和查找所有引用项目中的任何符号。它还支持类型错误报告。现在甚至在编写代码时支持自动导入。
Chrome、Microsoft Edge 和 Firefox 支持包类型和完整的项目 IntelliSense。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
在 Diff 视图中显示或隐藏未更改的单元格
Notebook Diff 视图现在隐藏了未更改的单元格,这使您能够专注于更改的单元格。同时,所有未更改单元格的输入始终处于折叠状态。
管理 Diff 视图中的空白
Notebook Diff 视图现在遵守以下设置
diffEditor.ignoreTrimWhitespace
- 在显示差异时忽略开头和结尾(修剪)的空白。
Notebook 执行计数的粘性滚动
代码单元格的执行计数现在在向下滚动代码单元格时会粘附在屏幕底部。这使得在较长的代码单元格中工作时更容易查看执行状态和更新。
任务
进程退出时保持任务终端打开
如果任务的终端进程以非零代码退出,我们现在会保持终端打开以便于调试。
调试
跳转到变量定义
调试扩展现在可以将变量和表达式链接到代码中的位置。在变量视图、监视视图和调试控制台中,带有此链接的数据可以通过 Ctrl 键(macOS 上为 Cmd 键)选择。
内置的 JavaScript 调试器将链接代码中定义的函数位置。其他调试扩展需要采用相应的协议更改才能启用此功能。
查找控件
您现在可以在调试控制台中打开查找控件 (⌥⌘F (Windows、Linux Ctrl+Alt+F)) 以搜索输入中的结果。对输出中的结果进行搜索的支持将在未来版本中进行研究。
您还可以通过调试控制台工具栏中位于筛选控件右侧的操作 Debug Console: Focus Find
访问此控件。
启动配置输入缓存
在启动配置和任务中使用的输入变量现在会保留其上次输入的值,以便更容易地重新运行依赖于它们的调试会话。仅当输入上未明确定义 default
时才会执行此操作。
JavaScript 调试器
实验性网络视图
JavaScript 调试器现在包含一个基本的实验性网络视图,当启用 debug.javascript.enableNetworkView
设置时可用。此视图显示浏览器会话发出的请求和响应信息。
主题:Codesong(在 vscode.dev 上预览)
当进程使用参数 --experimental-network-inspection
启动时(例如在 node
启动配置中添加 "runtimeArgs": ["--experimental-network-inspection"]
),网络视图也适用于 Node.js 22.6.0 及以上版本。
注意:Node 的网络实现仍处于早期阶段,大多数关于请求和响应的数据尚不可用。
测试
支持消息的堆栈跟踪
测试扩展现在可以将堆栈跟踪与测试失败关联起来。当它们这样做时,您将在测试结果视图和错误预览中看到调用堆栈的每一帧周围的代码。您可以按住 Ctrl 键(macOS 上为 Cmd 键)在视图中的代码上选择以跳转到其原始位置,或者使用其标头上的转到文件操作。
主题:Codesong(在 vscode.dev 上预览)
安装程序
Debian 包现在会提示您确认是否要添加 packages.microsoft.com 存储库。这使得您之后可以使用 apt 更新软件包。
远程开发
远程开发扩展允许您使用 开发容器、通过 SSH 或远程隧道连接到远程机器,或使用 适用于 Linux 的 Windows 子系统 (WSL) 作为功能齐全的开发环境。
亮点包括
- 开发容器模板的可选路径
- 扩大了 SSH 远程操作系统的兼容性
您可以在远程开发发行说明中了解这些功能的更多信息。
Web 版 VS Code
在 https://vscode.dev 上或使用GitHub Repositories 扩展在桌面版上浏览 GitHub 存储库时,现在会遵循 git.openDiffOnClick
设置。
对扩展的贡献
Python
Django 单元测试支持
我们很高兴地宣布支持我们最受期待的功能之一:您现在可以通过测试资源管理器发现并运行 Django 单元测试!有关如何启用此功能的设置说明,请查看我们的文档。
主题:Catppuccin Macchiato(在 vscode.dev 上预览)
在您探索此新增功能时,请在我们的 vscode-python 存储库中提供反馈并报告任何问题,或使用Python: Report Issue命令。
原生 REPL 改进
我们对新的原生 REPL 体验进行了更多改进和 bug 修复。我们正在实验性地将原生 REPL 作为 智能发送 的默认目标推出,但如果您有兴趣尝试此功能,可以在用户 settings.json
中设置 python.REPL.sendToNativeREPL
并重新加载 VS Code 窗口。
使用 Pylance 从内嵌提示跳转到定义
当使用 Pylance启用内嵌提示时,您现在可以通过将鼠标悬停在其上并按住 Ctrl 键(macOS 上为 Cmd 键)点击来更方便地导航到类型的定义。
调试测试时支持重启
您现在可以通过调试工具栏控件在调试测试时重启调试器。
GitHub 拉取请求和问题
GitHub Pull Requests 扩展取得了更多进展,该扩展使您能够处理、创建和管理拉取请求和问题。查看该扩展的 0.96.0 版本更新日志以了解亮点。
扩展编写
VS Code 的 EcmaScript Module (ESM) 加载影响
我们正在改变 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.shellIntegration
window.onDidChangeTerminalShellIntegration
window.onDidStartTerminalShellExecution
window.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 提供程序已经采用了此方法。
我们相信这是处理多个认证会话以及处理之前无法支持的各种场景的最清晰方法。
调试适配器协议
我们在调试适配器协议中的 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
时更加流畅。- 现在在命令行不同位置请求建议时,建议更加一致。
- 当导航回目录时,为
<path>/../
提供了补全项。
Conpty 在产品中集成
Conpty 是终端的后端,它模拟伪终端在其他操作系统上的工作方式。这个组件在 Windows 本身中发布,这意味着 bug 修复通过 Windows Update 发布。用户可能需要等待很长时间才能获得这些修复。
在此版本中,我们有一个实验性设置,将 conpty 与 VS Code 本身捆绑在一起,类似于 Windows Terminal 的做法。这意味着用户可以在我们发布 VS Code 更新时获得 bug 修复,而无需等待 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 扩展。
新的问题报告器实现
在此里程碑中,我们正在试验问题报告器的新实现。功能保持不变,但应该会有一些改进,例如改进的多显示器支持,以及在 VS Code for the Web 中提供问题报告器。
新版本的问题报告器默认启用,可在 VS Code 的桌面版本中使用 issueReporter.experimental.auxWindow
设置进行配置。
提议的 API
语言模型工具
我们将继续迭代我们的 LanguageModelTool
API。此 API 包含两个主要部分:
-
扩展注册工具的能力。工具是一种供语言模型使用的功能。例如,读取文件的 Git 历史记录。
-
语言模型支持工具的机制,例如扩展在发出请求时传递工具、语言模型请求调用工具,以及扩展通信工具调用的结果。
本月新增的更改之一是用户能够手动将某些工具附加到其聊天请求。例如,用户希望在其请求中使用计算一些动态上下文的工具。
提案可在 vscode.proposed.lmTools.d.ts 中找到。请查看演示注册和调用工具的 tool-user
示例扩展。
请关注 议题 #213274 以获取更新或向我们提供反馈。
注意:此 API 仍在积极开发中,内容可能会有所更改。
测试增强功能
关联代码与测试
我们正在开发一个 API,使扩展能够关联代码与测试,反之亦然。这使用户可以在两者之间跳转,并使诸如在光标处运行测试之类的操作也能在实现代码中工作。我们预计随着 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 的进展
在此里程碑期间,我们完成了在 VS Code Core 中采用 ESM 的大部分工作。我们的目标是使用 ECMAScript Modules (ESM) 加载并完全弃用 AMD。我们将从 9 月开始发布支持 ESM 的 Insider 版本,并计划在 10 月的下一个版本中将 ESM 发布到 Stable 版本。
我们发布 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): 永不运行已清除的 auxwindow 超时 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 环境 PR #221357
- @cobey (Cody Beyer): 为 python 和 js 添加 ai-inference 标签 PR #225098
- @dangerman (Anees Ahee)
- 修复命令面板中缺少“重启 TS 服务器”命令的问题 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
- 更改终端重命名图标 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): 修复打开用户设置时“打开工作区设置”的问题 (修复 #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): 处理来自 Dynamic Debug Configuration providers 的错误 PR #202622
- @zkat (Kat Marchán): 停止 AutoInstallerFs 无休止地折腾并修复类型安装程序 PR #225648
对 vscode-css-languageservice
的贡献
- @wkillerud (William Killerud): 修复:支持 sass pkg 中的条件导出 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 diff 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
设置为globalThis
PR #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
的贡献