现已发布!阅读有关一月份的新功能和修复。

2024 年 10 月(1.95 版本)

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

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

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

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

下载:Windows:x64 Arm64 | Mac:通用版 Intel Silicon | Linux:deb rpm tarball Arm snap


欢迎使用 Visual Studio Code 2024 年 10 月版。此版本包含许多更新,我们希望您会喜欢,其中一些亮点包括:

如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新Insiders:想尽快尝试新功能吗?您可以下载每晚Insiders版本并尽快尝试最新更新。

GitHub Copilot

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

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

    此设置控制一项正在积极开发中且可能不稳定的新功能。它可能会更改或删除。

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

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

开始使用 Copilot 编辑进行代码编辑会话

Copilot 编辑目前处于预览状态

设置

github.copilot.chat.edits.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

使用 Copilot 编辑,您可以开始一个由 AI 驱动的代码编辑会话,您可以在其中快速迭代代码更改。根据您的提示,Copilot 编辑会在工作区中的多个文件中提出代码更改。这些编辑会直接在编辑器中应用,因此您可以快速地在原地查看它们,并拥有周围代码的完整上下文。

Copilot 编辑非常适合跨多个文件迭代重大更改。它将 Copilot 聊天的对话流程和行内聊天的快速反馈结合在一个体验中。在侧边进行持续的多轮聊天对话,同时受益于行内代码建议。

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

  1. 通过从“聊天”菜单中选择“打开 Copilot 编辑”或按 来启动编辑会话。

    Screenshot showing the Copilot menu in the Command Center, highlighting the Open Edit Session item

  2. 将相关文件添加到*工作集*以指示 Copilot 您要处理的文件。

  3. 输入提示,告诉 Copilot 您想要进行的编辑!例如,在所有页面上添加简单的导航栏使用 vitest 而不是 jest

在我们的文档中了解有关Copilot 编辑的更多详细信息。立即试用,并通过我们的问题跟踪器提供您的反馈!

次侧边栏中的聊天

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

Chat view in its new location after having moved.

通过在命令中心旁边引入新的聊天菜单,只需单击一下即可显示带有聊天的次侧边栏。

聊天菜单提供了对 Copilot 聊天最常用任务的访问。如果您想隐藏此菜单,则提供了一个新设置

chat.commandCenter.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
已提供。

Chat menu in the Command Center.

注意:如果您之前安装了 GitHub Copilot,将在您之前设置聊天位置的位置显示一个视图,使您能够将聊天视图恢复到旧位置,如果这对您来说更方便的话。

Chat view in its old location showing that Chat has moved to the Secondary Side Bar.

Copilot 代码审查

Copilot 代码审查目前处于预览状态

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

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

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

  • 审查更改:为了对所有未提交的更改进行更深入的审查,请选择“源代码管理”视图中的“Copilot 代码审查”按钮,您也可以在 GitHub.com 上的拉取请求中执行此操作。*(加入等候名单,面向所有 Copilot 订阅者开放)*

    Request review of uncommitted changes

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

Screenshot showing a comment reviewing a code selection

要了解有关 Copilot 代码审查的更多信息,请访问GitHub 代码审查文档

Copilot 对选定代码的快速审查可以提供与您团队或项目特定实践相符的反馈,前提是您提供了正确的上下文。在审查带有自定义审查说明的选择时,您可以通过来定义这些具体要求。

github.copilot.chat.reviewSelection.instructions
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置。与代码生成和测试生成说明类似,您可以直接在设置中定义说明,或者将它们存储在一个单独的文件中并在设置中引用它。

以下代码片段显示了审查说明的示例。

  "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
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

GitHub Copilot 具有多个内置聊天参与者,例如@workspace,您也可能安装了其他贡献聊天参与者的扩展。

为了更轻松地使用自然语言的聊天参与者,Copilot 聊天会在可能的情况下自动将您的问题路由到合适的参与者或聊天命令。

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

Screenshot of Chat view that shows how the '@workspace' participant is automatically detected.

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

The list of available "send" commands in the chat view.

您还可以通过完全禁用自动参与者检测。

