2024年10月(版本1.95)

安全更新: 以下扩展有安全更新: ms-python.pythonms-vscode-remote.remote-ssh.

更新 1.95.1: 此次更新解决了这些问题

更新 1.95.2: 本次更新解决了这些问题

更新 1.95.3: 此次更新解决了这些问题

下载:Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap


欢迎来到2024年10月发布的Visual Studio Code。此版本中有许多更新,我们希望您会喜欢,一些关键亮点包括:

如果您想在线阅读这些发布说明,请访问更新code.visualstudio.com上。 内测用户:想要尽快尝试新功能吗?您可以下载每晚的内测版构建,并在最新更新可用时立即尝试。

GitHub Copilot

Copilot 功能可能会经历不同的早期访问阶段,这些阶段通常通过设置启用和配置。

  • 实验性 - 查看 实验性功能 (@tag:experimental)

    此设置控制一个正在积极开发的新功能,可能不稳定。它可能会更改或移除。

  • 预览 - 查看 预览功能 (@tag:preview)

    此设置控制一个新功能,该功能仍在完善中,但已可供使用。欢迎提供反馈。

使用Copilot Edits启动代码编辑会话

Copilot Edits 目前处于预览阶段

设置: github.copilot.chat.edits.enabled

通过Copilot Edits,您可以启动一个由AI驱动的代码编辑会话,在此会话中您可以快速迭代代码更改。根据您的提示,Copilot Edits会在您的工作区中的多个文件中提出代码更改建议。这些更改直接在编辑器中应用,因此您可以在完整的代码上下文中快速就地查看它们。

Copilot Edits 非常适合在多个文件上进行大规模更改的迭代。它将 Copilot Chat 的对话流程和 Inline Chat 的快速反馈结合在一起,提供了一种全新的体验。您可以在侧边进行持续的多轮聊天对话,同时受益于内联代码建议。

只需三个步骤即可开始使用Copilot编辑:

  1. 通过从聊天菜单中选择打开Copilot编辑来启动编辑会话,或按⇧⌘I (Windows Ctrl+Shift+I, Linux Ctrl+Shift+Alt+I)

    截图显示命令中心中的Copilot菜单,突出显示了打开编辑会话项

  2. 将相关文件添加到工作集中,以向Copilot指示您想要处理哪些文件。

  3. 输入一个提示,告诉Copilot你想要进行的编辑!例如,Add a simple navigation bar to all pagesUse vitest instead of jest

在我们的文档中获取更多关于Copilot Edits的详细信息。立即尝试并通过我们的问题提供您的反馈!

在侧边栏中聊天

聊天视图的新默认位置是次级侧边栏。通过使用次级侧边栏,您可以随时打开聊天,同时仍然可以使用其他视图,如文件资源管理器或源代码控制。这为您在VS Code中提供了更集成的AI体验。您可以通过使用⌃⌘I (Windows, Linux Ctrl+Alt+I)键盘快捷键快速进入聊天。

聊天视图在移动后的新位置。

随着在命令中心旁边引入新的聊天菜单,只需点击一下即可打开带有聊天的辅助侧边栏:

聊天菜单让您可以访问Copilot Chat的最常见任务。如果您希望隐藏此菜单,提供了一个新的设置 chat.commandCenter.enabled

指挥中心中的聊天菜单。

注意: 如果您之前安装了GitHub Copilot,在您之前使用Chat的位置会显示一个视图,使您能够将Chat视图恢复到旧位置,如果这对您更合适的话。

聊天视图在其旧位置显示聊天已移至辅助侧边栏。

Copilot 代码审查

Copilot 代码审查目前处于预览阶段

通过Visual Studio Code中的GitHub Copilot代码审查,您现在可以在编写代码时获得快速的、由AI驱动的反馈,或者在推送之前请求对所有更改进行审查。Visual Studio Code中的GitHub Copilot代码审查目前处于预览阶段。尝试一下并通过我们的问题提供反馈。

在VS Code中使用Copilot代码审查有两种方式:

  • 审查选择:为了快速进行审查,请在编辑器中选择代码,然后从编辑器上下文菜单中选择Copilot > 审查和评论,或使用命令面板中的GitHub Copilot: 审查和评论命令。(此功能处于预览阶段。)

  • 审查更改:为了更深入地审查所有未提交的更改,请在源代码控制视图中选择Copilot 代码审查按钮,您也可以在 GitHub.com 上的拉取请求中执行此操作。(加入等待列表,对所有 Copilot 订阅者开放)

    请求审查未提交的更改

