大家好,我是农村程序员,独立开发者,编程记者,前端之虎陈随易。
我会在这里分享代码技术,编程资讯,行业热点等内容,欢迎关注。
- 个人网站 1️⃣:chensuiyi.me
- 个人网站 2️⃣:me.yicode.tech
- 技术群,搞钱群,闲聊群,自驾群,想入群的在我个人网站联系我。
所有文章都是古法手打,经过了深度思考和总结,不含 AI 添加剂,请放心食用,一起灵魂交流。
一键三连 (点赞
、评论
、转发
),可以给我提供曝光,带来一份早餐收入,谢谢大家~~
笔者一直在关注软件资讯和行业热点,VSCode 是我重点关注的软件之一,也是笔者集写代码、写文章、记录日常和待办的唯一软件。
本次的更新内容,主要还是集中在 AI 的增强方面,可以说是迎来了一个 Copilot 进化的小高潮。
我发现,很多人可能对 VSCode + Copilot 有偏见啊?根据我用过的 AI 组合来说,这一套组合拳是我体验过最好的。
话不多说,看看这次的更新内容吧。
引擎升级

作为 Electron 35 运行时更新的一部分,Node.js 扩展主机现已从 v20 更新至 v22,此更新引入了对桌面和远程扩展主机中 navigator 全局对象的支持。
此更改可能会对依赖 navigator 对象来检测 Web 环境的扩展带来重大改变。
为了帮助扩展程序作者进行迁移,我们为 globalThis.navigator
创建了一个 polyfill,该 polyfill 初始化为 undefined
,以便扩展程序能够继续正常工作。
该 polyfill 位于 extensions.supportNodeGlobalNavigator
VSCode 设置。默认情况下,此设置处于禁用状态,并且 polyfill 已就位。
当扩展程序尝试以这种方式访问 navigator 时,会捕获遥测数据并记录错误 (在扩展程序开发模式下)。
将来,此设置可能会默认启用,因此强烈建议扩展程序作者迁移其代码,以与新的 navigator 全局对象兼容。
请按照以下步骤迁移您的代码:
- 检查扩展主机日志中是否存在源自您的扩展的错误堆栈的
PendingMigrationError
。 - 确保像
typeof navigator === 'object'
这样的检查根据需要迁移到typeof process === 'object'
&&process.versions.node
。 - 验证扩展行为保持不变。
聊天工具集

json
{
"gh-news": {
"tools": ["list_notifications", "dismiss_notification", "get_notification_details"],
"description": "Manage GH notification",
"icon": "github-project"
}
}
如上案例,配置了一个 gn-news
工具集,包含了多个不同的工具的组合,然后在聊天窗口中,输入 #gh-news
即可使用。
要创建工具集,从命令面板运行 Configure Tool Sets
> Create new tool sets file
,填写工具集名称,描述就配置完成了。
MCP 支持提示
MCP 服务器可以定义提示符,以便为语言模型生成可复用的代码片段或任务。
提示符可在聊天中以斜杠 / 命令的形式访问,格式为 /mcp.servername.promptname
。
可以输入纯文本,也可以在提示符变量中包含命令输出。此外,还支持服务器提供的补全功能。
MCP 资源支持
VSCode 的模型上下文协议现在支持包含资源,其中包括对资源模板的支持,该协议可在以下几个地方使用:
- MCP 工具调用返回的资源可用于模型,并且可以通过保存按钮或将资源拖到资源管理器视图中保存在聊天中。
- 可以通过聊天中的
添加上下文...
按钮将资源附加为上下文,然后选择MCP 资源...
。 - 可以使用
MCP:浏览资源命令浏览
和查看跨服务器的资源,或者通过MCP:列出服务器
命令中的服务器条目浏览和查看服务器。


什么意思呢?原来我们只能从编辑器,或者系统本身,把文件,图片等资源添加到 AI 上下文,现在可以从 MCP 服务器将资源添加到 AI 上下文了,这就极大地扩展了编辑器的处理范围。
MCP 对采样的支持 (实验)