chat.experimental.detectParticipant.enabled
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置来指定 VS Code 应该查找技能的自定义路径。

控制当前编辑器上下文

Copilot 聊天一直以来都会自动包含您当前的选择或当前可见的代码作为聊天请求的上下文。大型语言模型(LLM)通常能够很好地理解上下文是否相关。但有时,当您提出一个与当前编辑器无关的问题时,包含此上下文可能会影响模型对您问题的解释。

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

The current editor context control in the chat input, which shows that the context is not included.

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

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

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

您还可以将鼠标悬停在符号链接上,查看符号定义在哪个文件中。

Hovering over a symbol link to see the file it's defined in.

要开始更详细地探索符号,只需右键单击符号链接即可显示上下文菜单,其中包含“转到实现”和“转到引用”等选项。

Using the context menu on a symbol link to learn more about a symbol.

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

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

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

The Problem hover showing a Fix using Copilot action.

工作区索引

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

首先,新的“GitHub Copilot:构建本地工作区索引”命令允许您显式地开始索引当前工作区。此索引通常在您第一次询问@workspace问题时自动启动。通过新命令,您可以随时开始索引。该命令还支持为更大的工作区编制索引,目前最多支持 2000 个文件(不包括被忽略的文件,如node_modulesout目录)。

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

A status bar item showing the progress of indexing the current workspace.

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

A warning showing on a response telling the user the Copilot index is being constructed.

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

聊天后续改进

设置

github.copilot.chat.followUps
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

为了在聊天视图中为聊天对话腾出更多空间,我们使后续提示更加简洁,默认情况下,它们仅在第一次进行对话时出现。配置

github.copilot.chat.followUps
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置来更改后续提示的出现时间。

  • firstOnly(默认)- 后续提示仅在第一次进行对话时出现
  • always - 后续提示始终出现
  • never - 禁用后续提示

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

设置

github.copilot.chat.search.semanticTextResults
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开

上个里程碑,我们推出了使用 Copilot 进行语义搜索的功能,以获得与您的查询在语义上相关的搜索结果。我们现在通过按相关性排序搜索结果来改进搜索结果。来自更相关片段的关键字匹配被认为整体更相关。

工作台

多个 GitHub 帐户

将上个月的功能推广到默认行为,现在可以在 VS Code 中同时登录多个 GitHub 帐户。

Multiple GitHub Accounts in the Account menu.

您可能需要多个帐户的几个场景:

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

要使用此功能,只需触发登录操作(通过设置同步等内置功能或通过扩展),您将可以选择登录到其他帐户。此功能还与帐户首选项快速选择配合得很好,如果您需要在稍后更改所选帐户。

虽然大多数功能应该可以继续与您现有的扩展一起正常工作,但有些行为可能尚未与这个多帐户世界完美兼容。如果您认为有改进的空间,请在那些扩展上开一个 issue。借助相对较新的vscode.authentication.getAccounts('github') API,扩展有很大的能力来处理多个帐户。

更改帐户首选项时添加其他帐户

上个月,我们推出了帐户首选项快速选择,这对于更改扩展的首选帐户非常有用,如果您因任何原因需要更改它。

我们收到的一些反馈是希望有一种简单的方法来添加尚未登录的帐户。在此里程碑中,我们在快速选择中引入了一个新项目,可让您一次性完成此操作。使用“使用新帐户...”项目来启动身份验证流程,并一次性设置该帐户的帐户首选项。

Use a new account option in the account preference Quick Pick.

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

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

扩展作者可以将“experimental”或“preview”标签添加到他们的设置中,以在设置编辑器中显示相应的指示器。

主题:浅粉色(在 vscode.dev 上预览)

更多个人资料图标

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

Image showing all available profile icons, highlighting the newly added icons.

在面板中查看图标

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

为了解决这个问题,我们添加了一个新设置:

workbench.panel.showLabels
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
。禁用时,视图将显示为图标而不是标签,从而节省水平空间并减少溢出。

workbench.panel.showLabels: true

Panel area showing the labels for each panel.

workbench.panel.showLabels: false

Panel area showing an icon for each panel and no label.

编辑器

出现次数高亮延迟