Copilot的反馈以评论的形式显示在编辑器中,附加到您的代码行上。在可能的情况下,评论包括可操作的代码建议,您可以一次性应用这些建议。

截图显示评论代码选择的评论

要了解更多关于Copilot代码审查的信息,请前往GitHub代码审查文档

Copilot 对代码选择的快速审查可以提供符合您团队或项目特定实践的反馈,前提是您提供了正确的上下文。在使用自定义审查指令审查选择时,您可以通过 github.copilot.chat.reviewSelection.instructions 设置来定义这些特定要求。类似于 代码生成和测试生成指令,您可以直接在设置中定义指令,也可以将它们存储在单独的文件中并在设置中引用。

以下代码片段展示了审查指令的示例:

  "github.copilot.chat.reviewSelection.instructions": [
    {
      "text": "Logging should be done with the Log4j ."
    },
    {
      "text": "Always use the Polly library for fault-handling."
    },
    {
      "file": "code-style.md" // import instructions from file `code-style.md`
    }
  ],

code-style.md 文件内容的一个示例:

Private fields should start with an underscore.

A file can only contain one class declaration.

自动聊天参与者检测

设置: chat.experimental.detectParticipant.enabled

GitHub Copilot 有几个内置的聊天参与者,例如 @workspace,您可能还安装了其他扩展,这些扩展也提供了聊天参与者。

为了使与聊天参与者使用自然语言更加容易,Copilot Chat 将自动将您的问题路由到合适的参与者或聊天命令,如果可能的话。

如果自动选择的参与者不适合您的问题,您仍然可以选择聊天响应顶部的重新运行而不链接,将您的问题重新发送给Copilot。

聊天视图截图,显示如何自动检测到'@workspace'参与者。

本月,我们还添加了一个操作,允许您在每次请求的基础上跳过此检测行为。当您输入聊天提示时,默认操作是发送并分派,其中包括参与者检测。如果您选择发送,请求将直接发送到Copilot Chat,并且不会自动分派给聊天参与者。

聊天视图中可用的“发送”命令列表。

你也可以通过chat.experimental.detectParticipant.enabled设置完全禁用自动参与者检测。

控制当前编辑器上下文

Copilot Chat 总是自动将您当前的选择或当前可见的代码作为上下文包含在您的聊天请求中。大型语言模型(LLMs)通常擅长理解一段上下文是否相关。但有时,当您提出的问题与当前编辑器无关时,包含此上下文可能会影响模型对您问题的解释。

我们现在在聊天输入中显示一个特殊的附件控件,它提供了关于编辑器上下文的提示,并允许您切换是否包含编辑器上下文。

聊天输入中的当前编辑器上下文控制,显示上下文未包含在内。

编辑器上下文的行为没有变化。当活动编辑器有选择时,仅包含选择部分。否则,仅包含滚动到视图中的代码。您仍然可以通过使用回形针按钮或在聊天提示中输入#来附加其他文件或完整文件。

Copilot Chat 的一个常见用例是询问关于工作区中代码的问题,例如使用 /tests 为选定的代码生成新的单元测试,或者询问 @workspace 以在项目中查找某些特定的类或函数。在这个里程碑中,我们为 Copilot 在聊天响应中提到的任何工作区符号添加了增强链接。这些符号链接可以帮助您更好地理解 Copilot 的响应,并了解更多关于其中使用的符号的信息。

符号链接在响应中呈现为小药丸,就像我们上一个里程碑中添加的文件链接一样。要开始了解更多关于符号的信息,只需选择符号链接即可跳转到该符号的定义:

你也可以将鼠标悬停在符号链接上,查看符号定义在哪个文件中:

悬停在符号链接上以查看其定义所在的文件。

要开始更详细地探索一个符号,只需右键单击符号链接以调出上下文菜单,其中包含诸如转到实现转到引用等选项:

使用符号链接的上下文菜单以了解更多关于符号的信息。

基本符号链接应适用于任何支持“转到定义”的语言。更高级的IntelliSense选项,如“转到实现”,也需要该语言的支持。确保安装语言扩展,以便为Copilot响应中使用的任何编程语言获得最佳的符号支持。

在问题悬停中使用Copilot操作进行修复