VSCode 的模型上下文协议 (MCP) 支持现已包含采样功能,允许 MCP 服务器向模型发出请求。
MCP 服务器首次发出采样请求时,系统会要求确认。
可以通过在 MCP:列出服务器
中选择服务器来配置 MCP 服务器可以访问的模型以及查看请求日志。
MCP 支持身份验证
VSCode 现在支持需要身份验证的 MCP 服务器,允许使用自己的帐户运行该服务的 MCP 服务器进行交互。
此功能为客户端实现了 MCP 授权规范,并支持:
- MCP 服务器充当授权服务器。
- MCP 服务器充当资源服务器 (预计将于近日完成)。
如果 MCP 服务器实现了草案规范并利用 GitHub 或 Entra 作为身份验证服务器,那么我们就可以管理哪些 MCP 服务器可以访问我们的帐户:

还可以管理服务器应使用哪个帐户 (通过上一个快速选择中的齿轮按钮):

对于依赖动态客户端注册的其他 MCP 服务器,将身份验证状态放在与其他所有内容相同的位置,例如 Linear:

不仅支持代码授权流程,如果授权服务器支持,还支持设备代码授权流程。
还引入了命令 Authentication: Remove Dynamic Authentication Providers
,允许清理任何动态客户端注册。
这将丢弃分配给 VSCode 的客户端 ID 以及与此身份验证提供程序相关的所有数据。
MCP 开发模式
可以通过在服务器配置中添加 dev 键来启用 MCP 服务器的开发模式。该对象包含两个属性:
watch
:用于监视文件更改的文件全局模 式,更改后将重新启动 MCP 服务器。debug
:允许您使用 MCP 服务器设置调试器。目前,仅支持分别使用 node 和 python 启动的 Node.js 和 Python 服务器进行调试。
json
// .vscode/mcp.json
{
"servers": {
"gistpad": {
"command": "node",
"args": ["build/index.js"],
"dev": {
"watch": "build/**/*.js",
"debug": { "type": "node" }
}
}
}
}
聊天用户体验改进

用户对话与 AI 返回不再是同一侧了,左右进行了区分,同时鼠标放到对话上,可以直接点击关闭按钮撤销当前请求及后续请求。
此外,聊天框中的附件也更加易于查看。
更高效地应用编辑
编辑文件时,VSCode 可以采用两种不同的方法:要么从上到下重写文件,要么进行多次较小的编辑
。
这两种方法有所不同,例如,前者对于大文件来说速度可能较慢,而且中间状态通常无法成功编译。
因此,UI 会根据情况禁用自动保存和波浪线,但仅在需要时才启用。
本次还调整了 保留
和 撤消
命令的按键绑定。现在,保留和撤消单个更改的按键绑定分别使用 Ctrl+Y
和 Ctrl+N
。
本着同样的原则,还调整了 保留
和 撤消文件所有更改的按键绑定
,现在分别为 Ctrl+Shift+Y
和 Ctrl+Shift+N
。
这不仅是为了对齐,也消除了之前与常用编辑命令 (例如 删除所有左侧内容
) 的冲突。
隐式上下文
简化了在聊天中添加当前文件作为上下文的操作。
很多人觉得之前的 眼球切换
功能有点笨重,现在,当前文件将作为建议的上下文项提供,只需选择该项目即可将其添加到聊天上下文中或从中移除。
在提示输入栏中,按 Shift+Tab
,Enter
即可使用键盘快速执行此操作。