在此里程碑中,我们引入了设置

editor.occurrencesHighlightDelay
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
,让您控制出现次数在编辑器中高亮显示之前的延迟。降低此延迟值可以带来更具响应性的编辑器体验,尤其是在使用语义高亮显示时。

Web 版 VS Code

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

当使用 Chrome 或 Edge(129 版本及更高版本)时,使用本地文件夹打开https://insiders.vscode.dev 现在支持文件事件。如果您在浏览器外部更改了打开工作区的文件的名称或文件夹,这些更改将立即在浏览器中反映出来。

此功能利用了提议为 Web 的新 API 的FileSystemObserver 接口。

对扩展的贡献

Copilot 扩展展示

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

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

扩展 链接
GitHub 拉取请求 Marketplace
Copilot 的 Web 搜索 Marketplace源代码
MermAId 通过 Copilot 进行图表生成 Marketplace
Copilot 的数据分析 Marketplace源代码
VS Code Commander Marketplace
Copilot 预览视觉 Marketplace

GitHub 拉取请求

GitHub Pull Requests 扩展的0.100.0 版添加了 Copilot 集成。

  • 在聊天视图中使用@githubpr聊天参与者来搜索问题、总结问题/PR,并为问题建议修复。@githubpr使用许多语言模型工具来完成此操作。
  • 还有一个新的“通知”视图,显示 GitHub 通知,并有一个通过 Copilot 确定其优先级的操作。

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

  • githubPullRequests.experimental.chat
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
  • githubPullRequests.experimental.notificationsView
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
使用 Copilot 进行问题搜索

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

Copilot issue search for most open bugs.

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

Copilot issue search for closed October issues.

使用 Copilot 进行总结和修复

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

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

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

Notifications View

Copilot 的 Web 搜索

此扩展展示了

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

源代码可在GitHub 上找到

描述

直接在 Copilot 中获取来自 Web 的最新相关信息。

这是通过以下两种搜索引擎之一实现的,由配置

websearch.preferredEngine
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
:

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

聊天参与者

此扩展贡献了@websearch聊天参与者,该参与者能够处理可能需要来自互联网的实时信息的查询。您可以使用@websearch 什么时候发布的 Workspace Trust?手动调用它。

The question "when did Workspace Trust ship in vscode" and the answer showing the references and details.

聊天工具

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

  • @workspace /new #websearch 使用最流行的框架创建一个新的 Python Web 应用

The question "create a new web app written in Python using the most popular framework" using the websearch variable with /new. The result is a project using Django.

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

MermAId 通过 Copilot 进行图表生成

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

创建和渲染图表

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

某些图表类型(如流程图)会添加链接,以回溯到用于构建图表的参考。

Mermaid 可视化大纲视图

打开“可视化大纲”视图以从活动编辑器动态生成图表。您可以进入聊天以获得更精细控制。

聊天工具

该扩展贡献了一个工具,用于收集文件或整个工作区中的符号信息,并在安装此扩展时供其他聊天参与者使用。

Copilot 的数据分析

Copilot 的数据分析扩展赋能数据科学领域的专业人士。从清理.csv文件到通过利用不同的统计度量、图表和预测模型执行更高级别的数据分析,@data聊天参与者通过提供量身定制的见解和交互性来处理数据任务,帮助做出更高级、更明智的决策。

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

您可以从市场下载该扩展,源代码可在GitHub 上找到

数据分析和可视化
  • 给定一个 CSV 文件,输入一个提示,例如分析文件 #<文件名>,或者编写一个更具体的提示(参见下面的录屏)。
  • 提供后续提示以请求生成可视化,例如图表、绘图等。

导出用于执行数据分析的代码
  • 用于执行数据分析和生成可视化的 Python 代码可以被查看
  • 代码可以导出为 Jupyter Notebook 或 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 预览视觉扩展 (vscode:extension/ms-vscode.vscode-copilot-vision) 使您能够直接将图像作为上下文输入,从而丰富对话并实现更动态、视觉支持的响应。此扩展最终将被 GitHub Copilot Chat 中内置的图像流所取代。

聊天中的视觉

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

