2025年2月 (版本 1.98)
更新 1.98.1:此更新修复了这些 问题。
更新 1.98.2:此更新修复了这些 问题。
下载:Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
欢迎使用 Visual Studio Code 2025年2月版。此版本包含了许多我们希望您会喜欢的更新,其中的一些关键亮点包括:
- 下一次编辑建议(预览) - Copilot 预测您可能进行的下一次编辑。
- 代理模式(预览) - Copilot 自主完成任务。
- 笔记本的 Copilot 编辑 - 快速迭代笔记本的编辑内容。
- Copilot 视觉 - 在聊天提示中添加图片并与之交互。
- 代码搜索 - 让 Copilot 为您的聊天提示寻找相关文件。
- 终端 IntelliSense(预览) - 为您的终端提供丰富的补全支持。
- 拖放引用 - 在新编辑器中快速打开预览引用。
- Linux 自定义标题栏 - Linux 默认启用自定义标题栏支持。
- 未解决的诊断(预览) - 在提交带有未解决诊断的代码时进行提示。
- 源码控制中的软删除 - 将未跟踪的文件移至回收站而不是直接删除。
- 自定义指令正式发布 - 使用自定义指令根据您的需求量身定制 Copilot。
如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新。Insiders:想尽快尝试新功能吗?您可以下载每晚Insiders版本并尽快尝试最新更新。
GitHub Copilot
Copilot 功能可能会经历不同的早期访问阶段,通常通过设置进行启用和配置。
| 阶段 | 描述 |
|---|---|
| 实验性 (Experimental) | 该功能仍在开发中,尚未准备好供一般使用。 查看 实验性功能 ( @tag:experimental)。 |
| 预览版 (Preview) | 该功能仍在完善中,但已可以开始使用。欢迎提供反馈。 查看 预览功能 ( @tag:preview)。 |
| 稳定版 | 该功能已准备好供一般使用。 |
Copilot 编辑
代理模式改进(实验性)
上个月,我们在 VS Code Insiders 的 Copilot Edits 中引入了“代理模式 (agent mode)”。在代理模式下,Copilot 可以自动在您的工作区中搜索相关上下文、编辑文件、检查错误,并运行终端命令(经您许可后)以端到端地完成任务。
注意:代理模式目前已在 VS Code Insiders 中可用,我们刚刚开始在 VS Code 稳定版 中逐步推出。一旦为您启用了代理模式,您将在 Copilot Edits 视图中看到一个模式下拉菜单——只需选择 Agent 即可。
本月我们对工具使用的用户体验进行了多项改进:
- 终端命令现在内联显示,方便您跟踪已运行的命令。
- 您可以在运行之前在聊天响应中编辑建议的终端命令。
- 使用 ⌘Enter(Windows, Linux 为 Ctrl+Enter) 快捷键确认终端命令。
代理模式会自主在您的代码库中搜索相关上下文。展开消息即可查看具体执行了哪些搜索及其结果。

我们还对代理模式的提示词和行为进行了各种改进:
- 聊天中的撤销和重做操作现在会撤销或重做聊天响应中所做的最后一次文件编辑。这对于代理模式非常有用,因为您现在可以撤销模型采取的某些步骤,而无需回滚整个聊天响应。
- 代理模式现在可以自动或根据指示运行您的构建 任务 (tasks)。如果您发现模型在不该运行任务时运行了任务,可以通过 github.copilot.chat.agent.runTasks设置来禁用此功能。
了解更多关于 Copilot Edits 代理模式 的信息,或阅读 代理模式发布博客文章。
注意:如果您是 Copilot Business 或 Enterprise 用户,您的组织管理员必须选择加入 (opt in) 使用 Copilot "Editor Preview Features",代理模式才可用。
Copilot Edits 对笔记本的支持(预览)
我们在 VS Code Insiders 中作为预览功能引入了 Copilot Edits 对笔记本的支持。您现在可以使用 Copilot 编辑笔记本文件,享受与编辑代码文件同样直观的体验。从头开始创建新笔记本、修改多个单元格的内容、插入和删除单元格以及更改单元格类型。此预览功能为处理数据科学或文档笔记本提供了无缝的工作流。
注意:此功能目前仅在安装了 GitHub Copilot Chat 预发布版的 VS Code Insiders 中可用。我们将在未来的版本中将其引入 VS Code 稳定版之前,继续改进此体验。
优化的编辑器集成
我们打磨了 Copilot Edits 与代码和笔记本编辑器的集成:
- 在应用更改时不再滚动。视口保持在原位,使您更容易专注于发生的变化。
- 将编辑审阅操作从“接受 (Accept)”重命名为“保留 (Keep)”,从“丢弃 (Discard)”重命名为“撤销 (Undo)”,以更好地反映实际发生的动作。Copilot Edits 的更改是实时的,它们在生成时就会被应用和保存,用户选择保留或撤销它们。
- 在保留或撤销一个文件后,会自动显示下一个文件。
视频演示了编辑是如何在发生时应用并保存的。实时预览会更新,用户决定“保留”更改。撤销和进一步调整仍然是可能的。
刷新的 UI
为了准备将 Copilot Edits 与 Copilot Chat 统一,我们对 Copilot Edits 进行了视觉升级。已添加但尚未发送的文件现在渲染为常规聊天附件。只有经 AI 修改过的文件才会添加到已更改文件列表中,该列表位于聊天输入框上方。
使用