当你在编辑器中悬停在一个问题上时,现在会包含一个使用Copilot修复问题的操作。此操作适用于有可用修复的问题,并且修复由Copilot生成。

问题悬停显示使用Copilot操作的修复。

工作区索引

@workspace 允许您询问有关当前项目中代码的问题。这是通过使用 GitHub 的代码搜索 或 VS Code 构建的智能本地索引来实现的。在这个里程碑中,我们添加了更多的 UI 元素,让您了解如何使用这个工作区索引。

首先,新的GitHub Copilot: 构建本地工作区索引命令允许您显式地开始索引当前工作区。这种索引通常会在您第一次提出@workspace问题时自动启动。有了这个新命令,您可以在任何时候开始索引。该命令还支持对更大的工作区进行索引,目前最多可达2000个文件(不包括被忽略的文件,如node_modulesout目录)。

在构建索引时,我们现在还会在状态栏中显示一个进度项:

显示当前工作空间索引进度的状态栏项。

索引包含数百个文件的工作空间可能需要一些时间。如果您在构建索引时尝试询问@workspace问题,Copilot不会等待,而是尝试通过使用可以更快构建的更简单的本地索引来快速响应。我们现在在响应中显示一个警告,当这种情况发生时:

一个警告显示在响应中,告诉用户Copilot索引正在构建中。

请注意,在这种情况下,Copilot仍然能够回答问题,尽管它使用了更简单的本地索引而不是更高级的索引。这通常是情况,尽管更模糊或复杂的问题可能只有在构建了更智能的索引后才能回答。还要记住,如果你的工作区由GitHub仓库支持,我们可以使用GitHub的代码搜索来回答问题。这意味着使用代码搜索而不是更简单的本地索引。

聊天跟进改进

设置: github.copilot.chat.followUps

为了在聊天视图中为聊天对话腾出更多空间,我们使后续提示更加简洁,并且默认情况下,它们只出现在第一次对话中。配置github.copilot.chat.followUps设置以更改后续提示的出现时间:

  • firstOnly (默认) - 后续提示仅在第一次轮次出现
  • always - 后续提示始终显示
  • never - 禁用后续提示

按相关性排序在语义搜索中(实验性)

设置: github.copilot.chat.search.semanticTextResults

上一个里程碑中,我们介绍了使用Copilot进行语义搜索的能力,以获取与您的查询语义相关的搜索结果。现在,我们通过按相关性排序改进了搜索结果。来自更相关片段的关键词匹配被认为总体上更相关。

工作台

多个GitHub账户

将上个月的功能升级为默认行为,现在可以在VS Code中同时登录多个GitHub账户。

账户菜单中的多个GitHub账户。

以下是您可能需要多个账户的几种情况:

  • 使用Account1进行设置同步,使用Account2进行GitHub拉取请求扩展
  • 使用 Account1 用于 GitHub 扩展(用于推送)和 Account2 用于 GitHub Copilot

要使用此功能,只需触发登录操作(无论是通过内置功能如设置同步还是通过扩展程序),您将获得登录到不同帐户的选项。此功能还与帐户偏好快速选择很好地配合使用,如果您需要在稍后阶段更改所选帐户。

虽然大多数情况下,您现有的扩展应该可以继续正常工作,但某些行为可能在这个多账户世界中还不能完美配合。如果您认为有改进的空间,请务必在那些扩展上提出问题。借助相对较新的vscode.authentication.getAccounts('github') API,扩展在处理多个账户方面拥有很大的能力。

更改账户偏好时添加额外账户

上个月,我们介绍了账户偏好快速选择,这对于更改扩展的首选账户非常有用,如果您因任何原因需要更改。

我们收到的反馈之一是希望有一种简单的方法来添加尚未登录的账户。在这个里程碑中,我们在快速选择中引入了一个新项目,使您能够做到这一点。使用使用新账户...项目来启动身份验证流程,并一次性将该账户设置为账户偏好。

在账户偏好快速选择中使用新账户选项。

实验性和预览设置的设置编辑器指示器

以前,从设置编辑器中查看时,并不总是清楚哪些设置是实验性或预览的。为了突出显示实验性和即将推出的功能,设置编辑器现在在实验性和预览设置旁边显示指示器。您可以在设置编辑器搜索框中输入@tag:experimental@tag:preview来相应地过滤设置。

扩展作者可以在他们的设置中添加“实验性”或“预览”标签,以在设置编辑器中显示相应的指示器。