以上截图中,文件的 眼球
图标取消了,而是点击整个文件即可将其添加到上下文中。
勾选了有什么用呢?根据笔者的实测,不选择的话,让 AI 写一篇文章,它会创建一个新的文件,如果选择了 33.md
文件,则它会将文章写到这个文件中。
自定义聊天模式 (预览)
默认情况下,聊天视图支持三种内置聊天模式:询问
、编辑
和 代理
。
每种聊天模式都附带一组基本说明,描述 LLM 应如何处理请求,以及可用于此操作的工具列表。
现在可以定义自己的自定义聊天模式,并在聊天视图中使用。
自定义聊天模式允许定制聊天行为并指定该模式下可用的工具。
这对于专门的工作流程或需要向 LLM 提供特定指令的情况尤其有用。
例如,可以创建一个用于规划新功能的自定义聊天模式,该模式仅对代码库具有只读访问权限。
要定义和使用自定义聊天模式,请按照以下步骤操作:
- 使用命令面板中的
聊天:配置聊天模式
命令定义自定义模式。 - 在创建的
*.chatprompt.md
文件中提供自定义聊天模式的说明和可用工具。 - 在聊天视图中,从聊天模式下拉列表中选择聊天模式。

以下示例展示了自定义的 计划
聊天模式:
markdown
---
description: Generate an implementation plan for new features or refactoring existing code.
tools: ['codebase', 'fetch', 'findTestFiles', 'githubRepo', 'search', 'usages']
---
# Planning mode instructions
You are in planning mode. Your task is to generate an implementation plan for a new feature or for refactoring existing code.
Don't make any code edits, just generate a plan.
The plan consists of a Markdown document that describes the implementation plan, including the following sections:
- Overview: A brief description of the feature or refactoring task.
- Requirements: A list of requirements for the feature or refactoring task.
- Implementation Steps: A detailed list of steps to implement the feature or refactoring task.
- Testing: A list of tests that need to be implemented to verify the feature or refactoring task.
这个功能,给我们提供了除三大模式之外的更多可能。
修复任务配置错误
配置任务和问题匹配器可能比较棘手。当您的任务配置出现错误时,可以使用 Github Copilot 提供的 "修复" 操作来快速有效地解决问题。
任务诊断意识
当聊天代理运行任务时,它现在可以感知问题匹配器识别的任何错误或警告。这种诊断上下文使聊天代理能够更智能地响应出现的问题。
终端 cwd 上下文
当代理模式打开终端并启用 Shell 集成功能时,聊天代理会感知当前工作目录 (cwd)。
这能够提供更精准、更上下文感知的命令支持。
浮动窗口改进
当将聊天会话移到浮动窗口时,标题栏中现在有两个新操作可用:
- 将聊天重新停靠到其来源的 VSCode 窗口。
- 在浮动窗口中开始新的聊天会话。

获取工具确认
抓取工具可让我们从网页中提取信息,在确认信息中添加了一条警告消息,以告知您可能存在的提示注入问题。

自定义更多内置工具
现在可以在代理模式或自定义模式下启用或禁用所有内置工具。
例如,禁用 editFiles
可禁止代理模式直接编辑文件,或 runCommands
可运行终端命令。
在代理模式下,选择 配置工具
按钮打开工具选择器,然后选择所需的工具集。

此菜单中的某些条目代表将多个工具分组的工具集。
例如,为模型提供了多个工具来编辑或创建文本文件和笔记本,这些工具可能因模型系列而异,而 editFiles
将所有这些工具分组。
发送元素到聊天室 (实验性)

可以打开简单浏览器并从嵌入式浏览器中选择要添加到聊天中的 Web 元素。
要求用户操作的声音
有时候 AI 操作需要一些时间,我们可能会刷短视频来等待,但很可能不会及时进行下一步确认,那么我们可以通过 accessibility.signals.chatUserActionRequired
配置来提示我们,当任务完成时,提示一个声音。
新的代码动作声音
当触发代码操作时,可以通过 accessibility.signals.codeActionTriggered
配置来控制是否发出声音。
当应用代码操作时,可以通过 accessibility.signals.codeActionApplied
配置来控制是否发出声音。
键入时查找
边输入边查找一直是 查找
控件的默认行为,但现在可以控制是否保留这种行为或禁用它,以便它仅在按下回车键后执行搜索。
配置参数为:editor.find.findOnType
。
带有原生窗口标题栏的自定义菜单
现在,可以使用以下方式指定 Windows 和 Linux 上的菜单栏和上下文菜单以及 macOS 上的上下文菜单的菜单样式。
设置参数为:window.menuStyle
。
native
:由操作系统渲染。custom
:由 VS Code 渲染。inherit
:与标题栏的样式一致window.titleBarStyle
。
Linux 原生窗口上下文菜单
当右键单击自定义标题栏中的应用程序图标时,现在支持本机窗口上下文菜单。

