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 生成文档字符串 - 为类或方法生成文档字符串模板
- 预览设置指示器 - 在设置编辑器中查看实验性和预览设置
- Copilot 扩展性 - 展示 VS Code 中的 Copilot 扩展性
如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新。内部人员:想尽快试用新功能吗?您可以下载每晚的内部人员版本,并尽快尝试最新的更新。
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 Chat 将在可能的情况下自动将您的问题路由到合适的参与者或聊天命令。
如果自动选择的参与者不适合您的问题,您仍然可以单击聊天响应顶部的不重新运行链接,将您的问题重新发送给 Copilot。
本月,我们还添加了一个操作,允许您按请求跳过此检测行为。当您输入聊天提示时,默认操作是发送并分派,其中包括参与者检测。如果您选择发送,请求将直接发送到 Copilot Chat,并且不会自动分派给聊天参与者。
您还可以使用 chat.experimental.detectParticipant.enabled 设置完全禁用自动参与者检测。
控制当前编辑器上下文
Copilot Chat 始终自动将您当前的选择或当前可见的代码作为上下文包含在您的聊天请求中。大型语言模型 (LLM) 通常善于理解一段上下文是否相关。但有时,当您提出的问题与当前编辑器无关时,包含此上下文可能会影响模型解释您问题的方式。
我们现在在聊天输入中显示一个特殊的附件控件,该控件会提示编辑器上下文,并允许您切换是否包含编辑器上下文。
编辑器上下文的行为没有变化。当活动编辑器有选择时,只包含选择。否则,只包含滚动到视图中的代码。您仍然可以使用回形针按钮或在聊天提示中键入 #
来附加其他文件或整个文件。
交互式工作区符号链接
Copilot Chat 的常见用例是询问有关工作区中代码的问题,例如使用 /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 Web 支持本地文件事件
自 Chrome 或 Edge 129 版本起,使用 https://insiders.vscode.dev 打开本地文件夹现在支持文件事件。如果您在浏览器外部对打开的工作区的文件和文件夹进行更改,这些更改会立即反映在浏览器内部。
此功能利用了新的 FileSystemObserver
接口,该接口被提议作为 Web 的新 API。
对扩展的贡献
Copilot 扩展展示
在此里程碑中,团队致力于构建多个扩展,展示 VS Code 中的 Copilot 扩展性。这些扩展展示了以下功能:
- 聊天参与者和工具 API
- prompt-tsx
- 如何利用 GitHub Copilot 提供的语言模型
试用这些扩展,看看您如何在自己的扩展中扩展 Copilot。
扩展 | 链接 |
---|---|
GitHub 拉取请求 | 市场 |
Copilot 的网络搜索 | 市场,源代码 |
使用 Copilot 生成 MermAId 图 | 市场 |
Copilot 的数据分析 | 市场,源代码 |
VS Code Commander | 市场 |
Copilot 预览版视觉功能 | 市场 |
GitHub 拉取请求
版本 0.100.0 的 GitHub 拉取请求扩展添加了 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,该 API 允许 GitHub Copilot 自动选择您的聊天参与者或参与者命令来处理用户的问题。请查看我们的文档,获取详细的教程和建议。
VS Code 语音
VS Code 语音扩展 (VS Code Speech) 已更新至 8 月版本的 Azure Speech SDK,并附带了更新的语音转文本识别模型。您应该会看到此更新对 VS Code 中的语音转文本集成(例如 Copilot Chat)的改进结果。
注释线程 collapsibleState
即使线程已显示,也可以使用新的 CommentThread.collapsibleState
属性更改 CommentThread
的展开/折叠状态。以前,此属性仅在首次显示注释线程时才受尊重。
欢迎视图中的 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 中开发和使用该库来制作语言模型提示。该库使开发人员能够使用类似 React 的 TSX/JSX 语法创建提示,并包含各种工具以充分利用提示的令牌预算。
AMD 代码删除和 Web 中更多 ESM 使用
我们从源代码中删除了 AMD(异步模块定义)的最后痕迹,主要来自我们仍然保留的构建脚本,以防恢复版本需要支持 AMD。
此外,https://vscode.dev 现在也 100% 只运行 ESM(ECMAScript 模块)。
迁移到 ESLint 9
我们已将主 VS Code 存储库和所有扩展示例都更新为使用 ESLint 9。这包括将所有 ESLint 配置迁移到使用现代平面配置。
Electron 32 更新
在此里程碑中,我们将 Electron 32 更新推广给我们的稳定版用户。此更新附带 Chromium 128.0.6613.186 和 Node.js 20.18.0。我们要感谢所有在 Insider 版本上自托管并提供早期反馈的人。
值得注意的修复
- 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 扩展:将对 CopilotRelated 的调用注册到 copilot 扩展 PR #228610
- @ShadowRZ (夜坂雅):修复:在 package.json 中使用正确的桌面名称 PR #231472
- @trevor-scheer (Trevor Scheer):标记消息空白
nowrap
->pre
PR #229454 - @vietanhtwdk:在 resize stickyscroll 上重新渲染 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):修复 workdir 符号链接的回归 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