主题: Light Pink (在 vscode.dev 上预览)

更多个人资料图标

在这个里程碑中,我们为个人资料添加了更多的图标。现在,您可以从更广泛的图标中选择,以自定义您的个人资料。

显示所有可用个人资料图标的图片,突出显示新添加的图标。

在面板中查看图标

在工作台面板区域,视图通常显示为标题栏中的标签(例如,TERMINALOUTPUT)。然而,在较小的屏幕上,这些标签可能会超出可用空间,导致某些视图溢出到下拉菜单中。

为了解决这个问题,我们添加了一个新的设置:workbench.panel.showLabels。当禁用时,视图将显示为图标而不是标签,从而节省水平空间并减少溢出。

workbench.panel.showLabels: true

面板区域显示每个面板的标签。

workbench.panel.showLabels: false

面板区域显示每个面板的图标,没有标签。

编辑器

出现高亮延迟

在这个里程碑中,我们引入了设置 editor.occurrencesHighlightDelay,以便您控制编辑器中出现高亮显示的延迟。降低此延迟值可以使在使用语义高亮时,编辑器的响应感觉更加灵敏。

网页版VS Code

VS Code for the Web 支持本地文件事件

当使用版本129的Chrome或Edge时,现在打开https://insiders.vscode.dev并加载本地文件夹时支持文件事件。如果您在浏览器外部对打开的工作区的文件和文件夹进行更改,这些更改会立即在浏览器内反映出来。

此功能利用了新的FileSystemObserver接口,该接口被提议作为网络的新API。

对扩展的贡献

Copilot 扩展展示

在这个里程碑中,团队致力于构建几个扩展,展示了VS Code中的Copilot可扩展性。这些扩展展示了以下功能:

尝试这些扩展,看看如何在您自己的扩展中扩展Copilot。

Extension Links
GitHub Pull Requests Marketplace
Web Search for Copilot Marketplace, source code
MermAId diagram generation with Copilot Marketplace
Data Analysis for Copilot Marketplace, source code
VS Code Commander Marketplace
Vision for Copilot Preview Marketplace

GitHub 拉取请求

版本 0.100.0GitHub Pull Requests 扩展增加了 Copilot 集成:

  • 在聊天视图中使用@githubpr聊天参与者来搜索问题、总结问题/拉取请求,并为问题建议修复。@githubpr使用多种语言模型工具来完成这些任务。
  • 还有一个新的通知视图,显示GitHub通知,并有一个操作可以使用Copilot优先处理它们。

要尝试所有功能,您可以设置以下设置:

  • githubPullRequests.experimental.chat
  • githubPullRequests.experimental.notificationsView
使用Copilot进行问题搜索

新的@githubpr聊天参与者可以在GitHub上搜索问题。

Copilot问题搜索最多未解决的错误。

在显示问题时,@githubpr 会显示一个Markdown表格,并尝试根据搜索选择最佳的列来显示。

Copilot 问题搜索,查找十月份已关闭的问题。

使用Copilot进行总结和修复

问题视图中列出的每个问题现在都有一个新操作,使用Copilot总结,该操作会打开聊天面板并总结所选问题。我们还添加了另一个操作,使用Copilot修复,该操作会总结所选问题并使用工作区上下文来建议修复方案。

使用Copilot进行通知优先级排序(实验性)

在这个里程碑中,我们添加了一个实验性的通知视图,该视图列出了你在各个仓库中未读的通知。默认情况下,通知按最近更新的降序排列,但你可以使用视图标题的...菜单中的使用Copilot按优先级排序操作,让Copilot优先处理通知。选择每个通知会触发一个操作,使用Copilot总结通知。该视图还包含易于访问的操作,用于将通知标记为已读,或在GitHub.com上打开通知。

通知视图

Copilot的网页搜索

此扩展展示:

  • 聊天参与者与工具API
  • prompt-tsx
  • 如何利用GitHub Copilot提供的语言模型

源代码可以在GitHub上找到

描述

在Copilot中直接从网络获取最新和最相关的信息。

这是由两种不同的搜索引擎之一提供支持的,通过websearch.preferredEngine配置:

作为用户,您需要从这些服务之一获取API密钥才能使用此扩展程序。首次使用时,它会要求您输入该密钥,并使用VS Code的内置秘密存储进行存储,也可以通过VS Code的身份验证堆栈进行管理,就像您管理GitHub帐户一样。