进程浏览器 Web 支持
进程浏览器已转换为使用 Workbench 中编辑器窗口的浮动窗口基础架构。
因此,这也意味着现在支持在连接到远程设备 (例如 Codespaces) 时在 Web 中使用进程浏览器。

Windows Shell 环境发现
现已在 Windows 上为 PowerShell 实现了 Shell 环境发现功能。
这意味着 VS Code 可以继承 PowerShell 配置文件中配置的任何环境,例如 Node.js 通过各种版本管理器配置的 PATH 更新。
未发布的扩展程序警告
现在,当已安装的扩展程序在市场上不再可用时,它们会显示警告指示器,帮助识别未发布或删除的潜在问题扩展程序。

设置搜索建议 (预览)

在这个版本中,在 设置
编辑器中添加了一个开关,用于启动 AI 搜索,以查找语义相似的结果,而不是基于字符串匹配的结果。
例如,当您搜索 增大文本大小
时,AI 搜索会找到 editor.fontSize
设置。
要查看切换按钮,请启用 workbench.settings.showAISearchToggle
设置并重新加载 VSCode。
搜索关键字建议 (预览)
上一个版本,在 搜索
视图中引入了关键字建议功能,帮助我们更快地找到相关结果。
现在,显著提升了建议功能的性能,因此看到结果的速度将比以前快 5 倍左右。
还将设置从聊天扩展移至 VSCode 核心,并将其从 github.copilot.chat.search.keywordSuggestions
重命名为 search.searchView.keywordSuggestions
。
语义搜索行为选项 (预览)
配置参数为:search.searchView.semanticSearchBehavior
。
使用 搜索
视图中的语义搜索,可以根据查询的含义 (而非仅仅匹配文本) 获取结果。
如果不知道要搜索的确切词条,此功能尤其有用。
默认情况下,语义搜索仅在明确请求时才会运行,现在,添加了一个设置来控制何时触发语义搜索:
manual
(默认):仅从 UI 手动触发时运行语义搜索 (Ctrl+I)。runOnEmpty
:当文本搜索没有返回结果时自动运行语义搜索。auto
:对于每个搜索查询,始终同时运行语义搜索和文本搜索。
编辑上下文
此次更新已启用 editor.experimentalEditContextEnabled
在稳定版中默认启用。
这意味着编辑器的输入现在由 EditContext API
提供支持。
此举修复了许多错误,尤其是与输入法 (IME) 体验相关的错误,并将为编辑器提供更灵活、更强大的输入体验奠定基础。
NES 导入建议
上个月,推出了 下次编辑建议
功能,可自动建议添加 TypeScript 和 JavaScript 中缺失的导入语句。
在此版本中,提升了这些建议的准确性和可靠性,并扩展了对 Python 文件的支持。
NES 已为所有 VSCode Insiders
用户启用,并将于 6 月份逐步为 Stable 用户默认启用。
可以随时通过 github.copilot.nextEditSuggestions.fixes
设置自行启用 NES。
NES 接受流程
改进的键盘导航功能现在让接受下一个编辑建议更加流畅。
接受建议后,只要尚未重新开始输入,只需按一次 Tab 键即可继续接受后续建议。
开始输入后,请先按 Tab 键将光标移动到下一个建议,然后才能接受。
Copilot 编码代理集成

借助 Copilot 编码代理,GitHub Copilot
可以像人类开发者一样在后台独立完成任务。
本次更新扩展了 GitHub Pull Requests
扩展,以便更轻松地在 VS Code 中为代理分配和跟踪任务。
扩展添加了以下功能:
分配给 Copilot
:从 VS Code 中的问题或 PR 视图将拉取请求或问题分配给 Copilot。Copilot on My Behalf PR 查询
:快速查看 Copilot 正在为您处理的所有拉取请求。PR 视图
:查看 Copilot 编码代理的状态并在浏览器中打开会话详细信息。
源代码控制历史项目详情

简单来说就是,可以查看提交记录的文件详情了,这可是 gitlens 的杀手锏之一啊,这下好了,gitlens 再次哭晕在厕所。
将历史记录项添加到聊天上下文

现在可以将源代码控制历史记录项添加为聊天请求的上下文。
当想将特定提交或拉取请求的内容作为聊天提示的上下文时,此功能非常有用。
要将历史记录项添加到聊天中,请在聊天视图中使用 添加上下文
> 源代码控制
,然后选择特定的历史记录项。
或者,右键单击源代码控制图表中的历史记录项,然后从上下文菜单中选择 Copilot
> 将历史记录项添加到聊天
。
实例策略
任务 runOptions 现在具有一个 instancePolicy 属性,该属性决定了当任务达到其 instanceLimit 时会发生什么。
选项包括 prompt (默认)
、silent
、terminateNewest
、terminateOldest
和 warn
。
基于语言服务器的终端建议
语言服务器补全现已在终端中提供,可用于交互式 Python REPL 会话。
这将使在终端中收到的语言补全与编辑器中相同,目前已通过 Pylance 支持 Python,并计划在未来扩展到更多语言。
要尝试,请确保启用以下设置:
terminal.integrated.shellIntegration.enabled
python.terminal.shellIntegration.enabled
python.analysis.supportAllPythonDocuments
远程开发
远程开发扩展允许使用 Dev Container
、通过 SSH
或 远程隧道
的远程机器或 Windows Subsystem for Linux (WSL)
作为全功能开发环境。
亮点包括:
- SSH 预连接脚本。
- 远程资源管理器改进。
MCP 扩展 API
扩展程序现在可以发布 MCP 服务器集合。
这使我们能够将 MCP 服务器与扩展程序捆绑在一起,或者构建能够从其他来源动态发现 MCP 服务器的扩展程序。
打包扩展时进行秘密扫描
VSCE 现在会在打包扩展程序时扫描机密信息。
如果在源文件中检测到任何潜在机密信息 (例如,API 密钥、令牌、凭据或环境变量文件,例如。env),VSCE 会在打包过程中显示错误。
这有助于避免意外将敏感信息发布到 Marketplace,请务必在发布扩展程序之前检查并解决所有错误。
如果需要绕过特定检查,可以在运行 VSCE 时使用 --allow-package-secrets <secret_type>
或 --allow-package-env-file
标志。
这些标志可让您配置在打包过程中应跳过哪些机密或环境文件检查。
## 在实际扩展中采用 ESM
上一个版本,我们宣布支持 JavaScript 模块 (ESM),这使得扩展程序能够使用 import 和 export 语句,但目前仅限于针对 NodeJS 扩展主机的情况。
此次更新,完成了 GitHub Issue Notebooks
的实际应用,这并非易事,因为此扩展可以在 NodeJS 扩展主机 (支持 ESM 扩展) 和 Web Worker 扩展主机 (目前不支持 ESM 扩展) 中运行。
这需要更复杂的打包器配置,可以参考其 esbuild-config 中的相关配置。
往期文章:
- VSCode v1.88 发布,更新记录
- VSCode v1.92 发布,性能提升
- VSCode v1.96 发布,AI 功能大幅提升
- VSCode v1.97 发布,功能直追 Cursor
- VSCode v1.98 发布,AI 功能大幅增强
- VSCode v1.99 发布,王者归来,Agent 和 MCP 正式推出
- VSCode v1.100 发布,AI 大幅增强,浮动窗口,扩展支持 ESM,env 默认高亮
最后给大家分享一下我的主打产品,VSCode 编程神器 fnMap (函数地图),欢迎大家体验。
安装地址:sourl.cn/zmnsPf
