2024 年 10 月 (版本 1.95)
安全更新:以下扩展有安全更新:ms-python.python 和 ms-vscode-remote.remote-ssh。
更新 1.95.1:此更新解决了这些 问题。
更新 1.95.2:此更新解决了这些 问题。
更新 1.95.3:此更新解决了这些 问题。
下载:Windows:x64 Arm64 | Mac:通用 Intel Apple 芯片 | Linux:deb rpm tarball Arm snap
欢迎使用 Visual Studio Code 2024 年 10 月发布版本。此版本中有许多更新,我们希望您会喜欢,其中一些主要亮点包括:
- Copilot 编辑 - 快速迭代跨多个文件的大幅更改
- Copilot 辅助侧边栏聊天 - 在工作时保持 Copilot 聊天打开并准备就绪
- 多个 GitHub 账户 - 在 VS Code 中同时登录多个 GitHub 账户
- Copilot 代码审查 - 对未提交的更改进行快速审查或更深入的审查
- Pylance Docstrings - 为类或方法生成 docstring 模板
- 预览设置指示器 - 在设置编辑器中查看实验性和预览设置
- Copilot 扩展性 - 展示 VS Code 中的 Copilot 扩展性
如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新。Insiders:想尽快尝试新功能吗?您可以下载每晚Insiders版本并尽快尝试最新更新。
GitHub Copilot
Copilot 功能可能会经历不同的早期访问阶段,这些阶段通常通过设置启用和配置。
-
实验性 - 查看实验性功能 (
@tag:experimental
)此设置控制正在积极开发的新功能,可能不稳定。它可能会更改或删除。
-
预览 - 查看预览功能 (
@tag:preview
)此设置控制仍在完善但已可使用的新功能。欢迎提供反馈。
使用 Copilot 编辑开始代码编辑会话
Copilot 编辑目前处于预览阶段
设置:github.copilot.chat.edits.enabled
使用 Copilot 编辑,您可以开始一个由 AI 驱动的代码编辑会话,在该会话中您可以快速迭代代码更改。根据您的提示,Copilot 编辑会在您的工作区中跨多个文件提出代码更改。这些编辑会直接应用于编辑器中,因此您可以在原位快速查看它们,并获得周围代码的完整上下文。
Copilot 编辑非常适合迭代跨多个文件的大幅更改。它将 Copilot 聊天的对话流程和内联聊天的快速反馈结合在一个体验中。在旁边进行持续的多轮聊天对话,同时受益于内联代码建议。
只需三个步骤即可开始使用 Copilot 编辑
-
从聊天菜单中选择 打开 Copilot 编辑,或按 ,即可开始编辑会话。
-
将相关文件添加到*工作集*,以向 Copilot 指明您要处理的文件。
-
输入提示,告诉 Copilot 您要进行的编辑!例如,
为所有页面添加一个简单的导航栏
或使用 vitest 代替 jest
。
在我们的文档中获取有关 Copilot 编辑 的更多详细信息。立即尝试并通过 我们的问题 提供您的反馈!
辅助侧边栏聊天
聊天视图的新默认位置是 辅助侧边栏。通过使用辅助侧边栏,您可以随时打开聊天,同时您仍然可以使用文件资源管理器或源代码管理等其他视图。这为您在 VS Code 中提供了更集成的 AI 体验。您可以使用键盘快捷键 ⌃⌘I (Windows、Linux Ctrl+Alt+I) 快速打开聊天。
随着命令中心旁边引入新的聊天菜单,只需单击即可打开带聊天的辅助侧边栏
聊天菜单让您可以访问 Copilot 聊天最常见的任务。如果您希望隐藏此菜单,则提供了一个新设置 chat.commandCenter.enabled。
注意: 如果您之前安装了 GitHub Copilot,则会在您之前放置聊天视图的位置显示一个视图,该视图使您能够将聊天视图恢复到旧位置,如果这更适合您的话。
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 聊天将尽可能自动将您的问题路由到合适的参与者或聊天命令。
如果自动选择的参与者不适合您的问题,您仍然可以选择聊天响应顶部的 不重新运行 链接,将您的问题重新发送给 Copilot。
本月,我们还添加了一个操作,让您可以在每次请求时跳过此检测行为。输入聊天提示时的默认操作是 发送并分派,其中包括参与者检测。如果您选择 发送,请求将直接发送到 Copilot 聊天,并且不会自动分派给聊天参与者。
您还可以使用 chat.experimental.detectParticipant.enabled 设置完全禁用自动参与者检测。
控制当前编辑器上下文
Copilot 聊天始终会自动将您当前的选定内容或当前可见代码作为上下文包含在您的聊天请求中。大型语言模型 (LLM) 通常擅长理解一段上下文是否相关。但有时,当您提出的问题与当前编辑器无关时,包含此上下文可能会影响模型解释您问题的方式。
我们现在在聊天输入中显示一个特殊的附件控件,它会提供有关编辑器上下文的提示,并使您能够切换是否包含编辑器上下文。
编辑器上下文的行为没有改变。当活动编辑器有选择时,只包含选择。否则,只包含滚动到视图中的代码。您仍然可以使用回形针按钮或在聊天提示中键入 #
来附加其他文件或整个文件。
交互式工作区符号链接
Copilot 聊天的一个常见用例是询问有关工作区代码的问题,例如使用 /tests
为选定的代码生成新的单元测试,或者询问 @workspace
在您的项目中查找某些特定的类或函数。在此里程碑中,我们为 Copilot 在聊天响应中提及的任何工作区符号添加了增强链接。这些符号链接可以帮助您更好地理解 Copilot 响应并了解其中使用的符号。
符号链接在响应中呈现为小药丸,就像我们上个里程碑添加的 文件链接 一样。要开始了解更多关于某个符号的信息,只需选择符号链接即可跳转到该符号的定义
您还可以将鼠标悬停在符号链接上,查看该符号在哪个文件中定义
要开始更详细地探索符号,只需右键单击符号链接即可打开一个带有选项的上下文菜单,例如 转到实现 和 转到引用
基本符号链接应该适用于任何支持“转到定义”的语言。更高级的 IntelliSense 选项(例如“转到实现”)也需要该语言的支持。请务必安装语言扩展,以获得 Copilot 响应中使用的任何编程语言的最佳符号支持。
使用问题悬停中的 Copilot 操作修复
当您将鼠标悬停在编辑器中的问题上时,它现在包含一个使用 Copilot 修复问题的操作。此操作适用于有可用修复的问题,并且修复由 Copilot 生成。
工作区索引
@workspace
允许您询问有关当前项目中代码的问题。这通过 GitHub 的代码搜索 或 VS Code 构建的智能本地索引实现。在此里程碑中,我们添加了更多 UI 元素,让您了解此工作区索引的使用方式。
首先,新的 GitHub Copilot: 构建本地工作区索引 命令允许您显式启动当前工作区的索引。此索引通常在您第一次提出 @workspace
问题时自动启动。使用新命令,您可以随时启动索引。该命令还支持索引更大的工作区,目前最多 2000 个文件(不包括被忽略的文件,例如 node_modules
或 out
目录)。
在构建索引时,我们现在还在状态栏中显示进度项
索引包含数百个文件的工作区可能需要一些时间。如果您在构建索引时尝试提出 @workspace
问题,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 账户。
以下是您可能需要多个账户的几个场景
- 使用 *账户 1* 进行设置同步,使用 *账户 2* 进行 GitHub 拉取请求扩展
- 使用 *账户 1* 进行 GitHub 扩展(用于推送),使用 *账户 2* 进行 GitHub Copilot
要使用此功能,只需触发登录操作(使用设置同步等内置功能或扩展),您将获得登录不同账户的选项。此功能还与 账户首选项快速选择 完美搭配,以防您需要在以后更改所选账户。
虽然大多数功能应该继续与您现有的扩展程序配合使用,但某些行为可能尚未完全适应这种多账户环境。如果您认为有改进的空间,请对这些扩展程序提出问题。借助相对较新的 vscode.authentication.getAccounts('github')
API,扩展程序在处理多个账户方面拥有很大的能力。
更改账户首选项时添加其他账户
上个月,我们推出了 账户首选项快速选择,这对于因任何原因需要更改扩展首选账户很有用。
我们收到的反馈之一是希望有一种简单的方法来添加尚未登录的账户。在此里程碑中,我们在快速选择中引入了一个新项目,使您能够做到这一点。使用 使用新账户... 项目启动身份验证流程并一次性将账户首选项设置为该账户。
设置编辑器中实验性和预览设置的指示器
以前,在查看设置编辑器时,并不总是清楚哪些设置是实验性或预览性设置。为了突出实验性和即将推出的功能,设置编辑器现在在实验性和预览设置旁边显示指示器。您可以在设置编辑器搜索框中键入 @tag:experimental
或 @tag:preview
以相应地筛选设置。
扩展作者可以为其设置添加“实验性”或“预览”标签,以在设置编辑器中显示相应的指示器。
主题:浅粉色(在 vscode.dev 上预览)
更多配置文件图标
在此里程碑中,我们为配置文件添加了更多图标。您现在可以从更广泛的图标范围中进行选择,以自定义您的配置文件。
面板中的视图图标
在工作台面板区域,视图通常以标签形式显示在标题栏中(例如,*终端* 或 *输出*)。然而,在较小的屏幕上,这些标签可能会超出可用空间,导致某些视图溢出到下拉菜单中。
为了解决这个问题,我们添加了一个新设置:workbench.panel.showLabels。禁用后,视图将显示为图标而不是标签,从而节省水平空间并减少溢出。
workbench.panel.showLabels: true
workbench.panel.showLabels: false
编辑器
出现次数突出显示延迟
在此里程碑中,我们引入了设置 editor.occurrencesHighlightDelay,让您可以控制在编辑器中突出显示出现次数之前的延迟。降低此延迟值可以带来在处理语义突出显示时感觉更灵敏的编辑器体验。
Web 版 VS Code
VS Code for the Web 支持本地文件事件
当使用 Chrome 或 Edge 129 版本时,使用本地文件夹打开 https://insiders.vscode.dev 现在支持文件事件。如果您在浏览器外部对打开的工作区的文件和文件夹进行更改,这些更改会立即反映在浏览器内部。
此功能利用了作为新的 Web API 提出的新 FileSystemObserver
接口。
对扩展的贡献
Copilot 扩展展示
在此里程碑中,团队致力于构建几个扩展,以展示 VS Code 中的 Copilot 扩展性。这些扩展展示了以下功能:
- 聊天参与者和工具 API
- prompt-tsx
- 如何利用 GitHub Copilot 提供的语言模型
试用这些扩展,看看如何在您自己的扩展中扩展 Copilot。
扩展 | 链接 |
---|---|
GitHub 拉取请求 | 市场 |
Copilot 的网络搜索 | 市场,源代码 |
使用 Copilot 生成 MermAId 图 | 市场 |
Copilot 的数据分析 | 市场,源代码 |
VS Code Commander | 市场 |
Copilot 预览版视觉 | 市场 |
GitHub 拉取请求
GitHub Pull Requests 扩展的 0.100.0 版本增加了 Copilot 集成
- 在“聊天”视图中使用
@githubpr
聊天参与者来搜索问题、总结问题/拉取请求以及为问题建议修复。@githubpr
使用多种语言模型工具来完成此操作。 - 还有一个新的 通知 视图,显示 GitHub 通知,并带有一个使用 Copilot 优先处理通知的操作。
要试用所有功能,您可以设置以下设置
使用 Copilot 搜索问题
新的 @githubpr
聊天参与者可以在 GitHub 上搜索问题。
在显示问题时,@githubpr
会显示一个 Markdown 表格,并根据搜索尝试选择要显示的最佳列。
使用 Copilot 汇总和修复
“问题”视图中列出的每个问题现在都有一个新操作:使用 Copilot 汇总,它会打开“聊天”面板并汇总所选问题。我们还添加了另一个操作:使用 Copilot 修复,它会汇总所选问题并使用工作区上下文建议修复方案。
使用 Copilot 优先处理通知(实验性)
在此里程碑中,我们添加了一个实验性的 通知 视图,它列出了您在所有存储库中未读的通知。默认情况下,通知按最新更新倒序排序,但您可以使用视图标题的 ...
菜单中的 使用 Copilot 按优先级排序 操作,让 Copilot 优先处理通知。选择每个通知会触发一个使用 Copilot 汇总通知的操作。该视图还包含易于访问的操作,可将通知标记为已读,或在 GitHub.com 上打开通知。
Copilot 的网络搜索
此扩展展示了
- 聊天参与者和工具 API
- prompt-tsx
- 如何利用 GitHub Copilot 提供的语言模型
源代码可在 GitHub 上获得。
描述
在 Copilot 中直接获取来自网络的最新、最相关的信息。
这由两种不同的搜索引擎之一提供支持,由 websearch.preferredEngine 配置
作为用户,您需要从这些服务之一获取 API 密钥才能使用此扩展。首次使用时,它会询问您该密钥并使用 VS Code 的内置秘密存储进行存储,并且也可以像管理您的 GitHub 账户一样通过 VS Code 的身份验证堆栈进行管理。
聊天参与者
此扩展贡献了 @websearch
聊天参与者,它能够处理可能需要来自互联网的实时信息的问题。您可以使用 @websearch when did Workspace Trust ship in vscode?
手动调用它
聊天工具
此扩展还贡献了 #websearch
聊天语言模型工具,它与参与者类似,但对于在其他聊天参与者中提供来自网络的上下文很有用。例如
@workspace /new #websearch 使用最流行的框架创建一个用 Python 编写的新 Web 应用程序
此外,如果您正在开发自己的聊天参与者或工具,您可以通过 vscode.lm.invokeTool
API 使用此聊天工具。
使用 Copilot 生成 MermAId 图
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 密钥在聊天视图中体验图像附件流程。通过从剪贴板轻松附加图像或将其直接拖到聊天中来开始。
主题:蓝宝石(在 vscode.dev 上预览)
带有快速修复的视觉
此外,您可以使用提供的代码操作为 Markdown、HTML、JSX 或 TSX 文档中的图像生成或优化替代文本,从而简化合并描述性文本的过程,以获得更好的上下文和可访问性。替代文本快速修复适用于工作区中的图像和图像 URL。
此扩展使用 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 和静态分析的最佳组合!此功能需要 Pylance 和 GitHub Copilot 扩展。要试用它,您可以在定义继承自抽象类的类时选择 使用 Copilot 实现所有继承的抽象类 代码操作。
您可以通过在用户设置中设置 "python.analysis.aiCodeActions": {"implementAbstractClasses": false}
来禁用此功能。
扩展开发
语言模型工具
我们已经完成了 LanguageModelTool
API!此 API 使聊天扩展能够通过将语言模型连接到外部数据源或执行操作来构建更强大的体验。该 API 包含两个主要部分:
-
扩展注册*工具*的能力。工具是旨在供语言模型使用的功能。例如,读取文件的 Git 历史记录。当使用
lm.registerTool
方法注册工具时,其他扩展也可以访问它,在lm.tools
列表中。这将使聊天扩展能够通过共享工具生态系统无缝集成其他扩展。 -
语言模型支持工具的机制,例如扩展在发出请求时传递工具、语言模型请求工具调用以及扩展传回工具调用结果。
语言模型工具的使用是复杂的,此 API 并未隐藏这种复杂性。如果您想注册工具或在您的聊天参与者中使用工具,我们建议从 扩展示例 开始。
聊天参与者检测
我们已经完成了用于聊天参与者检测的 API,它允许 GitHub Copilot 自动选择您的聊天参与者或参与者命令来处理用户的问题。请查看 我们的文档,获取详细教程和建议。
VS Code Speech
VS Code 语音 扩展已更新到 Azure 语音 SDK 的八月版本,并附带了更新的语音识别模型。您应该会在本次更新中看到 VS Code 中的语音转文本集成(例如 Copilot Chat)的改进结果。
评论线程 collapsibleState
CommentThread
的展开/折叠状态可以使用新的 CommentThread.collapsibleState
属性进行更改,即使线程已经显示。以前,此属性只在评论线程首次显示时才会被尊重。
欢迎视图中的 Codicons
欢迎视图现在支持渲染 codicons。您可以在欢迎视图中使用常见的 $(icon-name)
来实现此功能。
聊天参与者访问模型选择器
您可能已经注意到聊天视图中的模型选择器,它允许您选择用于聊天请求的模型。
您的聊天参与者扩展需要采用新的 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 的扩展,我们现在允许将图像(png
、jpeg
、bmp
、gif
和 tiff
)粘贴到聊天中。
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
。
工程
LLM 的提示构建库
本月,我们开源了 @vscode/prompt-tsx 库,该库是我们过去一年在 Copilot Chat 中开发和使用的,用于构建语言模型提示。该库使开发人员能够使用 TSX/JSX 语法(类似于 React)创建提示,并包含各种工具,以充分利用提示的令牌预算。
移除 AMD 代码并在 Web 中更多使用 ESM
我们从源代码中删除了 AMD (Asynchronous Module Definition) 的最后痕迹,主要来自我们仍然保留的构建脚本,以防恢复版本需要支持 AMD。
此外,https://vscode.dev 现在也 100% 仅使用 ESM (ECMAScript Modules) 运行。
迁移到 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
的贡献
- @Abrifq (Arda Aydın):将
window.experimentalControlOverlay
的作用域更改为应用程序 PR #230593 - @asemdreibati (Asem Dreibati):处理 Iterable 命名空间中 slice 函数的边缘情况 (#_230683) PR #232134
- @BABA983 (BABA)
- 添加开发者操作以显示 GPU 状态 PR #222291
- 修复调试控制台在样式更改时被清除的问题 PR #224694
- 支持在 git 编辑器中打开 PR #226967
- @Bistard (SIHAN LI):修复拼写错误:使用
||
时上下文视图锚点选项可能会被取消 PR #228896 - @cobey (Cody Beyer):添加了 mistral ai npm 包 PR #229865
- @elias-pap (Elias Papavasileiou):修复:改进保存时触发的操作的设置描述 PR #230052
- @gjsjohnmurray (John Murray):修正扩展命令页面上的菜单上下文信息(修复 #229258) PR #229260
- @hamirmahal (Hamir Mahal):样式:简化字符串格式以提高可读性 PR #231763
- @injust (Justin Su):修复“in none full screen mode”拼写错误 PR #229914
- @jamesharris-garmin (James Harris):修复 --locate-shell-integration-path 中缺少 __dirname 的问题 PR #231423
- @jeanp413 (Jean Pierre):修复 logOutputChannel 在被释放后再次创建时会消失的问题 PR #225709
- @Kaidesuyoo (Kaidesuyo):性能优化 PR #230804
- @kkshinkai (Kk Shinkai):在 emitter 选项中正确触发
onDidAddListener
事件 PR #230259 - @Parasaran-Python (Parasaran):228640:如果启用隐藏预启动任务弹出窗口的设置,则隐藏该弹出窗口 PR #231225
- @quiple (Minseo Lee):更改韩文字体优先级 PR #230195
- @r3m0t (Tomer Chachamu):修复新测试开始时测试结果的滚动问题(修复 #229531) PR #229532
- @sandersn (Nathan Shively-Sanders):TS 扩展:使用 copilot 扩展注册对 CopilotRelated 的调用 PR #228610
- @ShadowRZ (夜坂雅):修复:在 package.json 中使用正确的桌面名称 PR #231472
- @trevor-scheer (Trevor Scheer):标记消息空白
nowrap
->pre
PR #229454 - @vietanhtwdk:调整大小粘性滚动时重新渲染 PR #227400
- @yanglb (Yanblb):为装饰器添加类型检查 PR #230626
对 vscode-docs
的贡献
- @Cecil0o0 (hj)
- @echofly:更新 v1_94.md PR #7677
- @ghosted-sound
- @gjsjohnmurray (John Murray)
- @oleschri:添加参数 --update-extensions PR #7681
- @partev:修复 URL 重定向 PR #7640
- @ptrptrd:文档:删除主题颜色引用中的重复条目 PR #7639
- @RonakRahane:添加了 C# 中新代码覆盖率的文档 修复了 #7635 PR #7664
对 vscode-js-debug
的贡献
- @marcusball (Marcus Ball):特性:在查找 websocket 地址时使用
remoteHostHeader
选项 PR #2111
对 vscode-languageserver-node
的贡献
- @DanTup (Danny Tuppeny):添加对 CompletionList "applyKind" 的支持,以控制默认值和每个项目的 commitCharacters/data 的组合方式 PR #1558
对 vscode-mypy
的贡献
- @jwhitaker-gridcog (Jarrad):在最近的 pyproject.toml 或 mypy.ini 目录中运行 mypy PR #316
对 vscode-vsce
的贡献
- @andrewlayer:将 unpublish 添加到 api.ts PR #1061
- @deribaucourt (Enguerrand de Ribaucourt):修复工作目录符号链接的回归问题 PR #1053
- @dtivel (Damon Tivel):在
Content-Disposition
标头中引用filename
值 PR #1060
对 language-server-protocol
的贡献
- @asukaminato0721 (Asuka Minato)
- @DanTup (Danny Tuppeny):添加对
completionList.applyKind
的支持,以确定如何组合completionList.itemDefaults
和completion
中的值。 PR #2018 - @DavyLandman (Davy Landman):将 Rascal 添加到相关的 LSP 实现者部分 PR #2029
- @g-plane (Pig Fang):修复标点符号拼写错误 PR #2048
- @nthykier (Niels Thykier):添加
debputy
语言服务器 PR #2044 - @RainCmd (渴望蓝天):将 Rain 语言服务器添加到 LSP PR #2039
- @WilsonZiweiWang (ziweiwang):添加 BitBake 语言服务器 PR #2049
- @yasmewad (Yash Mewada):将 Smithy 语言服务器链接添加到 LSP PR #2036
对 lsprotocol
的贡献
- @nobodywasishere (Margret Riegert):将 Crystal 插件添加到 README PR #403
对 tolerant-php-parser
的贡献
- @TysonAndre (Tyson Andre):修复 php 8.4 关于隐式可空参数的通知 PR #410