Screenshot of a chat exchange. A user asks for HTML and CSS for a landing page. The response provides a basic HTML structure with a header, navigation links (Home, About, Contact), and a link to an external CSS file.

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

视觉与快速修复

此外,您可以使用提供的代码操作来生成或优化 markdown、HTML、JSX 或 TSX 文档中的图像的 alt 文本,从而简化了包含描述性文本以获得更好上下文和可访问性的过程。Alt 文本快速修复适用于工作区中的图像和图像 URL。

An example markdown document displays a quick fix feature for generating alt text, resulting in the automatic insertion of an alt tag and a value. The user is then prompted with a different quick fix to refine the alt text using an input box. After the user enters and submits their refined description, the alt text is updated accordingly.

此扩展使用ChatReferenceBinaryData提议的 API。您可以随时在源代码中查看其使用示例,可在 GitHub 上找到

Python

原生 REPL 变量视图

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

Pylance 生成文档字符串

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

此功能目前隐藏在实验性设置后面,但我们期待尽快将其设为默认体验。您可以通过启用来立即尝试。

python.analysis.supportDocstringTemplate
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置来指定 VS Code 应该查找技能的自定义路径。

折叠所有文档字符串

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

改进的导入建议

Pylance 的强大功能之一是它提供自动导入建议的能力。默认情况下,Pylance 会提供符号定义的导入建议,但您可能希望它从符号被导入(即别名化)的文件中导入。有了新的

python.analysis.includeAliasesFromUserFiles
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置后,您现在可以控制 Pylance 是否在其自动导入建议或添加导入快速修复中包含来自用户文件的别名符号。

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

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

现在,您可以通过新的实验性代码操作“实现抽象类”来兼顾 AI 和静态分析的优势!此功能需要 PylanceGitHub Copilot 扩展。要试用此功能,在定义继承自抽象类的类时,您可以选择“使用 Copilot 实现所有继承的抽象类 (Implement all inherited abstract classes with Copilot)”代码操作。

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

扩展开发

语言模型工具

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

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

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

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

聊天参与者检测

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

VS Code Speech

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

评论线程 collapsibleState

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

欢迎视图中的 Codicons

欢迎视图现在支持渲染 codicon 的功能。您可以通过在欢迎视图中使用常规的 $(icon-name) 来实现此目的。

A sample welcome view showing the use of text, links, buttons, and codicons.

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

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

Copilot model picker control in the Chat view enables switching to another language model.

您的聊天参与者扩展需要采用新的 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

聊天引用二进制数据用于图像附件

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

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 访问此内容,如果图像是通过拖放或快速选择附加的,则 request.references 可以是 URI,如果是粘贴的图像,则为 ChatReferenceBinaryData

工程

LLM 的提示构建库

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

AMD 代码移除和 Web 中更多的 ESM 使用

我们从源代码中删除了 AMD(异步模块定义)的最后痕迹,主要来自我们仍然保留以备恢复发布时支持 AMD 的构建脚本。

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

迁移到 ESLint 9

我们已将主 VS Code 仓库和我们所有的扩展示例都更新为使用 ESLint 9。这包括将我们所有的 ESLint 配置迁移为使用现代平面配置 (flat configs)

Electron 32 更新

在此里程碑中,我们向使用稳定版的​​用户推广 Electron 32 更新。此更新附带 Chromium 128.0.6613.186 和 Node.js 20.18.0。我们要感谢所有在 Insider 版本中进行自我托管并提供早期反馈的人。

值得注意的修复

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

感谢

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

问题跟踪

对我们问题跟踪的贡献

拉取请求

vscode 的贡献

vscode-docs 的贡献

vscode-js-debug 的贡献

vscode-languageserver-node 的贡献

  • @DanTup (Danny Tuppeny):添加对 CompletionList "applyKind" 的支持,以控制如何组合默认值和每个项目的 commitCharacters/data PR #1558

vscode-mypy 的贡献

vscode-vsce 的贡献

language-server-protocol 的贡献

lsprotocol 的贡献

tolerant-php-parser 的贡献

© . This site is unofficial and not affiliated with Microsoft.