聊天参与者

此扩展贡献了@websearch聊天参与者,它能够处理可能需要来自互联网的实时信息的问题。 您可以使用@websearch when did Workspace Trust ship in vscode?手动调用它。

问题“Workspace Trust何时在vscode中发布”以及显示参考和详细信息的答案。

聊天工具

此扩展还贡献了#websearch聊天语言模型工具,它与参与者类似,但在其他聊天参与者中提供来自网络的上下文非常有用。例如:

  • @workspace /new #websearch 创建一个使用最流行框架编写的Python网络应用程序

问题 "使用最流行的框架创建一个用Python编写的新Web应用程序" 使用带有/new的websearch变量。结果是一个使用Django的项目。

此外,如果您正在开发自己的聊天参与者或工具,您可以通过vscode.lm.invokeTool API使用此聊天工具。

使用Copilot生成Mermaid图表

vscode-mermAId (vscode:extension/ms-vscode.copilot-mermaid-diagram) 扩展为 GitHub Copilot 贡献了一个新的聊天参与者,用于使用 Mermaid(一种受 Markdown 启发的图表和绘图工具)构建和修改代码的可视化。

创建和渲染图表

通过聊天对话创建任何类型的Mermaid支持的图表,并使用/iterate斜杠命令来优化图表。特定图表可用的斜杠命令为模型提供额外指导。

为某些图表类型(如流程图)添加了链接,以指向用于构建图表的参考信息。

Mermaid 可视化大纲视图

打开Visual Outline视图,从活动编辑器中动态生成图表。您可以进入聊天以获得更精细的控制。

聊天工具

该扩展提供了一个工具,用于收集文件或整个工作区中的符号信息,当安装此扩展时,其他聊天参与者可以使用这些信息。

Copilot的数据分析

Copilot 数据分析扩展为数据科学领域的人员提供了强大的支持。从清理 .csv 文件,到通过利用不同的统计指标、图表和预测模型进行更高级的数据分析,@data 聊天参与者通过为数据任务提供定制的见解和交互性,帮助做出更高级和明智的决策。

该扩展提供了一个工具,LLM可以通过使用Pyodide请求执行Python代码,并获取相关Python代码执行的结果。它还能够智能地重试,以在出现错误时获得更好或更合适的执行结果。您还可以将用于执行分析(或生成可视化)的代码导出到Jupyter Notebook或Python文件中。

你可以从市场下载扩展,源代码在GitHub上可用

数据分析和可视化
  • 给定一个CSV文件,输入一个提示,例如Analyze the file #或编写一个更具体的提示(见下面的记录)
  • 提供后续提示以请求生成可视化内容,如图表、绘图等

导出用于执行数据分析的代码
  • 用于执行分析和生成可视化的Python代码可以查看
  • 代码可以导出为Jupyter笔记本或Python文件

CSV文件的编辑器和资源管理器集成
  • 右键点击CSV文件进行分析
  • 打开一个CSV文件并使用Copilot图标来分析文件

VS Code Commander 扩展

VS Code Commander 扩展 (vscode:extension/ms-vscode.vscode-commander) 在 VS Code 中充当您的个人助手。这个强大的工具使您能够通过使用对话式的自由格式文本来配置您的 VS Code 环境。使用 VS Code Commander,您可以:

  • 发现并探索各种设置和命令
  • 根据您的需求定制开发环境

这些操作可以通过一个简单直观的聊天界面来执行,使得管理您的VS Code配置比以往任何时候都更加容易。

Copilot 预览扩展的愿景

Copilot Preview 扩展 (vscode:extension/ms-vscode.vscode-copilot-vision) 使您能够直接将图像作为上下文输入附加,丰富对话并实现更具动态性、视觉支持的响应。此扩展最终将被弃用,转而支持 Github Copilot Chat 中的内置图像流程。

聊天中的视觉

目前,您可以通过使用自己的OpenAI、Azure OpenAI、Anthropic或Gemini密钥在聊天视图中体验图像附件流程。通过轻松地从剪贴板附加图像或直接将它们拖入聊天中来开始。

聊天交流的截图。用户请求一个着陆页的HTML和CSS。响应提供了一个基本的HTML结构,包括头部、导航链接(首页、关于、联系)以及一个外部CSS文件的链接。

主题: Sapphire (在 vscode.dev 上预览)

