Skip to content

大家好,我是农村程序员,独立开发者,行业观察员,前端之虎陈随易。

  • 关注公众号:陈随易,获取最新文章推送 (很多内容只在公众号发布)
  • 个人网站 1️⃣:https://chensuiyi.me
  • 个人网站 2️⃣:https://me.yicode.tech
  • 加入交流群,公众号或者个人网站联系我即可

我会在这里分享关于 编程技术独立开发行业资讯思考感悟 等内容。

所有文章都是古法手打,经过了深度思考和总结,不含 AI 添加剂,请放心食用,一起灵魂交流。

如果本文能给你提供启发或帮助,欢迎动动小手指,一键三连 (点赞评论转发),给我一些支持和鼓励,谢谢。


VSCode v1.100 终于发布了,盯这个版本 2-3天了,官方计划是5月7日发布,临了还是延迟了一天,这是近几个月的常态了。

今天不到凌晨 5 点就醒了,于是便想着打开电脑看一下 VSCode 发版没有,一看终于发布了,悬着的心放下了。

连夜拜读更新日志,并整理成文,给大家提供一个详细的中文版更新说明,以便大家进一步了解本次更新内容,更好地发挥这个编辑器的作用。

以下前几期的文章,一并放在这里了,如果觉得文章不错,对你有所帮助,不如关注一下,转发、评论、点赞,一键三连,万分感谢。

本次更新,一如既往地 AI 占了大量篇幅,这与当下的 AI 编辑器大战不无关系。

没想到 AI 时代,弯道超车的第一人竟是 Cursor,硬生生从市占份额近 70%的 VSCode 嘴里咬下一大坨肉。

如今更是到了拼刺刀的时刻,OpenAI 收购 Windsurf,与 VSCode,Cursor 三足鼎立,2025年接下来的半年,必然是精彩大戏,诸位看官可要把板凳搬好咯。

下面是本次更新正文:

AI

说明文件

说明文件英文全称 Instructions files,可以理解为 自定义说明或规则,提供了一种在 Markdown 文件中描述 AI 模型的通用准则和上下文的方法,例如代码样式规则或要使用的框架。

说明文件不是独立的聊天请求,而是提供可应用于聊天请求的上下文。

说明文件使用 .instructions.md 文件后缀,它们可以位于 用户数据文件夹工作区 中。

我没用过 Cursor,不知道是否跟 Cursor 的 rules 规则一样?有了解的欢迎评论区留言分享,我精力有限,只想把 VSCode 用好,正所谓愿得一人心,白首不分离。

可以通过 chat.instructionsFilesLocations 这个参数,来设置说明文件的位置。

也可以使用 Chat: New Instructions File 命令来创建说明文件,如果选择上图的用户数据文件夹创建说明文件,则可以在不同的设备之间同步,前提是打开了同步设置。

说明文件有两种类型,一种是 全局 的,位于 .github/copilot-instructions.md,没有此文件可以创建,将会自动在每个 AI 聊天上下文中使用。

另外一种则是 局部 的,就是上面所说的 .instructions.md 结尾的文件,需要手动在 AI 聊天上下文中指定。

Markdown
<!-- .github/copilot-instructions.md 文件 -->
---
applyTo: '**/*.md'
---

在文件末尾生成编辑日期,精确到秒。

说明文件由两部分组成,分别是 元数据描述说明元数据 有两个属性,分别是 applyTodescribe,用于指定生效范围和说明提示。描述说明 则是普通的 Markdown 文本,可以使用 Markdown 描述自己的编码实践、首选技术和项目要求。

其中,applyTo 也可以通过逗号分隔多个文件类型,如:applyTo: "**/*.ts,**/*.tsx"

如上配置,在聊天窗口就不用单独对文件末尾追加当前时间进行说明,每次聊天都会默认应用此规则,并更新文档的当前时间。

通过 applyTo,可以设置说明文件对哪些文件类型生效。

提示文件

提示文件英文全称 Prompt files,可以理解为提示文件描述了一个独立完整的聊天请求,包括提示文本、聊天模式和要使用的工具。

提示文件对于创建可重复使用的聊天请求以完成常见任务非常有用。

例如,可以添加一个提示文件来创建前端组件,或执行安全审查。

提示文件使用 .prompt.md 文件后缀,它们可以位于用户数据文件夹或工作区中 (与说明文件一致)。

可以通过 chat.promptFilesLocations 设置提示文件的搜索目录。

在聊天窗口,输入斜杠 /,就会自动弹出所有提示文件以供选择。

提示文件允许在 Markdown 文件中编写完整的提示,然后在聊天中引用。

与补充现有提示的自定义指令不同,提示文件是独立的提示,可以将其存储在工作区中并与他人共享。

使用提示文件,可以为常见任务创建可重复使用的模板,将领域专业知识存储在代码库中,并在整个团队中标准化 AI 交互。

与说明文件一致,提示文件也是有两部分组成,分别是 元数据描述说明

元数据 有 3 个属性,分别是:

  1. mode 运行模式,askeditagent 三者之一。
  2. tools 可在 Agent 模式下使用的工具列表,工具名称数组。
  3. description 提示的简短描述。

在提示文件中,可以使用 ${variableName} 语法引用变量,比如:

  • 工作区变量 - ${workspaceFolder}${workspaceFolderBasename}
  • 选择变量 - ${selection}${selectedText}
  • 文件上下文变量 - ${file}${fileBasename}${fileDirname}${fileBasenameNoExtension}
  • 输入变量 - ${input:variableName}${input:variableName:placeholder}

案例,可重复使用的任务来生成 React 表单

md
---
mode: 'agent'
tools: ['githubRepo', 'codebase']
description: '生成新的React表单组件'
---

你的目标是基于 `#githubRepo contoso/react-templates` 中的模板生成一个新的 React 表单组件。

如果未提供表单名称和字段,请询问。

表单要求:

- 使用表单设计系统组件:[design-system/Form.md](../docs/design-system/Form.md)
- 使用 `react-hook-form` 进行表单状态管理:
- 始终为表单数据定义 TypeScript 类型
- 优先使用 register 来处理不受控制的组件
- 使用 `defaultValues` 来避免不必要的重新渲染
- 使用 `yup` 进行验证:
- 在单独的文件中创建可复用的验证模式
- 使用 TypeScript 类型来确保类型安全
- 自定义用户体验友好的验证规则

更快的 Agent 模式编辑

Agent 模式下实现了对 OpenAI 的 应用补丁 编辑格式 (GPT 4.1 和 o4-mini) 以及 Anthropic 的替换字符串工具 (Claude Sonnet 3.7 和 3.5) 的支持。

这意味着可以享受到显著更快的编辑速度,尤其是在处理大型文件时。

聊天中的基础模型

正在逐步将 GPT-4.1 推广为 VSCode 聊天功能的默认基础模型。

使用 #githubRepo 工具搜索 GitHub 存储库的代码

想象一下,你需要询问一个关于 GitHub 仓库的问题,但你没有在编辑器中打开它。例如,你想知道 microsoft/vscode 仓库中某个特定功能的实现方式。

现在,可以使用 #githubRepo 工具在有权访问的任何 GitHub 仓库中搜索代码片段。此工具将 user/repo 作为额外输入。

例如,如何在 TS #githubRepo microsoft/vscode 中实现工厂模式

也可以使用说明文件来提示何时以及如何使用此工具,如下例所示:

md
---
applyTo: '**'
---

使用 `#githubRepo` 工具和 `microsoft/vscode` 在 VSCode 代码库中查找相关的代码片段。
使用 `#githubRepo` 工具和 `microsoft/typescript` 来解答有关 TypeScript 实现方式的问题。

如果想询问当前正在处理的 repo,​ 可以使用 #codebase

此外,#githubRepo 工具仅用于搜索相关的代码片段,GitHub MCP 服务器(https://github.com/github/github-mcp-server) 提供了处理 GitHub 问题和拉取请求的工具。

使用扩展工具查找 Marketplace 扩展

在聊天中使用扩展工具 (#extensions) 从 Marketplace 中查找扩展程序。

根据聊天提示,该工具会自动调用,或者也可以在提示中使用 #extensions 明确引用它。

该工具会返回与查询匹配的扩展程序列表,可以直接从结果中安装扩展程序。

网页抓取工具的改进

上个月,VSCode 推出了抓取工具 (#fetch),用于直接从聊天中检索网页内容,并将其作为提示的上下文。

此次迭代中,我们对该工具做了几项重大更改,包括:

  • **整个页面作为上下文:**现在将整个页面添加为上下文,而不是子集。有了更大的上下文窗口,能够将整个页面提供给模型。例如,现在可以提出需要尽可能多页面内容的摘要问题。如果确实填满了上下文窗口,抓取工具会足够智能地排除页面中不太相关的部分。这样,就不会超出上下文窗口的限制,同时仍然保留重要的部分。
  • **标准化页面格式 (Markdown):**之前,采用自定义的层级格式来格式化获取到的网页,虽然能够完成任务,但由于其自定义特性,有时难以进行推理。现在,将获取到的网页转换为标准化语言 Markdown。这提高了相关性检测的可靠性,并且大多数语言模型都对这种格式非常熟悉,因此可以更轻松地进行推理。

聊天输入改进

  • **附件:**当在提示文本中使用 # 引用上下文时,它们现在也会显示为附件胶囊,这让更容易理解发送到语言模型的内容。
  • **上下文选择器:**简化了上下文选择器,使选择文件、文件夹和其他附件类型变得更加简单。
  • **完成按钮:**听取了对 完成 按钮的反馈,并将其移除!这样就无需再为会话意外结束而烦恼了。现在,只有当创建新聊天 (Ctrl+L) 时,才会启动新会话。

聊天模式键盘快捷键

键盘快捷键 Ctrl+Alt+I 仍然只能打开聊天视图,但 Ctrl+Shift+I 快捷键现在可以打开聊天视图并切换到 Agent 模式。

如果想为其他聊天模式设置键盘快捷键,每个模式都有一个命令:

  • workbench.action.chat.openAgent
  • workbench.action.chat.openEdit
  • workbench.action.chat.openAsk

通过 Agent 模式编辑自动修复诊断

如果在 Agent 模式下编辑文件时出现新的错误,现在可以检测到这些错误,并自动建议后续编辑。

这意味着无需发送后续提示来要求 Agent 模式修复任何错误,也可以使用 github.copilot.chat.agent.autoFix 命令禁用此行为。

在 Agent 模式下处理撤消和手动编辑

以前,在 Agent 模式会话期间进行手动编辑可能会使模型混乱。

现在,Agent 会收到有关更改的提示,并在必要时在编辑可能已更改的文件之前重新读取文件。

对话摘要和提示缓存

本次更新对 Agent 模式提示的构建方式进行了一些更改,以优化提示缓存。

提示缓存是一种通过维护提示的稳定前缀来加快模型响应速度的方法,下一个请求可以从该前缀恢复,结果是每个请求都会更快一些,这在具有大量上下文的重复性请求系列中尤其有效。

当对话变得很长,或者上下文变得非常大时,可能会在 Agent 模式会话中看到 摘要对话历史记录 消息:

这不会对整个对话按先进先出 (FIFO) 的顺序保存,从而破坏缓存,而是将迄今为止的对话压缩为最重要的信息和当前任务状态的摘要。

这样可以保持提示前缀的稳定性,并加快回复速度。

MCP 对可流式 HTTP 的支持

此版本新增了对模型上下文协议服务器的 Streamable HTTP 传输的支持。

Streamable HTTP 服务器的配置方式与现有 SSE 服务器类似,并且我们的实现与 SSE 服务器向后兼容:

json
{
    "servers": {
        "my-mcp-server": {
            "url": "http://localhost:3000/mcp"
        }
    }
}

MCP 支持图像输出

现在支持将图像作为其工具输出的一部分生成的 MCP 服务器。

请注意,并非所有语言模型都支持从工具输出中读取图像。例如,虽然 GPT-4.1 具备视觉功能,但目前不支持从工具中读取图像。

增强 MCP 服务器的输入、输出和进度

本次更新,增强了显示 MCP 服务器工具输入和输出的 UI,并且还增加了对 MCP 新进度消息的支持。

MCP 配置生成使用输入

为了帮助保证机密安全,MCP:添加服务器 命令生成的 AI 辅助配置现在会为任何机密生成 inputs,而不是将它们内联到结果配置中。

内联聊天 V2 (预览版)

VSCode 团队一直在开发改进版的内联聊天 Ctrl+I

它的主题仍然是 将聊天功能融入代码,但在后台,它使用与聊天编辑相同的逻辑。

这意味着可以更好地利用现有上下文,并制定更优的代码编辑策略。

我们可以通过 inlineChat.enableV2 配置启用内联聊天 v2。

此外,现在有一个更轻量级的用户体验,可以选择性启用。

通过 inlineChat.hideOnRequest 设置,内联聊天会在收到请求后立即隐藏,然后,它会最小化到聊天编辑覆盖层,以便用户接受或放弃更改,或者恢复内联聊天控件。

选择并附加 UI 元素进行聊天 (实验)

在开发 Web 应用程序时,可能想向 Chat 询问网页上的特定 UI 元素,现在,可以使用内置的简易浏览器将 UI 元素作为上下文附加到聊天中。

通过内置的简易浏览器 (Simple Browser: Show) 命令打开任何本地托管的网站后,现在会显示一个新的工具栏,可以在其中选择 开始 来选择网站中所需的任何元素,这将附加所选元素的屏幕截图以及该元素的 HTML 和 CSS。

相关配置参数如下:

  • chat.sendElementsToChat.attachCSS 启用或禁用附加相关 CSS。
  • chat.sendElementsToChat.attachImages 启用或禁用附加所选元素的屏幕截图。

此实验功能默认在所有简单浏览器中启用,但可以使用 chat.sendElementsToChat.enabled 命令禁用。

以 Agent 模式创建和启动任务 (实验)

在上一版本中,引入了 github.copilot.chat.newWorkspaceCreation.enabled (实验性) 设置,以 Agent 模式启用工作区创建。

现在,在此创建流程结束时,系统会提示创建并运行用于启动应用或项目的任务,这简化了项目启动流程,并实现了轻松的任务复用。

无障碍设施

合并编辑器改进

合并编辑器现在更易于访问。

要了解可用的操作,请在合并编辑器中打开辅助功能帮助对话框 (Alt+F1)。

关键操作包括 Merge Editor: Complete Merge (Ctrl+Enter) 和 Toggle Between Merge Editor Inputs (Ctrl+Shift+T)。

当前聚焦的输入现在也会向辅助技术播报。

下一步编辑建议增强功能

新的环境 accessibility.signals.nextEditSuggestion 会在预测建议可用时通知。

可以通过无障碍视图 (Alt+F2) 查看并接受建议。

此外,accessibility.signals.diffLineAddedaccessibility.signals.diffLineRemoved 在导航期间提供音频提示,以使差异审查变得可访问。

从可访问的视图查看 Copilot 用户请求

Agent 模式下,工具调用或终端命令有时需要用户权限才能运行。

可以在可访问的视图 (Alt+F2) 中查看这些操作。

独特的无障碍声音

accessibility.signals.save.sound 现在有自己独特的声音,不再与 accessibility.signals.terminalCommandSucceeded.sound 共享声音。

Editor Experience 编辑经验

浮动窗口模式

VSCode 中的浮动窗口允许将编辑器和某些视图从主窗口移到较小的窗口中,以实现轻量级的多窗口设置。浮动窗口有两种新模式:

  • 紧凑:我们隐藏某些 UI 元素,为实际内容腾出更多空间。
  • 始终在最上面:窗口保持在所有其他窗口的顶部,直到退出此模式。

以下是如何将浮动编辑器窗口转换为紧凑模式的示例:

当在新窗口中创建聊天时,我们默认使用紧凑模式,结合窗口始终置顶的选项,还可以始终保留聊天视图来提问。

如果喜欢使用键盘快捷键执行这些操作,有以下新的命令:

  • workbench.action.toggleWindowAlwaysOnTop:切换至始终位于顶部模式。
  • workbench.action.enableWindowAlwaysOnTop:设置浮动窗口始终位于最顶层。
  • workbench.action.disableWindowAlwaysOnTop:将浮动窗口设置为正常。
  • workbench.action.toggleCompactAuxiliaryWindow:切换紧凑模式。
  • workbench.action.enableCompactAuxiliaryWindow:启用紧凑模式。
  • workbench.action.disableCompactAuxiliaryWindow:禁用紧凑模式。

注意:即使在紧凑模式下,也可以创建复杂的编辑器布局并打开其他编辑器。

辅助侧边栏默认可见性

默认情况下,打开新的工作区或窗口时,辅助侧边栏会隐藏。

使用新设置 workbench.secondarySideBar.defaultVisibility,可以控制辅助侧栏是否在新工作区或窗口中自动打开,有以下选择:

  • hidden:这是默认设置,保持辅助侧边栏隐藏。
  • visibleInWorkspace:如果打开文件夹或多根工作区,这将打开辅助侧栏。
  • visible:这始终会打开辅助侧边栏。

请注意,打开工作区或窗口后,可见性将成为工作区状态并覆盖设置值。关闭辅助侧栏后,它将在该工作区或窗口中保持关闭状态。

强制扩展签名验证

现在所有平台 (Windows、macOS 和 Linux) 都需要进行扩展签名验证。

此前,此验证仅在 Windows 和 macOS 上是强制要求的,在此版本中,Linux 现在也强制执行扩展签名验证,确保所有扩展在安装前都经过正确验证。

此项变更可防止安装潜在的恶意扩展程序,从而进一步增强安全性。

了解更多恶意扩展程序的链接

当扩展程序被识别为恶意扩展程序时,VSCode 现在会提供指向更多信息的链接,解释该扩展程序被标记的原因。

这些 了解更多 链接可将用户引导至 GitHub 问题或包含安全问题详细信息的文档,帮助我们更好地了解潜在风险。

防止在 VSCode 稳定版中安装 Copilot Chat 预发布版本

VSCode 现已阻止在 VSCode Stable 中安装 Copilot Chat 扩展 的预发布版本。

这有助于避免我们无意中安装 Copilot Chat 预发布 版本并陷入崩溃状态的情况。

这意味着只能在 VSCode 的 Insiders 版本中安装 Copilot Chat 扩展 的预发布版本。

打开无焦点视图的命令

现在可以在不获取焦点的情况下打开视图 (树形视图和 WebView 视图)。

这对于希望打开视图但又不想将焦点从当前编辑器移开的扩展程序和键盘快捷键非常有用。

命令为 your-view-id.open,它接受一个属性包参数:{ preserveFocus: boolean}

带有关键字建议的语义文本搜索 (实验)

语义文本搜索现已支持 AI 驱动的关键词建议,启用此功能后,将开始看到相关的参考资料或定义,它们或许能帮助找到所需的代码。

代码编辑

新的下一个编辑建议 (NES) 模型

本次更新推出一个支持 NES 的新模型,旨在提供更快、更符合上下文的代码推荐,可以通过 github.copilot.nextEditSuggestions.enabled 配置,默认是启用的。

更新后的模型性能更佳,提供的建议延迟更低,并且建议的干扰性更低,与最近的编辑内容更加紧密地契合。

此次更新是持续致力于改进 Visual Studio Code 中 AI 辅助开发工具的一部分。

导入建议

Next 编辑建议 (NES) 现在可以自动建议在 JavaScript 和 TypeScript 文件中添加缺失的导入语句。

启用此功能,请设置 github.copilot.nextEditSuggestions.fixes 为启用状态,计划在未来的更新中通过支持从其他语言导入来进一步增强此功能。

## 以 HTML 或 Markdown 格式生成替代文本

现在可以在 HTML 和 Markdown 文件中生成或更新现有的替代文本。

导航到包含嵌入图像的任意行,然后通过 Ctrl+. 或选 灯泡图 触发快速修复。

可变行高

现在可以通过在 IModelDecorationOptions 类型中设置行高值,在 monaco 编辑器上定义可变的行高。

如果在一行上设置了两种行高,则该行将使用两者中的最大者。

注意,为了简单起见,目前仅在相应装饰范围的第一行设置行高。在下面的动态图中,第 24 行和第 32 行的行高渲染得比默认行高更大。

这个功能暂时还不能被扩展使用,但经过更多测试后将会推出。

笔记本

查找和替换历史记录持久化

笔记本查找控件现在支持查找和替换输入字段的持久历史记录。

该功能在重新加载后仍会保留,并由 editor.find.historyeditor.find.replaceHistory. 设置控制。

将单元格输出拖放到聊天中

为了增强聊天中对单元格输出的现有支持,现在可以将输出拖动到聊天视图中,以获得无缝的附件体验。

目前仅支持图像和文本输出。具有图像 MIME 类型的输出可直接拖动,但为了避免与文本选择冲突,文本输出需要按住 Alt 修饰键才能启用拖动。

Agent 模式的笔记本工具

Chat 现在有一个 LLM 工具来运行笔记本单元,这允许 Agent 根据单元运行结果执行更新或在构建笔记本时执行自己的数据探索。

获取内核状态

Agent 可以使用内核状态工具找出当前内核会话中已执行的单元,并读取活动变量。

列出包/安装包

Jupyter 扩展提供了一些工具,用于列出并安装软件包到用作 Notebook 内核的环境中。

如果 Python 环境扩展可用,则该操作将委托给该扩展;否则,它将尝试使用 pip 软件包管理器。

源代码控制

用于阶段性变更的快速差异装饰

为了满足长期存在的功能请求,在此版本中为暂存更改添加了快速差异编辑器装饰。现在,可以直接从编辑器中查看暂存更改,而无需打开源代码管理视图。

可以使用以下主题标记自定义阶段性变更快速差异装饰的颜色:editorGutter.addedSecondaryBackgroundeditorGutter.modifiedSecondaryBackgroundeditorGutter.deletedSecondaryBackground

如果不想看到分阶段更改的快速差异装饰,可以使用编辑器边栏上下文菜单中的 差异装饰 子菜单来隐藏它们。

调试

反汇编视图上下文菜单

在社区的贡献下,现在在反汇编视图中有一个上下文菜单。

JavaScript 调试器网络视图

Node.js 的最新版本增强了其网络调试功能,实验性网络视图将在支持良好的最新 Node.js 版本 (v22.14.0 及以上版本) 上默认启用。

语言

显示浏览器对 CSS 和 HTML 的支持

当鼠标悬停在 CSS 属性、HTML 元素或 HTML 属性上时,可以使用 Baseline 看到该属性或元素在各个浏览器上的支持情况的摘要。

env 文件自动高亮

简单来说,这个用于将 环境变量文件 进行语法高亮的插件 DotEnv 扩展将成为过去式,大家安装了这个扩展的,现在可以卸载了。

JavaScript 和 TypeScript 的可扩展悬停 (实验性)

此功能允许在悬停控件中使用 +- 来显示更多或更少的类型信息。

远程开发

开发容器指令文件

Dev Container 功能和镜像现在包含描述其工具和配置的说明文件。

VSCode 聊天可以自动使用此上下文,从而提高开发过程中建议的相关性和准确性。

对扩展的贡献

python 分支机构覆盖支持

Python 版测试资源管理器现已支持分支覆盖率。请注意,要使用此功能,coveragepy 版本必须为 >= 7.7

可以通过运行 pip install coverage==7.7 来升级覆盖率。

Python 环境快速创建命令

Python 环境扩展(预览版) 现已包含两个聊天工具:Get Python Environment InformationInstall Python Package

要使用这些工具,可以通过在提示符中添加 #pythonGetEnvironmentInfo #pythonInstallPackage 直接引用它们,或者代理模式会根据情况自动调用该工具。

这些工具可以根据文件或工作区上下文无缝检测相应的环境信息,并通过精确的环境解析来处理软件包安装。

使用 Pylance 时的颜色选择器

Pylance 现在可以直接在编辑器中显示已识别 Python 文件中颜色值的交互式色板,让我们可以更轻松地实时查看和选择颜色。

要试用此功能,可以启用 python.analysis.enableColorPicker 配置,支持的格式包括 #RGB (如 “#001122”) 和 #RGBA (如 “#001122FF”)。

AI 代码操作:转换格式字符串 (实验性)

使用 Pylance 时,有一个全新的实验性 AI 代码操作,用于将字符串连接转换为 f-字符串format()

要试用此功能,请在选择要转换的字符串中的符号时,通过灯泡图标选择 使用 Copilot 转换为 f-字符串使用 Copilot 转换为 format() 调用,或者通过 Ctrl + .Cmd + . 进行操作。

此体验可通过以下设置启用:

json
{ "python.analysis.aiCodeActions": { "convertFormatString": true } }

一旦定义了新的符号 (例如,一个类或一个函数),就可以选择 使用 Copilot 代码操作生成符号,并让 AI 处理其实现。

如果需要,可以使用 Pylance 的 移动符号代码操作 将其移动到其他文件。

GitHub 拉取请求和问题

请求体验增强

GitHub Pull Requests 扩展功能取得了更多进展,它使您可以处理、创建和管理 Pull Request 和 Issue,新功能包括:

  • 在聊天中询问有关活动拉取请求的问题,例如 解决#activePullRequest 中的所有评论
  • 在 Web 视图中查看问题,就像查看拉取请求一样。
  • 完善并调整 拉取请求问题通知 视图。
  • 为 GitHub 的 Project Padawan 的发布做好准备,将问题分配给 Copilot@ 提及 Copilot,并确保它在 UI 中正确显示。

扩展作者

Text Encodings 文本编码

VSCode 最终完成了用于在 VS Code 中处理文本编码的 API。

具体来说,这个新的 API 允许我们:

  • 获取 TextDocument 的当前 encoding
  • 使用特定 encoding 打开 TextDocument
  • 使用特定 encodingstring 编码为 Uint8Array
  • 使用特定 encodingUint8Array 解码为 string

ESM 对扩展的支持

NodeJS 扩展主机现在支持使用 JavaScript 模块 (ESM) 的扩展。

它只需要在扩展的 package.json 文件中添加 "type": "module" 条目即可。

这样,JavaScript 代码就可以使用 importexport 语句,包括特殊的 module import('vscode')

请注意,ESM 尚未支持 Web Worker 扩展主机,有一些技术挑战需要先解决。

建议的 API

调用图像的工具

上一次迭代中,添加了一个建议的 API,以便扩展程序可以附加图像并向语言模型发送视觉请求。

本次迭代中,扩展了此 API,使工具调用结果也能够包含图像。

扩展贡献的 MCP 服务器

扩展程序可以使用新提出的 API 以编程方式向编辑器贡献扩展。

这是用户在设置或 mcp.json 中为每个服务器硬编码配置的替代方案。

MCP 工具注释

VSCode 现在将显示配置了相应工具注释的工具的 MCP 服务器的可读名称。

此外,注释中标有 `readOnlyHint:true` 的工具将无需用户确认即可运行。

何以解忧,唯有代码。不忘初心,方得始终。