移除了 Copilot Edits 限制
以前,您在 Copilot Edits 的提示词中最多只能添加 10 个文件。在此版本中,我们移除了这一限制。此外,我们也移除了客户端每 10 分钟 14 次交互的速率限制。
请注意,服务器端的使用速率限制仍然适用。
自定义指令正式发布 (GA)
设置:
自定义指令使您能够量身定制 GitHub Copilot,使其提供符合您及团队工作方式的聊天响应和代码建议。在您工作区的 .github/copilot-instructions.md 文件中以 Markdown 格式描述您的具体要求。
在本次里程碑中,我们让使用 .github/copilot-instructions.md 的自定义指令正式发布。请确保
了解更多关于 Copilot 自定义指令 的信息。
更流畅的聊天身份验证流程
如果您的源代码托管在 GitHub 存储库中,您将能够利用多项功能,包括高级代码搜索、@github 聊天参与者等!
然而,对于私有 GitHub 存储库,VS Code 需要获得与您在 GitHub 上的存储库交互的权限。一段时间以来,这是通过我们通常的 VS Code 身份验证流程呈现的,即当您调用某些功能(例如向 @workspace 或 @github 提问,或使用 #codebase 工具)时会显示一个模态对话框。
为了使这种体验更顺畅,我们在聊天中引入了这种确认方式:

它不仅不像模态对话框那样突兀,而且还具有新功能:
- 授予 (Grant): 您将像以前一样通过常规身份验证流程(通过模态框)。
- 暂时不 (Not Now): VS Code 会记住您的选择,在您的下一个 VS Code 窗口会话之前不会再打扰您。唯一的例外是如果该功能需要此额外权限才能运行,例如
@github。 - 不再询问 (Never Ask Again): VS Code 会记住您的选择并通过 github.copilot.advanced.authPermissions设置将其持久化。任何需要此额外权限的功能都将失败。
需要注意的是,此确认并不代表确认或拒绝 Copilot(服务)访问您的存储库。这仅是 VS Code 的 Copilot 体验进行身份验证的方式。要配置 Copilot 可以访问的内容,请阅读关于内容排除的文档。
Copilot Chat 中更高级的代码库搜索
设置:
当您在 Copilot Chat 查询中添加 #codebase 时,Copilot 会帮助您在工作区中寻找与聊天提示相关的代码。#codebase 现在可以运行文本搜索和文件搜索等工具,以从您的工作区引入额外的上下文。
设置
- 基于嵌入 (Embeddings) 的语义搜索
- 文本搜索
- 文件搜索
- Git 已修改文件
- 项目结构
- 读取文件
- 读取目录
- 工作区符号搜索
将“问题 (Problems)”作为聊天上下文添加
为了帮助修复代码或工作区中的其他问题,您现在可以将“问题”面板中的问题添加到聊天中,作为提示词的上下文。
您可以将“问题”面板中的项目拖动到聊天视图中,在提示词中输入 #problems,或者选择回形针 📎 按钮。您可以添加特定的问题、文件中的所有问题或代码库中的所有文件。
将文件夹作为上下文添加
以前,您可以通过从资源管理器视图拖放来将文件夹作为上下文添加。现在,您还可以通过选择回形针 📎 图标或在聊天提示词中输入 #folder: 后跟文件夹名称来添加文件夹。
下一次编辑建议的折叠模式(预览)
设置:
- github.copilot.nextEditSuggestions.enabled
- editor.inlineSuggest.edits.showCollapsed
我们为 NES (Next Edit Suggestions) 添加了折叠模式。启用此模式后,编辑器左边距仅显示 NES 建议指示器。只有当您通过按下 Tab 导航到它时,才会显示代码建议本身。连续的建议会立即显示,直到某个建议不被接受。
折叠模式默认禁用,可以通过配置

更改补全模型
您已经可以更改 Copilot Chat 和 Copilot Edits 的语言模型,现在您也可以更改内联建议 (inline suggestions) 的模型了。
或者,您可以通过命令面板中的 Change Completions Model 命令或标题栏 Copilot 菜单中的 Configure Code Completions 项目来更改用于代码补全的模型。
注意: 可选模型列表可能会随时间而变化。如果您是 Copilot Business 或 Enterprise 用户,您的管理员需要通过在 GitHub.com 的 Copilot 策略设置 中选择加入
Editor Preview Features来为您的组织启用某些模型。
模型可用性
在此版本中,我们为使用 Copilot 时增加了更多模型选择。以下模型现在可在 Visual Studio Code 和 github.com 聊天的模型选择器中使用:
-
GPT 4.5 (预览):OpenAI 的最新模型 GPT-4.5 现在通过 GitHub Copilot Chat 向 Copilot Enterprise 用户开放。GPT-4.5 是一款大型语言模型,在直觉、写作风格和广泛知识方面具有先进能力。在 GitHub 博客文章 中了解更多关于 GPT-4.5 模型的可用性信息。
-
Claude 3.7 Sonnet (预览):Claude 3.7 Sonnet 现在对所有付费 Copilot 计划的客户开放。这款新的 Sonnet 模型支持 Copilot 中的思考 (thinking) 和非思考模式。在初步测试中,我们看到在代理 (agentic) 场景中有了特别显著的改进。在 GitHub 博客文章 中了解更多关于 Claude 3.7 Sonnet 模型的可用性信息。
Copilot Vision (预览)
我们在此版本的 Copilot Chat 中快速推出了端到端视觉支持。这允许您在聊天提示中附加图片并与之交互。例如,如果您在调试时遇到错误,可以附加一张 VS Code 的截图,并请求 Copilot 帮助您解决问题。您也可以用它来附加一些 UI 模型图,让 Copilot 提供一些 HTML 和 CSS 来实现该模型。

您可以通过多种方式附加图片:
- 从操作系统或资源管理器视图中拖放图片
- 从剪贴板粘贴图片
- 附加 VS Code 窗口截图(选择 回形针 📎 按钮 > Screenshot Window)
如果所选模型目前不具备处理该文件类型的能力,系统会显示警告。目前唯一支持的模型是 GPT 4o,但对 Claude 3.5 Sonnet 和 Gemini 2.0 Flash 图片附件的支持也将很快推出。目前支持的图片类型包括 JPEG/JPG, PNG, GIF, 和 WEBP。
Copilot 状态概览(实验性)
设置:
我们正在尝试一种新的集中式 Copilot 状态概览,它可以快速查看您的 Copilot 状态和关键编辑器设置:
- 如果您是 Copilot 免费版用户,将显示配额信息
- 编辑器相关设置,如代码补全
- 使用其他 Copilot 功能的实用键盘快捷键
该 Copilot 状态概览可通过状态栏中的 Copilot 图标访问。

通过以下设置启用 Copilot 状态概览:
TypeScript 的内联补全上下文(实验性)
设置:
我们正在试验为 TypeScript 文件的内联补全和 /fix 命令提供增强上下文。该实验目前仅限于 Insider 版本,并可通过以下设置启用:
拉取请求 (PR) 标题和描述的自定义指令
您可以通过设置提供用于生成拉取请求标题和描述的自定义指令:
以下示例显示了如何在设置中提供内联自定义指令。
{
"github.copilot.chat.pullRequestDescriptionGeneration.instructions": [
{
"text": "Prefix every PR title with an emoji."
}
]
}
生成标题和描述需要安装 GitHub Pull Requests 扩展。
辅助功能
Copilot Edits 可访问性
我们大幅提升了 Copilot Edits 的可访问性。
- 现在针对有修改的文件和已更改的区域(插入、修改和删除)增加了音频信号。
- 可访问的差异查看器现在可用于已修改的文件。就像在差异编辑器中一样,选择 F7 来启用它。
activeEditorState 窗口标题变量
我们新增了一个
activeEditorState,向屏幕阅读器用户指示编辑器信息,例如修改状态、问题数量以及文件是否有待处理的 Copilot 编辑。在屏幕阅读器优化模式下,此变量默认会被附加,并可以通过 工作台
Linux 上的自定义标题栏
自定义标题栏现在 Linux 上默认启用。自定义标题栏让您可以访问布局控件、Copilot 菜单等。

您可以随时通过自定义标题栏右键菜单或配置以下设置来恢复到原生标题栏装饰:
native。

我们很高兴能继续收到关于此体验的反馈,并且已经在根据现有反馈改进未来的里程碑。
辅助侧边栏视图使用标签
我们决定更改辅助侧边栏 (Secondary Side Bar) 中视图的外观,以显示标签而不是图标,类似于面板区域的显示方式。这使得区分不同的视图变得更容易,例如 Copilot Edits 和 Copilot Chat 视图。您可以随时通过配置以下设置切换回显示图标:

新的设置编辑器键匹配算法(预览)
设置:
我们添加了一种新的设置编辑器搜索算法,该算法会优先处理更相关的键匹配。该搜索算法尝试以比以前更多的方式匹配设置 ID 和标签,但它也会对结果进行更多过滤,以便只显示最佳匹配类型。
您可以通过启用以下预览功能来尝试:
主题:浅粉色(在 vscode.dev 上预览)
在简单文件选择器中隐藏点文件 (Dot Files) 的选项
当使用 简单文件选择器 时(无论是在连接到远程开发时,还是在使用

编辑器
预览引用 (Peek references) 拖放支持
预览 (Peek) 视图现在支持拖放。调用 Peek References、Peek Implementation 或任何其他预览命令,然后从其树形结构中拖动条目以将它们作为单独的编辑器打开。
主题:GitHub Light Colorblind (Beta) (在 vscode.dev 上预览)
出现突出显示延迟 (Occurrences highlight delay)
编辑器内出现突出显示的延迟现在默认设置为 0。这带来了整体响应更快的编辑器感受。您仍然可以通过以下设置控制延迟:
源代码管理
更新的视图标题
当我们将 Source Control Graph 视图添加到源码控制 (Source Control) 视图中时,它凸显了源码控制视图中部分标题的重复:“Source Control Repositories”、“Source Control”和“Source Control Graph”。在这个里程碑中,我们重新审视了这些视图的标题,使它们更短且不再重复视图标题:“Repositories”、“Changes”和“Graph”。
丢弃未跟踪更改的改进
设置:
多年来,我们收到了多份关于数据丢失的报告,因为丢弃一个未跟踪的文件会永久删除该文件,尽管 VS Code 会显示一个明确说明文件将被永久删除的模态对话框。
从这个里程碑开始,丢弃未跟踪的文件将在可能的情况下将文件移至回收站,以便文件可以轻松恢复。您可以使用以下设置禁用此功能:

诊断提交挂钩 (Diagnostics commit hook)(实验性)
设置:
- git.diagnosticsCommitHook.Enabled
- git.diagnosticsCommitHook.Sources
在本次里程碑中,我们引入了一个新的提交挂钩,如果更改的文件有任何未解决的诊断(例如代码错误),它会向您提示。这目前是一个实验性功能,可以使用以下设置启用:
默认情况下,提交挂钩会对任何错误级别的诊断进行提示,但诊断源和级别可以使用以下设置自定义:

Notebook
内联笔记本差异视图(实验性)
设置:
您现在可以启用笔记本的内联差异视图。此功能使您能够在单个内联视图中查看笔记本单元格内的更改,而不是传统的并排对比。
通过将以下设置设为 true 来启用此功能:
笔记本内联值悬停
笔记本内联值现在的装饰会被截断以适应视口宽度,并具有丰富的悬停效果来显示完整值,同时保持空格格式。这保持了像 dataframes 这样的变量的形状,使值更容易一目了然。

终端 IntelliSense(预览)
设置:
我们通过添加补全规范(例如 git)、改进命令行解析以获得更好的建议,以及增强文件和文件夹补全,显著改进了 bash、zsh、fish 和 PowerShell 的终端 shell 补全。通过以下设置启用此功能:
增强的 Fig 补全支持
我们利用 Fig 补全规范 来为特定的 CLI 提供智能补全。以前我们只有少量的这类规范,但在本次迭代中,我们将以下 CLI 添加到了 VS Code 自带的列表中:
- 基础工具:
cat,chmod,chown,cp,curl,df,du,echo,find,grep,head,less,ls,mkdir,more,mv,pwd,rm,rmdir,tail,top,touch,uname - 进程工具:
kill,killall,ps - 包管理器:
apt,brew - Node.js 生态:
node,npm,npx,nvm,pnpm,yarn - SCM、语言、编辑器:
git,nano,python,python3,vim - 网络:
scp,ssh,wget
除了新的规范外,我们现在还支持 生成器 (generators),它在请求补全时通过运行命令动态生成补全。一个实际应用的例子是显示 git checkout 的所有分支:
主题:Sapphire (在 vscode.dev 上预览)
在后台,这会运行 git --no-optional-locks branch -a --no-color --sort=-committerdate 来获取分支列表,然后将其处理成补全建议。类似的方法也用于获取标签 (tags)。
可配置的快速建议 (Quick Suggestions)
设置:
与编辑器类似,快速建议是指在输入任何内容时自动显示 IntelliSense,而触发字符则是指在输入某些字符(如 \ 或 -)时显示。新的
默认值启用了命令和参数的快速建议,而路径建议现在默认禁用(因为我们听说路径建议往往不适用,可能会产生干扰)。以下是默认设置:
"terminal.integrated.suggest.quickSuggestions": {
"commands": "on",
"arguments": "on",
"unknown": "off"
}
内联建议检测
设置:
到目前为止,内联建议检测面临的一个问题是由于来自不同来源的建议相互竞争而引入的混淆。具体来说,是在 shell 中输入时经常出现的内联建议:

这些建议实际上是 shell 级的功能(fish/zsh 中的 auto suggestions,pwsh 中的 predictions 等),用户可能意识不到这一点,尤其是当它们与 IntelliSense 并排呈现时。
IntelliSense 功能要求我们检测这种内联建议,以前我们使用的是一个幼稚的实现,仅检查文本是否具有 faint (弱化) 或 italics (斜体) SGR 属性。事实证明这是不够的,不仅是因为用户可能会自定义样式,还因为 fish shell 默认不使用这两种样式。我们现在通过分析命令行上下文和光标位置来检测大多数情况。
基于这一改进后的检测,内联建议现在作为带有星号图标的首选项呈现,既与编辑器的行为更加一致,也更清楚地说明了在这种情况下按下 kstyle(Tab) 会发生什么。

默认是始终将此建议显示为首选建议,但可以通过以下设置配置:
详细的命令补全
bash 和 zsh 内置命令以及 PowerShell 命令的补全现在更加详细,提供了可用参数的细节。这些信息源自 shell 的文档或帮助命令。
对于 bash,使用 help <command> 获取基本描述

对于 zsh,使用 man zshbuiltins 获取详细描述

对于 PowerShell,补全中会显示 Get-Command 的更多属性


改进的排序
命令补全现在具有改进的排序,具体如下:
- 细节更丰富的补全通常显示在细节较少的补全之上
- 内置命令优先于来自
$PATH的路径

对于路径,做了以下改进:
- 以
_开头的路径会受到降权惩罚,因为这通常表示它们是特殊的且通常不应被频繁更改(例如__init__.py)。 - 排序时忽略标点符号,因此以
.开头的文件将与其他文件混合在一起。

CDPATH 支持
设置:
$CDPATH 环境变量是一个常见的 shell 功能,它包含一个冒号分隔的路径列表(类似于 $PATH),允许无论当前工作目录为何都像相对路径一样导航到这些路径。Fish 实际上在 cd 的 tab 补全中显示了 CDPATH 条目:

我们现在支持在使用 cd 时将 $CDPATH 条目显示为补全建议:

此功能在 Windows(使用 ; 分隔符)上也能工作,并且不需要 shell 原生支持该功能,因为默认使用的是绝对路径。

通过此项配置:
绝对路径
现在支持绝对路径。


别名支持
bash、zsh 和 fish 的命令别名 (alias) 现在也能被检测到,并具有一个新的独特图标:

区分选项和标志
CLI 选项(带有值)和标志(不带值)现在在 UI 中通过不同的图标进行区分:

任务
任务重新运行操作
我们为终端新增了一个 重新运行 (rerun) 任务操作,快捷键为 ⌃⇧R(Windows, Linux 为 Ctrl+Shift+R)。该操作出现在终端标签页的内联工具栏和终端的上下文菜单中。
调试
调试内联值悬停
如果启用了设置

语言
TypeScript 5.8
VS Code 现在包含 TypeScript 5.8.2。这一重大更新带来了新的语言改进,包括 改进条件表达式的类型检查 以及 支持编写符合 Node 新的 --experimental-strip-types 选项的代码。它还包括了许多工具改进和错误修复。
查看 TypeScript 5.8 发布博客 了解更多关于此更新的详细信息。
远程开发
远程开发扩展允许您通过 SSH 或远程隧道使用开发容器、远程机器或适用于 Linux 的 Windows 子系统 (WSL) 作为功能齐全的开发环境。
亮点包括:
- Linux 旧版服务器生命周期结束 (EOL)
- 扩展的代理可配置性
您可以在 远程开发发布说明 中了解关于这些功能的更多信息。
企业支持
允许扩展列表的多行支持
您现在可以在 Windows 的组策略中使用多行字符串配置允许的扩展。这允许对允许的扩展进行更灵活和广泛的配置。了解更多关于 配置允许扩展 的信息。
对扩展的贡献
Python
折断长字符串时自动插入引号
Pylance 现在支持自动插入引号,以便在折断长字符串时提供无缝体验。
Pylance 内存消耗改进
进行了一些优化以改善 Pylance 的内存消耗,尤其是在处理大型工作区时。此增强功能 是针对 Pyright(支持 Pylance 语言服务器功能的静态类型检查器)进行的。
Python shell 集成的改进
在修改以下设置后:
Windows Git Bash 的正确工作区提示
在 Windows 上使用 Git Bash 的 Python 用户现在将在其终端提示符中看到正确的工作目录。这些更改适用于那些选择加入 pythonTerminalEnvVarActivation 实验的用户。
自动测试发现文件模式的新设置
您现在可以通过在以下设置中指定 glob 模式来细化自动测试发现发生的文件:
**/*.py。
从 settings.json 读取测试调试配置作为回退
我们现在会同时在 settings.json 和 launch.json 文件中查找测试调试配置,扩大了您可以定义这些配置的范围。
GitHub 身份验证
通过采用 Electron fetch 改进代理支持
GitHub Authentication 扩展现在利用 Electron 版本的 fetch 来发出 Web 请求。这帮助了具有某些代理和防火墙设置的用户。如果您知道自己在具有代理设置的环境中运行,并且无法在 VS Code 内部对 GitHub 进行身份验证,请随时提交 Issue!
扩展创作
认证
重要:我们将
AuthenticationForceNewSessionOptions重命名为AuthenticationGetSessionPresentationOptions,目前保留了一个已弃用的AuthenticationForceNewSessionOptions。没有功能差异,因此在运行时这不是破坏性更改,但您应该更新代码以使用AuthenticationGetSessionPresentationOptions而不是AuthenticationForceNewSessionOptions,因为后者将来会被移除。
看看这两个身份验证调用:
vscode.authentication.getSession(provider, scopes, { createIfNone: options });
vscode.authentication.getSession(provider, scopes, { forceNewSession: options });
createIfNone 和 forceNewSession 现在将接收 boolean 或 AuthenticationGetSessionPresentationOptions
/**
* Optional options to be used when calling {@link authentication.getSession} with interactive options `forceNewSession` & `createIfNone`.
*/
export interface AuthenticationGetSessionPresentationOptions {
/**
* An optional message that will be displayed to the user when we ask to re-authenticate. Providing additional context
* as to why you are asking a user to re-authenticate can help increase the odds that they will accept.
*/
detail?: string;
}
这是 createIfNone 的新增内容,但它是对 forceNewSession 的修改,后者过去接收 AuthenticationForceNewSessionOptions,其签名与新的 AuthenticationGetSessionPresentationOptions 相同。
如果您正在明确使用 AuthenticationForceNewSessionOptions,您会看到它被标记为已弃用,您应该将其替换为 AuthenticationGetSessionPresentationOptions,因为 AuthenticationForceNewSessionOptions 将在未来版本中被移除。
需要注意的是,这里改变的只有类型。没有运行时更改,因此从这个角度来看,这不是一个破坏性更改。
此外,authLearnMore 提议的 API 已从 AuthenticationForceNewSessionOptions 更新为 AuthenticationGetSessionPresentationOptions。
这是一个利用 detail 和 learnMore 提议的示例:

精简的 Snippet API
您现在可以在插入代码片段时控制空格规范化。这适用于 insertSnippet API 和 SnippetTextEdit API,并控制是否调整代码片段额外行的缩进。
const snippet = `This is an indented
snippet`;
// keepWhitespace: false, undefined
function indentedFunctionWithSnippet() {
return `This is an indented
snippet`; // adjusted indentation
}
// keepWhitespace: true
function indentedFunctionWithSnippet() {
return `This is an indented
snippet`; // original indentation
}
提议的 API
文本编码
我们添加了新的提议 API 以在 VS Code 中处理 文本编码。
具体来说,这个新 API 允许:
- 获取
TextDocument的当前encoding(编码) - 使用特定的
encoding打开TextDocument - 使用特定的
encoding将string编码为Uint8Array - 使用特定的
encoding将Uint8Array解码为string
尝试一下并在这个 GitHub Issue 中告诉我们您的想法。
Shell 环境
扩展程序能够访问从 VS Code 集成终端打开的 pwsh, zsh, bash, 和 fish shell 的用户当前活动 shell 环境信息。这仅在
启用时可用。用户可以决定是否通过以下设置报告其 shell 环境信息:
尝试一下并在这个 GitHub Issue 中告诉我们您的想法。
工程
Electron 34 更新
在本次里程碑中,我们将 Electron 34 更新推向了稳定版的运行。此更新附带了 Chromium 132.0.6834.196 和 Node.js 20.18.2。我们要感谢所有在 Insiders 版本中自行托管并提供早期反馈的人。
macOS 10.15 支持已结束
VS Code 1.97 是支持 macOS 10.15 (macOS Catalina) 的最后一个版本。有关更多信息,请参阅我们的 常见问题解答。
开发时跟踪泄漏的可丢弃对象 (Disposables)
VS Code 使用可丢弃模式进行显式资源管理,例如关闭文件、清理 DOM 元素或移除事件监听器。不丢弃资源意味着浪费内存,并且内存使用量会随着时间的推移而累积。
我们一直在寻找此类泄漏,并添加了另一个检测工具。我们利用 FinalizationRegistry API,因为它在对象被垃圾回收时会通知我们。如果这样一个对象代表一个未被 dispose 的 disposable,这意味着我们存在泄漏。这些信息会被收集并展示给 VS Code 的开发人员,以便我们能够及时清理。
值得注意的修复
感谢
最后但同样重要的是,向 VS Code 的贡献者们致以衷心的感谢。
问题跟踪
对我们问题跟踪的贡献
- @gjsjohnmurray (John Murray)
- @albertosantini (Alberto Santini)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
拉取请求
对 vscode 的贡献
- @a-stewart (Anthony Stewart): 差异选择指示线应使用 menu.separatorBackground 而不是 menu.border PR #228825
- @bchu1 (Bryan Chu): 修复迷你地图中页眉错位的问题 PR #217581
- @cassidoo (Cassidy Williams): 修复 #241903:在 settingsLayout.ts 中为 GitHub 添加覆盖 PR #241911
- @cdce8p (Marc Mueller): 添加 panelTitleBadge 颜色变量 PR #240645
- @cenviity (Vincent Ging Ho Yim): 修复
editorOptions.ts中的拼写错误 PR #239929 - @cmbrose (Caleb Brose): 更新聊天的
newEditSession命令以接收输入提示 PR #241796 - @devm33 (Devraj Mehta): 修复:将 electron 添加为 webpack 的外部依赖 PR #239134
- @dmotte (Motte): 修复 terminal.integrated.confirmOnExit 的行为 PR #240074
- @dvangonen (Daniil Vangonen): 从 body 中移除不必要的 class PR #240633
- @gabritto (Gabriela Araujo Britto): 回滚 "[typescript-language-features] 可展开的悬停 (#_228255)" PR #240011
- @gjsjohnmurray (John Murray)
- 向
scm/resourceGroup/context菜单命令提供多选支持 (修复 #92337) PR #192172 - 添加
scmResourceGroupState上下文键 (#_192009) PR #194804 - SCM - SCM 视图中的标题更简洁 PR #230693
- 修复键盘快捷键编辑器上的 'Show User Keybindings' 选项 (修复 #240068) PR #240085
- 'Add Triggered Breakpoint...' 上的 'OK' 大写错误 (修复 #240490) PR #240492
- 向
- @hickford (M Hickford): 在 "tunnel user show" 中记录提供者 PR #240692
- @ihavecoke (ihavecoke): 将 tab_size 设置限制在 1 到 16 之间 PR #228957
- @jakebailey (Jake Bailey): 在扩展宿主开发中保留 --disable-extensions PR #240415
- @jamestut (James Nugraha): 在初始化分词器之前计算 TextModel 限制 PR #240919
- @jeanp413 (Jean Pierre)
- 修复终端拆分视图可丢弃对象泄漏 PR #241597
- 修复损坏的终端链接悬停,在能够悬停在内容上之前就会隐藏 PR #241599
- 修复时间线视图泄漏事件监听器 PR #241607
- @KexyBiscuit (Kexy Biscuit a.k.a. るる): 允许检测 powershell-preview snap PR #240054
- @klaussner (Christian Klaussner): 修复 macOS 上的红绿灯居中问题 PR #212471
- @naman108 (Natha Paquette): 存储 URI 文档中的拼写错误 PR #241600
- @nknguyenhc (Nguyen): 扩展详情内容超出容器 PR #240134
- @notoriousmango (Seong Min Park)
- 使命令中心调试启动器优先提供最近使用的配置 PR #240744
- 采用 Markdown 使用 vscode 日志输出通道 PR #241342
- @pouyakary (Pouya Kary ✨): 功能:自定义迷你地图节标题标记检测正则表达式 ✨ PR #210271
- @rgrunber (Roland Grunberg): 向 TextEditor API 暴露 adjustWhitespace。 PR #234858
- @silamon (Simon Lamon): 差异编辑器:将
1 files修正为1 filePR #240092 - @simon-id (simon-id): 修复:工作区搜索使用正确的 findMatch 颜色 (修复 #237909) PR #237910
- @SimonSiefke (Simon Siefke): 修复:设置指示器中的内存泄漏 PR #236417
- @ssigwart (Stephen Sigwart): 修复尝试缩进时意外发生的 tab 补全 PR #136572
- @SunsetTechuila (Grigory): 功能 (commands): 添加
insertFinalNewLinePR #241126 - @tcvdh (Thijs van den Heuvel): 修复:在重用终端之前等待 clear 命令执行完毕 PR #240970
- @terrymun (Terry Mun-Andersen): 修复:移除 CONTRIBUTING.md 中多余的反引号 PR #240305
- @tmm1 (Aman Karmani): tsb:修复删除并重新添加源文件未重新生成的问题 PR #238409
- @xymopen (xymopen_Official)
- 添加 node 作为 npm 脚本运行器 PR #236967
- 添加 node 作为 npm 脚本运行器 (第二次) PR #240527
- @zardoy (Vitaly): [Git] 在拉取时迁移到 git autostash 以获得更好性能 PR #187850
对 vscode-css-languageservice 的贡献
- @GauravB159 (Gaurav Bhagchandani): 添加 lab() 和 lch() 颜色预览 PR #306
对 vscode-eslint 的贡献
- @edemaine (Erik Demaine): Civet 的探测支持 PR #1965
- @mustevenplay (mustevenplay): 添加 Typescript 配置文件检测 PR #1968
对 vscode-hexeditor 的贡献
- @tomilho (Tomás Silva): 将 Hex Compare Selected 移动到 Compare Selected 下方 PR #561
对 vscode-jupyter 的贡献
- @thesuperzapper (Mathew Wicks): 修复读取
JUPYTER_RUNTIME_DIR和XDG_RUNTIME_DIR的问题 PR #16451
对 vscode-languageserver-node 的贡献
- @MariaSolOs (Maria José Solano)
- @mciccale (Marco Ciccalè Baztán): semaphore.ts 中的轻微拼写错误 PR #1618
- @yf-yang: 修复:避免 dispose 不匹配的处理程序 PR #1614
对 vscode-mypy 的贡献
- @DetachHead
- @hamirmahal (Hamir Mahal): 修复:CI 中使用
已弃用的 node12的问题 PR #336 - @ivirabyan (Ivan Virabyan): 添加 dmypy 状态文件设置 PR #347
对 vscode-pull-request-github 的贡献
- @christianvuerings (Christian Vuerings): 修复使用自定义 SSH 时的 Copy GitHub Permalink PR #6669
对 vscode-python-debugger 的贡献
- @TCPsoftware (tcpsoft): 将 "args": "${command:pickArgs}" 设为默认调试配置 PR #548
对 vscode-vsce 的贡献
- @mohankumarelec (mohanram): 更新了 semver 比较 PR #1078
- @stevedlawrence (Steve Lawrence): 允许生成可复现的 .vsix 包 PR #1100
对 debug-adapter-protocol 的贡献
- @angelozerr (Angelo): 添加 IntelliJ / LSP4IJ DAP 支持 PR #529
- @samisalreadytaken: 将 Squirrel Debugger 添加到 adapters.md PR #530
- @SpartanJ (Martín Lucas Golini): 更新 tools.md,添加一个新的 DAP 客户端:ecode PR #526
- @sssooonnnggg (Song): chore: 添加 luau debugger PR #516
- @theIDinside (Simon Farre): 将 Midas 添加到调试适配器列表,支持 VSCode PR #528
对 language-server-protocol 的贡献
- @ind1go (Ben Cox): 工作区诊断中的拼写错误 PR #2086
- @MariaSolOs (Maria José Solano)
- @MuntasirSZN (Muntasir Mahmud): 功能:将 copilot 语言服务器添加到服务器列表 PR #2107
- @Szasza (Szasza Palmer): 将 Wing 语言服务器添加到服务器列表 PR #2101
- @the-mikedavis (Michael Davis): 澄清
$0不应使用任何其他代码片段语法 PR #2087 - @yassun7010 (yassun7010): 将 Tombi 添加到 LSP 列表。 PR #2089
对 python-environment-tools 的贡献
- @pantheraleo-7: 增加对检测
$VIRTUAL_ENV的支持 PR #181