带有快速修复的愿景

此外,您可以使用提供的代码操作为Markdown、HTML、JSX或TSX文档中的图像生成或优化替代文本,从而简化添加描述性文本的过程,以提供更好的上下文和可访问性。替代文本快速修复适用于工作区中的图像和图像URL。

一个示例Markdown文档展示了生成替代文本的快速修复功能,结果自动插入了一个alt标签和值。然后用户会看到一个不同的快速修复提示,使用输入框来优化替代文本。用户输入并提交他们优化的描述后,替代文本相应地更新。

此扩展使用了ChatReferenceBinaryData提议的API。欢迎查看源代码中的使用示例,可在GitHub上找到

Python

原生REPL变量视图

原生Python REPL现在为内置的变量视图提供了最新的变量。这使您能够在从文件执行代码或通过REPL输入框执行代码时深入了解解释器的状态。

使用Pylance生成文档字符串

您现在可以更方便地使用Pylance的文档字符串模板生成功能为您的Python代码生成文档!您可以通过输入"""''',按下Ctrl+Space,或选择灯泡来调用生成文档字符串代码操作,为类或方法生成文档字符串模板。生成的文档字符串包括函数描述、参数、参数类型、返回值和返回类型等字段。

此功能目前处于实验性设置之后,但我们期待很快将其作为默认体验。您今天可以通过启用python.analysis.supportDocstringTemplate设置来尝试它。

折叠所有文档字符串

文档字符串非常适合为您的代码提供上下文和解释,但有时您可能希望折叠它们以专注于代码本身。现在,您可以通过使用新的Pylance: 折叠所有文档字符串命令更轻松地做到这一点,该命令也可以绑定到您选择的键绑定。要展开它们,请使用Pylance: 展开所有文档字符串命令。

改进的导入建议

Pylance 的一个强大功能是它能够提供自动导入建议。默认情况下,Pylance 会从符号定义的地方提供导入建议,但你可能希望它从符号被导入(即别名)的文件中导入。通过新的 python.analysis.includeAliasesFromUserFiles 设置,你现在可以控制 Pylance 是否在其自动导入建议或添加导入快速修复中包含来自用户文件的别名符号。

请注意,启用此设置可能会对性能产生负面影响,特别是在大型代码库中,因为Pylance可能需要索引更多的符号并监控更多的文件以进行更改,这可能会增加资源使用。

实验性AI代码操作:实现抽象类

现在,您可以通过新的实验性代码操作,结合AI和静态分析,实现抽象类的最佳效果!此功能需要同时安装PylanceGitHub Copilot扩展。要尝试此功能,您可以在定义继承自抽象类的类时,选择使用Copilot实现所有继承的抽象类代码操作。

您可以通过在用户设置中设置"python.analysis.aiCodeActions": {"implementAbstractClasses": false}来禁用此功能。

扩展开发

语言模型工具

我们已经完成了我们的LanguageModelTool API!这个API使聊天扩展能够通过将语言模型连接到外部数据源或执行操作来构建更强大的体验。该API包含两个主要部分:

  1. 扩展程序注册工具的能力。工具是一段功能,旨在供语言模型使用。例如,读取文件的Git历史记录。当使用lm.registerTool方法注册工具时,它也可以通过lm.tools列表被其他扩展程序访问。这将使聊天扩展程序能够通过共享工具的生态系统与其他扩展程序无缝集成。

  2. 语言模型支持工具的机制,例如在发出请求时传递工具的扩展,语言模型请求工具调用,以及扩展返回工具调用的结果。

语言模型工具的使用是复杂的,这个API并没有隐藏这种复杂性。如果你想注册一个工具或在你的聊天参与者中使用工具,我们建议从扩展示例开始。

聊天参与者检测

我们已经完成了聊天参与者检测的API,这使得GitHub Copilot能够自动选择您的聊天参与者或参与者命令来处理用户的问题。请查看我们的文档以获取详细的教程和建议。

VS Code 语音

VS Code Speech 扩展已更新至 Azure Speech SDK 的八月版本,并带来了更新的语音转文本识别模型。通过此次更新,您应该会看到 VS Code 中的语音转文本集成(如 Copilot Chat)的改进结果。

评论线程 collapsibleState

可以使用新的CommentThread.collapsibleState属性更改CommentThread的展开/折叠状态,即使线程已经显示。以前,此属性仅在首次显示评论线程时才会被考虑。

欢迎视图中的Codicons

欢迎视图现在支持渲染代码图标的功能。您可以在欢迎视图中使用通常的$(icon-name)来实现这一点。

一个示例欢迎视图,展示了文本、链接、按钮和codicons的使用。

聊天参与者访问模型选择器

你可能已经注意到聊天视图中的模型选择器,它允许你选择用于聊天请求的模型。

聊天视图中的Copilot模型选择器控件允许切换到另一种语言模型。

您的聊天参与者扩展需要采用一个新的API才能使用此模型选择器。我们刚刚在ChatRequest对象上完成了一个新的model属性,该属性将被设置为选择器中模型的LanguageModelChat实例。您可以使用这个属性来代替lm.selectChatModels方法。如果您的扩展想要使用除选定模型之外的特定模型,您仍然可以使用lm.selectChatModels

预览功能

TypeScript 5.7

我们继续改进对即将发布的TypeScript 5.7版本的支持。查看TypeScript 5.7 beta博客文章TypeScript 5.7计划以获取详细信息。

要开始使用 TypeScript 5.7 的预览版本,请安装 TypeScript Nightly 扩展

在粘贴时更新JavaScript和TypeScript的导入

厌倦了在文件之间移动代码后不得不添加导入吗?试试我们实验性的粘贴时更新导入支持!当你在编辑器之间复制和粘贴代码时,VS Code 会在粘贴代码时自动添加导入:

注意它不仅添加了导入,甚至为粘贴代码中使用的局部变量添加了一个新的导出!

要今天尝试这个功能,请确保您使用的是 TypeScript 5.7+。然后启用 javascript.experimental.updateImportsOnPaste/typescript.experimental.updateImportsOnPaste。目前,这仅在同一个 VS Code 窗口中的文本编辑器之间粘贴时支持。

提议的API

用于图像附件的聊天参考二进制数据

我们现在允许在聊天中粘贴图片(pngjpegbmpgiftiff),如果有使用 ChatReferencebinaryData 提议的 API 的扩展。

export class ChatReferenceBinaryData {
  /**
   * The MIME type of the binary data.
   */
  readonly mimeType: string;

  /**
   * Retrieves the binary data of the reference.
   * @returns A promise that resolves to the binary data as a Uint8Array.
   */
  data(): Thenable<Uint8Array>;

  /**
   * @param mimeType The MIME type of the binary data.
   * @param data The binary data of the reference.
   */
  constructor(mimeType: string, data: () => Thenable<Uint8Array>);
}

扩展作者在通过request.references创建聊天处理程序后可以访问此内容,当通过拖放或快速选择附加图像时,它可以是URI,或者对于粘贴的图像将是ChatReferenceBinaryData

工程

LLMs的提示构建库

本月,我们开源了我们的@vscode/prompt-tsx库,这是我们在过去一年中在Copilot Chat中开发和使用的,用于制作语言模型提示的库。该库使开发者能够使用类似于React的TSX/JSX语法创建他们的提示,并包括各种工具以充分利用提示的令牌预算。

AMD代码移除及更多ESM在web中的使用

我们从源代码中移除了最后的AMD(异步模块定义)痕迹,主要是从我们仍然保留的构建脚本中移除,这些脚本是为了在需要恢复发布时支持AMD。

此外,https://vscode.dev 现在也仅使用 ESM(ECMAScript 模块)运行 100%。

迁移到 ESLint 9

我们已经更新了主VS Code仓库以及所有的扩展示例,以使用ESLint 9。这包括将所有ESLint配置迁移到使用现代的扁平配置

Electron 32 更新

在这个里程碑中,我们正在向稳定版的用户推广Electron 32更新。此更新包含Chromium 128.0.6613.186和Node.js 20.18.0。我们要感谢所有在Insiders版本上自托管并提供早期反馈的用户。

显著的修复

  • 177046 在扩展面板搜索后会崩溃

感谢您

最后但同样重要的是,向VS Code的贡献者们表示衷心的感谢

问题跟踪

对我们问题跟踪的贡献:

拉取请求

vscode 的贡献:

vscode-docs的贡献:

vscode-js-debug 的贡献:

vscode-languageserver-node的贡献:

vscode-mypy 的贡献:

vscode-vsce 的贡献:

language-server-protocol的贡献:

lsprotocol的贡献:

tolerant-php-parser的贡献: