2025 年 1 月(版本 1.97)
更新 1.97.1:此更新解决了这些安全问题。
更新 1.97.2:此更新解决了这些问题。
下载:Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
欢迎使用 Visual Studio Code 2025 年 1 月版。此版本包含许多更新,我们希望您会喜欢,其中一些主要亮点包括:
- 下一个编辑建议(预览版) - Copilot 预测您可能进行的下一个编辑。
- 重新定位命令面板 - 将命令面板和快速输入拖动到新位置。
- 自动接受编辑 - 在可配置的超时后自动接受来自 Copilot 的编辑。
- 信任扩展发布者 - 通过信任扩展发布者来保持您的环境安全。
- 复合日志 - 将多个日志合并到单个聚合日志视图中。
- 筛选输出日志 - 筛选“输出”面板的内容。
- Git 追溯信息 - 丰富的 git 追溯信息和在 GitHub 上打开。
- 在调试变量中搜索值 - 在调试变量中筛选和搜索特定值。
- 笔记本内联值 - 查看笔记本中代码单元格变量的内联值。
- Python 无配置调试 - 快速调试 Python 脚本或模块,无需设置。
如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新。Insiders: 想尽快试用新功能吗?您可以下载每晚构建的 Insiders 版本,并在最新更新可用时立即试用。
GitHub Copilot
Copilot 下一个编辑建议(预览版)
设置:github.copilot.nextEditSuggestions.enabled
GitHub Copilot 代码补全在自动完成方面表现出色,但由于大多数编码活动都是编辑现有代码,因此补全的自然演变也是帮助进行编辑。因此,我们很高兴发布一项新的预览功能,Copilot 下一个编辑建议 (Copilot NES)。
根据您正在进行的编辑,Copilot NES 既可以预测您想要进行的下一个编辑的位置,也可以预测该编辑应该是什么。NES 建议对您当前工作相关的未来更改,您只需按 Tab 键即可快速导航并接受建议。
在以下示例中注意,更改变量会触发文件更下方位置的编辑建议。只需使用 Tab 键即可导航并接受建议。装订线指示器将引导您找到下一个编辑建议。
通过 VS Code 设置 github.copilot.nextEditSuggestions.enabled 启用 Copilot NES。
根据编辑的大小和类型,建议的呈现方式可能会从并排动态更改为当前行下方。配置 editor.inlineSuggest.edits.renderSideBySide 设置以始终在当前行下方呈现建议。
Copilot NES 正在快速发展,我们迫不及待地想通过 我们的 repo 中的问题获得您的反馈。您可以阅读我们完整的 Copilot NES 文档,以获取更多信息和场景,因为我们正在扩展 NES 体验。
注意:如果您是 Copilot Business 或 Enterprise 用户,您的组织管理员必须选择加入使用 Copilot “编辑器预览功能”,此外您还需要在编辑器中设置 github.copilot.nextEditSuggestions.enabled。
Copilot 编辑
Copilot 编辑正式发布
在我们的 VS Code 10 月版本中,我们宣布了 Copilot 编辑的预览版。今天,我们现在宣布 Copilot 编辑正式发布!Copilot 编辑针对代码编辑进行了优化,使您能够直接从聊天中跨工作区中的多个文件进行代码更改。
改进的编辑器控件
现在可以单独接受和丢弃编辑,为您提供更多控制权。另一个新功能是,当切换到并排视图时,编辑器的编辑控件仍然可见。这对于理解较大的更改很有用。
主题:GitHub Light Colorblind (Beta)(在 vscode.dev 上预览)
最后,我们添加了一个新设置,用于在可配置的超时后自动接受编辑建议。该设置是 chat.editing.autoAcceptDelay,它指定了在多少秒后接受更改。当您与接受按钮交互或开始查看更改时,倒计时停止。对于周末狂欢观看的人来说,这应该很熟悉。
主题:GitHub Light Colorblind (Beta)(在 vscode.dev 上预览)
在编辑器中应用
在 Copilot 聊天中,任何代码块都可以通过使用代码块工具栏中的应用到编辑器操作应用于工作区中的文件。我们对此体验进行了一些改进:
-
操作的悬停现在显示了代码块是为哪个文件生成的。
-
如果代码块是为不存在的文件生成的,系统会提示您在何处创建文件。可以在 Copilot 建议的文件路径、未命名的编辑器或当前活动的编辑器中创建。
-
当计算并应用更改时,将使用与 Copilot 编辑相同的流程和 UI。您可以单独查看、改进或丢弃每个更改。
时间上下文
时间上下文通过告知语言模型您最近与之交互的文件,在编辑或生成代码时提供帮助。我们正在试验和衡量其有效性,但也可以手动启用它,github.copilot.chat.editor.temporalContext.enabled 用于内联聊天,github.copilot.chat.edits.temporalContext.enabled 用于 Copilot 编辑。
工作区索引状态 UI
当您使用 @workspace
或 #codebase
向 Copilot 询问有关项目中的代码的问题时,我们会使用索引来快速准确地搜索您的代码库,以查找要包含为上下文的相关代码片段。此索引可以是 GitHub 管理的远程索引、本地存储的索引,或者 基本索引,用作无法使用远程索引的大型项目的后备。
在此迭代中,我们已将新的工作区索引添加到状态栏中的语言状态指示器,该指示器显示 Copilot 正在使用的索引类型和相关信息,例如正在重新索引的文件数。要查看此信息,只需在 VS Code 状态栏中选择 {}
图标。
查看 Copilot 工作区文档,了解有关工作区索引类型以及如何在它们之间切换的更多信息。
构建远程工作区索引
远程工作区索引由 GitHub 管理。远程索引可以快速提供高质量的结果,即使对于大型项目也是如此。它们也只需每个 GitHub 项目构建一次,而不是每个用户构建一次。
鉴于所有这些优点,我们添加了几种新方法来将项目升级到远程索引:
-
运行新的GitHub Copilot: 构建远程索引命令。
-
在 工作区索引状态 UI 中选择“构建索引”按钮。这仅在您的项目有资格进行远程索引时才会显示。
-
在您看到的第一个
@workspace
响应中选择“构建索引”按钮。这仅在您的项目符合条件时显示,并且每个工作区仅显示一次。
请记住,目前只有具有 GitHub 远程仓库的项目才能使用远程索引。构建远程索引也可能需要一些时间,特别是如果您的项目很大。检查 工作区索引状态 UI 以查看远程索引是否已完成。
工作区搜索改进
我们还继续优化 @workspace
和 #codebase
的代码搜索。亮点包括:
Git 更改上下文变量
在为聊天或编辑编写查询时,您现在可以使用 #changes
上下文变量引用在 Git 源代码管理中修改的文件。例如,您可以提示 summarize the #changes in my workspace
(总结我的工作区中的 #changes)。
模型可用性
现在,您在使用 Copilot 时有更多模型可供选择。以下模型现在在 Visual Studio Code 和 github.com 聊天中的模型选择器中可用:
-
OpenAI 的 o3-mini:OpenAI 最新的推理模型已逐步推广到您的编码工作流程中,并将提供给 GitHub Copilot Pro、Business 和 Enterprise 用户。在 GitHub 博客文章中了解有关 o3-mini 模型可用性的更多信息。
-
Gemini 2.0 Flash:Google 的最新模型在代码建议、文档和代码解释方面表现出强大的功能。此模型现在可供所有 GitHub Copilot 客户(包括 Copilot Free)使用。在 GitHub 博客文章中了解有关 Gemini 2.0 Flash 模型可用性的更多信息。
辅助功能
增强的辅助功能声音
我们根据用户反馈改进了多种辅助功能声音,以提高清晰度和区分度。以下声音已更新:
- accessibility.signals.save
- accessibility.signals.lineHasFoldedArea
- accessibility.signals.terminalQuickFix
- accessibility.signals.lineHasInlineSuggestion
您可以通过从命令面板运行命令帮助:列出信号声音来预览这些更新。
Copilot 编辑辅助功能帮助对话框
屏幕阅读器用户现在可以通过在输入框中调用 ⌥F1(Windows Alt+F1,Linux Shift+Alt+F1) 来访问有关与 Copilot 编辑交互的指南。
此外,当编辑器包含待处理的 Copilot 编辑时,此状态现在会在编辑器帮助对话框中指示。我们还为导航到下一个 ⌥F5(Windows、Linux Alt+F5)/上一个 ⇧⌥F5(Windows、Linux Shift+Alt+F5)、接受 ⇧⌘Enter(Windows、Linux Ctrl+Shift+Enter)、丢弃 ⇧⌘Backspace(Windows、Linux Ctrl+Shift+Backspace) 和切换差异视图 引入了键盘快捷键。
源代码管理辅助功能帮助对话框
如果在焦点位于“源代码管理”视图时调用显示辅助功能帮助命令,它将打开“源代码管理辅助功能帮助”对话框,为屏幕阅读器用户提供重要信息。该对话框包含当前源代码管理状态的摘要以及有关视图和如何导航它们的一般信息。
改进的屏幕阅读器通知
当检测到屏幕阅读器时,相关通知现在包含一个链接以了解更多信息,从而提供额外的上下文和资源。
在文本转语音中忽略代码块
以前,当您使用文本转语音读取 Copilot 响应时,代码块也会被大声朗读出来。您可以使用 accessibility.voice.ignoreCodeBlocks 设置来忽略文本转语音会话中的代码块。
工作台
移动命令面板和快速输入
您现在可以将命令面板和其他快速输入移动到新位置,而不是将其固定在窗口顶部。
功能:
- 拖放命令面板或任何其他快速输入,并捕捉到中心和顶部
- 跨重新加载持久保存位置,允许您为快速输入设置新的永久位置
- 预设位置在“自定义布局”选择器中可用
信任扩展发布者
当您首次安装来自发布者的扩展时,您现在将看到一个对话框,帮助您评估扩展发布者的可信度。此功能有助于确保您只安装来自受信任来源的扩展,从而增强开发环境的安全性。
如果您安装扩展包或带有依赖项的扩展,信任发布者也会隐式信任与其一起安装的扩展的发布者。
当您更新到 VS Code 1.97 版本时,当前安装的扩展的发布者将自动被信任。您可以使用扩展:管理受信任的扩展发布者命令来管理受信任的扩展发布者。此命令允许您重置或撤销对您以前信任的发布者的信任。
注意:当没有 VS Code 窗口打开并且您从 CLI 安装扩展时 (code-insiders --install-extension pub.name
),扩展已安装,但发布者未添加到受信任列表。
有关更多信息,您可以访问了解更多链接。
输出面板筛选
您现在可以筛选“输出”面板的内容,这可以大大改进日志的管理和分析,尤其是在您必须处理大量日志数据时。
- 按日志级别筛选: 根据日志的严重性级别(例如,错误、警告、信息)筛选日志。这有助于您首先关注最关键的问题。
- 按类别筛选: 按特定类别缩小日志范围,允许您隔离来自特定来源或组件的日志。类别会自动从日志数据中拾取。
- 按文本筛选: 在日志中搜索特定文本以快速找到相关条目。
复合日志
有时您会发现信息分散在多个日志中,您需要一起查看它们才能获得完整的画面。您现在可以在单个复合日志视图中查看多个日志。将此与新的筛选功能相结合,日志分析变得更加出色!
要创建自定义复合日志,请使用“输出”面板溢出菜单中的创建复合日志... 操作。
您还可以在编辑器或新的 VS Code 窗口中打开复合日志,以进行灵活的监视和分析。此功能通过提供相关日志的整合视图,提高了您诊断问题的能力。
注意: 复合日志视图当前不会跨 VS Code 重启持久保存。
导出和导入日志
您现在可以使用“输出”视图溢出菜单中的操作导出和导入日志。此功能通过使共享和查看日志变得容易,从而增强了协作和日志管理。
在“输出”面板的溢出菜单中选择相应的导出日志或导入日志操作以导出或导入日志。
设置编辑器搜索修复
在此迭代中,我们修复了一个回归问题,即缺少字母的搜索查询未显示预期结果。例如,当您搜索“editor formonpast”时,“设置”编辑器找不到 editor.formatOnPaste 设置。
我们还修复了一个问题,即“设置”编辑器即使在窄编辑器组中也会在搜索期间显示目录。
主题:Light Pink(在 vscode.dev 上预览)
扩展筛选器增强功能
为了帮助您跟踪有可用更新的扩展并查找最近更新的扩展,您现在在“扩展”视图中有两个新的筛选选项:@outdated
和 @recentlyUpdated
。
SVG 图像预览支持
内置图像预览现在对预览 SVG 文件提供基本支持。
查看 Visual Studio Marketplace 以获取更高级的 SVG 预览扩展。
从 CLI 中删除工作区中的根文件夹
以前,您已经可以使用 --add
命令行选项将根文件夹添加到多根工作区。
我们现在还添加了使用新的 --remove
命令行选项从多根工作区中删除根文件夹的功能。
code --remove /path/to/rootfolder
编辑器
持久保存查找和替换历史记录
上个里程碑中,我们向编辑器查找控件引入了历史记录持久性。在这个里程碑中,我们将进一步扩展到替换输入控件,以便您可以在多个会话中分别维护两者。替换历史记录按工作区存储,可以通过 editor.find.replaceHistory 设置禁用。
注释
关闭未提交的注释时的确认
当您 esc
或以其他方式关闭包含未提交注释的注释控件时,将显示确认对话框。您可以使用设置 comments.thread.confirmOnCollapse 禁用此确认。
注释编辑器中的快速操作
快速操作可以从注释编辑器中使用。
源代码管理
Git 追溯信息
在此里程碑中,我们继续改进在编辑器和状态栏中显示 git 追溯信息的功能。我们还改进了当您悬停在编辑器装饰或状态栏项目上时显示的信息。
git 追溯状态栏项目现在默认启用,您可以使用 git.blame.statusBarItem.enabled 设置禁用它。使用 git.blame.editorDecoration.enabled 设置启用 git 追溯编辑器装饰。
我们还添加了命令,可以通过使用命令面板或使用键盘快捷键轻松切换 git 追溯信息:Git:切换 Git 追溯编辑器装饰和Git:切换 Git 追溯状态栏项目。
GitHub 存储库
对于托管在 GitHub 上的存储库,我们在时间线上下文菜单和悬停、源代码管理图上下文菜单和悬停以及 git 追溯编辑器装饰和状态栏项目悬停中添加了一个新命令,在 GitHub 上打开。
GitHub 问题和拉取请求引用在时间线、源代码管理图以及 git 追溯编辑器装饰和状态栏项目悬停中呈现为链接,以便可以轻松地在浏览器中打开它们。
最后但并非最不重要的一点,我们还在时间线、源代码管理图以及 git 追溯编辑器装饰和状态栏项目悬停中添加了 GitHub 头像。使用 github.showAvatar 设置禁用 GitHub 头像的呈现。
源代码管理图操作
我们通过向上下文菜单添加作用域限定为历史记录项引用(例如,分支标记)的操作来扩展“源代码管理图”视图的功能。我们添加的第一个操作是检出、删除分支和删除标记,允许您直接从“源代码管理图”视图轻松检出分支/标记、删除分支和删除标记。
我们计划在即将到来的里程碑中添加更多操作。
笔记本
单元格执行后的内联值
笔记本编辑器现在支持在单元格执行后显示内联值,使用设置 notebook.inlineValues。启用后,在单元格成功执行后,将根据注册的 InlineValueProvider
的结果显示内联值。
如果没有提供程序,则回退方法通过简单的正则表达式匹配将内核中找到的值与单元格文档进行匹配。建议使用来自语言扩展的提供程序,以确保更准确的结果。
Markdown 单元格的自定义字体系列
笔记本编辑器现在支持为呈现的 Markdown 单元格设置自定义字体系列。可以使用 notebook.markup.fontFamily 设置控制此设置。留空时,将使用默认工作台字体系列。
终端
连字支持
此功能现在被认为是稳定的。以下是自上个版本以来的更改摘要:
- 启用设置已从
terminal.integrated.fontLigatures
更改为 terminal.integrated.fontLigatures.enabled。 - 当光标或选择在连字内时,连字现在暂时禁用。
- 使用 terminal.integrated.fontLigatures.featureSettings 设置连字集和变体。这将在幕后传递到
font-feature-settings
CSS 属性。 - 当不支持我们用来解析连字的库时,使用 terminal.integrated.fontLigatures.fallbackLigatures 手动设置连字序列。
支持 ConEmu 的进度转义序列
现在支持 ConEmu 首创的 ESC ] 9 ; 4
转义序列,该序列报告终端中的进度。某些 CLI 工具(例如 winget
)使用此序列来报告进度。要在终端选项卡中查看进度,请将 ${progress}
添加到 terminal.integrated.tabs.title 或 terminal.integrated.tabs.description。这通常显示为进度微调器或百分比。
截断命令的粘性滚动
终端中的粘性滚动 (terminal.integrated.stickyScroll.enabled) 现在在命令末尾用省略号截断时显示。
配置最后一个终端关闭时的行为
新的 terminal.integrated.hideOnLastClosed 设置允许配置在最后一个终端关闭时是否关闭面板。与此同时,没有终端打开时的体验也得到了改进。
任务
列号变量
新的 ${columnNumber}
变量可以在 tasks.json
和 launch.json
中使用,以引用光标位置的列号。请参阅 VS Code 文档中 变量 的完整列表。
调试
在值上筛选和搜索
您现在可以在“变量”和“监视”视图中的视图内搜索 (⌥⌘F(Windows、Linux Ctrl+Alt+F)),以筛选变量和表达式值,而不仅仅是名称。
在调试控制台中选择
“调试控制台”现在支持更长且更可靠的内容选择,从而更容易复制和粘贴。
JavaScript 调试器
即使脚本不是调试器当前暂停的源,现在也可以使用命令面板或编辑器操作中的 调试:漂亮打印以进行调试 命令来漂亮打印脚本。
语言
TypeScript 5.7.3
此版本包含 TypeScript 5.7.3 恢复版本。此小更新修复了一些导入错误和回归。
右键单击以从 Markdown 预览中打开图像
您现在可以右键单击 Markdown 预览中的工作区图像,然后选择打开图像以在新编辑器中打开它。
这适用于当前工作区中包含的任何图像。
Markdown 链接验证状态项
VS Code 的内置 Markdown 功能支持自动验证指向文件和图像的本地链接。这是捕获常见错误的好方法,例如链接到已重命名的标头或磁盘上不再存在的文件。
为了帮助您发现此功能,我们为链接验证添加了一个新的语言状态项:
打开 Markdown 文件后,选择状态栏中的 {}
以查看链接验证状态。您还可以使用状态项快速关闭和打开链接验证。
新的 Ruby 语法突出显示语法
我们已从旧的、未维护的、来自 textmate/ruby.tmbundle
的 Ruby 语法转移,现在从 Shopify/ruby-lsp
获取我们的 Ruby 语法。
远程开发
远程开发扩展允许您使用 Dev 容器、通过 SSH 或 远程隧道 的远程计算机或 Windows Subsystem for Linux (WSL) 作为功能齐全的开发环境。
亮点包括:
- 连接到 Linux 传统服务器的迁移路径
- SSH 聊天参与者改进
- SSH 配置改进
- SSH 的默认远程扩展
您可以在远程开发发布说明中了解有关这些功能的更多信息。
扩展贡献
Microsoft 帐户
Microsoft 帐户现在使用 MSAL(在 Windows 上支持 WAM)
注意:上个月基于 MSAL 的 Microsoft 身份验证的推出由于一个严重错误而被回滚。此错误已得到修复,我们正在继续推出。
为了确保 Microsoft 身份验证的强大安全基线,我们在 Microsoft 帐户扩展中采用了 Microsoft 身份验证库。
这项工作的突出特点之一是 WAM(Web 帐户管理器...也称为 Broker)集成。简而言之,我们现在直接与操作系统对话,而不是转到浏览器进行 Microsoft 身份验证流程,这是获取 Microsoft 身份验证会话的推荐方式。此外,由于我们能够利用您已在操作系统上登录的帐户,因此速度更快。
如果您发现此新流程有任何问题,请告知我们。如果您确实发现重大问题并且需要恢复到旧的 Microsoft 身份验证行为,您可以使用 microsoft-authentication.implementation 设置(将其设置为 classic
,并重启 VS Code),但请记住,此设置不会存在太久。因此,如果您在使用 MSAL 流程时遇到问题,请打开一个 issue。
Python
从终端启动原生 REPL
您现在可以从终端中的 REPL 启动 VS Code 原生 REPL。将 python.terminal.shellIntegration.enabled 设置为 true
应该会在终端中的 Python REPL 中显示一个可点击的链接,允许您直接从终端打开 VS Code 原生 REPL。
无配置调试
现在,您可以直接从终端调试 Python 脚本或模块,无需设置,这是新的无配置调试功能的一部分!查看有关该功能的 wiki 页面,了解所有详细信息和故障排除技巧。
测试发现取消
从测试资源管理器 UI 触发测试发现时,您现在可以取消正在进行的测试发现调用。使用“取消”按钮,该按钮在发现期间会替换“刷新”按钮。
转到实现
Pylance 现在支持转到实现,这使您可以更快地从函数或方法的使用位置导航到其实现。当处理继承类时,这是一个特别有用的功能。
AI 代码操作:生成符号(实验性)
有一个新的实验性 AI 代码操作,用于使用 Pylance 和 Copilot 生成符号。要试用它,您可以启用以下设置
"python.analysis.aiCodeActions": {"generateSymbol": true}
然后,一旦您定义了一个新的符号,例如类或函数,您可以选择使用 Copilot 生成符号代码操作,并让 Copilot 处理实现!如果需要,您可以利用 Pylance 的移动符号代码操作将其移动到不同的文件。
GitHub Pull Requests and Issues
GitHub Pull Requests 扩展在取得更多进展,该扩展使您可以处理、创建和管理 pull request 和 issue。新功能包括
- 全局 pull request 查询,带有一个变量来指定相对于今天的时间范围 (
${today-7d}
)。 - 现在在评论中支持
:<emoji-name>:
样式的表情符号。 - 当您打开未签出的 pull request 的描述时,所有非过时的评论都将显示在“评论”面板中。
查看扩展的 0.104.0 版本的更新日志,了解其他亮点。
预览功能
代理模式(实验性)
我们一直在为 Copilot Edits 开发一种新的代理模式。在代理模式下,Copilot 可以自动搜索您的工作区以查找相关上下文,编辑文件,检查错误,并运行终端命令(在您允许的情况下)以端到端地完成任务。
您可以使用 Copilot Edits 视图中的下拉菜单在当前编辑模式(我们已经使用几个月了)和代理模式之间切换。要查看下拉菜单,请启用 chat.agent.enabled 设置。您今天可以在 VS Code Insiders 中开始使用代理模式。我们将逐步将其推广到 VS Code Stable 用户。如果该设置没有在 Stable 版本中显示给您,则表示尚未为您启用。
在代理模式下,Copilot 会自主运行,但它只能编辑您当前工作区内的文件。当它想要运行终端命令时,它会向您显示该命令,并等待您查看并选择“继续”后才继续。
注意:Copilot Edits 在代理模式下可能会使用许多聊天请求,因此它会定期暂停并询问您是否继续。您可以使用 chat.agent.maxRequests 自定义此设置。对于 Copilot 付费用户,此默认值为 15,对于 Copilot 免费用户,此默认值为 5。
在 VS Code 文档中了解有关 Copilot Edits 中的代理模式的更多信息。
Agentic 代码库搜索(预览)
您可以将 #codebase
添加到您的查询中,Copilot Edits 将发现与您的任务相关的文件。我们添加了实验性支持,以使用其他工具(如文件和文本搜索、Git 存储库状态和目录读取)来发现相关文件。以前,#codebase
仅执行语义搜索。
您可以使用 github.copilot.chat.edits.codesearch.enabled 启用它,并请与我们 分享任何反馈。
VS Code Insiders 中的 Copilot Vision(预览)
我们正在 VS Code Insiders 中的 GitHub Copilot Chat 预发布版本中引入端到端视觉支持。这使您可以附加图像并在 Copilot Chat 提示中与图像交互。例如,如果您在调试时遇到错误,请快速附加 VS Code 的屏幕截图,并要求 Copilot 帮助您解决问题。
您现在可以使用多种方法附加图像
- 从您的操作系统或资源管理器视图中拖放图像
- 从剪贴板粘贴图像
- 附加 VS Code 窗口的屏幕截图(选择“附加”>“屏幕截图窗口”)
如果当前选定的模型不具备处理图像的能力,则会显示警告。目前唯一支持的模型是 GPT 4o
。当前,支持的图像类型为 JPEG/JPG
、PNG
、GIF
和 WEBP
。
可重用提示(实验性)
此功能使您可以构建、存储和共享可重用提示。提示文件是一个 .prompt.md
Markdown 文件,它遵循与在 Copilot Chat 中编写提示相同的格式,并且可以链接到其他文件甚至其他提示。您可以附加提示文件以获得特定于任务的指导、帮助代码生成或保留完整的提示以供以后使用。
要启用提示文件,请将 chat.promptFiles 设置为 true
,或使用 { "/path/to/folder": boolean }
表示法来指定不同的路径。如果未指定其他路径,则默认使用 .github/prompts
文件夹来查找提示文件 (*.prompt.md
)。
在 VS Code 文档中了解有关 提示文件的更多信息。
Linux 上的自定义标题栏(实验性)
在这个里程碑版本中,我们开始一项实验,为一部分 Linux 用户启用自定义标题栏。
如果您不是实验的一部分,您可以手动将 window.titleBarStyle 配置为 custom
以试用它。
您可以随时从自定义标题上下文菜单或通过将 window.titleBarStyle 配置为 native
来恢复为原生标题装饰。
TypeScript 5.8 beta 支持
此版本包括对 TypeScript 5.8 beta 版本的支持。查看 TypeScript 5.8 博客文章,了解有关此版本中包含的内容的详细信息。
要开始使用 TypeScript 5.8 的预览版本,请安装 TypeScript Nightly 扩展。分享您的反馈,并告知我们您是否遇到任何 TypeScript 5.8 的错误。
更多 shell 的终端补全
我们迭代了 上个版本中引入的基于我们新的提议 API 构建的通用终端补全。一旦通过 terminal.integrated.suggest.enabled 启用,新的补全现在取代了以前的 PowerShell 内置提供程序,但现在可以使用 terminal.integrated.suggest.providers 进行自定义。
以下是此版本的主要更新
- 增强的小部件样式和配置,以与编辑器的建议小部件对齐。
- 可配置的状态栏 (terminal.integrated.suggest.showStatusBar) 提供上下文操作和信息。
- 改进了命令的参数感知,包括:
code
、code-insiders
、cd
、ls
、rm
、echo
、mkdir
、rmdir
、touch
。 - 将命令或资源路径显示为其他详细信息。
- 增加了对目录导航快捷方式的支持,例如
.
、..
和../../
。 - 启用了屏幕阅读器使用。
- 从
$PATH
中提取的条目现在仅在它们是可执行文件时才会显示。由于 Windows 在文件元数据中没有可执行位的概念,因此可以使用 terminal.integrated.suggest.windowsExecutableExtensions 配置扩展列表。这些现在还在即将推出的提议 API 中使用实际的 shell 环境(如果可用)。 - 增强的键盘支持,用于切换详细信息,⌃Space (Windows, Linux Ctrl+Space) 和切换建议详细信息焦点 ⌃⌥Space (Windows, Linux Ctrl+Alt+Space)。
- 建议现在将始终在每种类型上显示,更接近编辑器中快速建议的工作方式。
- 现在将建议 PowerShell 特定的全局补全,例如
Get-ChildItem
、Write-Host
等。
基于 Tree-Sitter 的 typescript 语法高亮
由于我们的许多 Textmate 语法不再维护,我们一直在研究使用 Tree-Sitter 进行语法高亮。我们从 TypeScript 开始,以便团队可以自托管并提供反馈。您可以使用 editor.experimental.preferTreeSitter 设置试用早期预览版。
扩展编写
文档粘贴 API
文档粘贴 API 允许扩展程序挂钩到文本文档中的复制/粘贴操作。使用此 API,您的扩展程序可以
-
在复制时,将数据写入剪贴板。这包括写入可以在粘贴时获取的元数据。
-
在粘贴时,生成一个自定义编辑,应用粘贴。这可以更改正在粘贴的文本内容,或进行更复杂的工作区编辑,例如创建新文件。
-
提供多种粘贴内容的方式。用户可以使用粘贴控件或
editor.pasteAs.preferences
设置选择应如何粘贴内容。
VS Code 使用文档粘贴 API 来实现诸如 在粘贴 JavaScript 和 TypeScript 时更新导入和 在粘贴 URL 时自动创建 Markdown 链接等功能。
要开始使用文档粘贴 API,请查看 文档粘贴扩展示例。对于更复杂的示例,请查看内置 Markdown 扩展程序 如何实现粘贴图像文件以将图像插入 Markdown 文档。
文件 openLabel
显示在简单文件选择器中
OpenDialogOptions
中的 openLabel
属性现在在 简单文件选择器 中受到支持(除了以前专门支持它的系统文件选择器之外)。这允许您为文件选择器中的按钮提供自定义标签。
文件级别注释 API
注释 API 支持创建和显示文件级别的注释。文件级别注释显示在文件顶部,第一行之前。它们未附加到文件中的特定行或范围。要显示文件级别注释,请将注释的 range
设置为 undefined
。要支持从您的注释范围提供程序留下文件级别注释,请将您的 CommentingRangeProvider
上的 enableFileComments
属性设置为 true
。
提议的 API
终端补全提供程序
您现在可以 注册终端补全提供程序,并在 此 GitHub issue 中告知我们您的想法。
可以在我们的终端建议扩展中找到一个示例,该扩展在通过 terminal.integrated.suggest.enabled 启用时提供补全。
终端 shell 类型
扩展程序将能够 访问当前活动的 shell 类型信息。shellType
字段将是 TerminalState
的一部分。
使用此 shell 类型信息来执行您需要的特定于 shell 的操作。
工程
内务处理
作为我们 12 月份年度内务处理工作的一部分,我们专注于清理所有存储库中的 GitHub issue 和 pull request。今年,我们净减少了 3,821 个 issue 和 pull request,确保我们的积压工作保持相关性和可管理性。
通过遵循我们的 issue 清理指南,我们审查和分类了过时、重复且不再相关的 issue。这有助于我们保持高效的开发工作流程,并专注于为我们的用户改进 Visual Studio Code。
我们感谢社区的持续参与和反馈 — 您的贡献使 VS Code 每天都变得更好!🚀
TypeScript 工作区中文件监视的资源优化
已经进行了一些优化,以减少文件监视在大型 TypeScript 工作区(数千个 TypeScript 文件或项目)中的开销。具体来说,当打开这样的工作区并初始化监视程序时,您应该不再看到 CPU 峰值或 CPU 使用率应迅速稳定下来。
有关更多详细信息,请参阅此 VS Code issue。
值得注意的修复
- 160325 抑制按下 ctrl+D 后终端启动失败
- 230438 支持代码页
1125
又名cp866u
- 238577 增加默认窗口大小
- 197377 launch.json 或 tasks.json 中的 workspaceFolder 变量替换应为虚拟文件系统使用 URI
- 229857 运行
focus comment on line
后 a11y 视图为空白
感谢
最后但同样重要的是,非常感谢 VS Code 的贡献者。
Issue 跟踪
对我们的 issue 跟踪的贡献
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
- @albertosantini (Alberto Santini)
- @starball5 (starball)
Pull request
对 vscode
的贡献
- @Abrifq (Arda Aydın):更改
创建新终端
以根据终端位置聚焦 PR #237404 - @adrianstephens:自定义编辑器预览 PR #235533
- @andrewsuzuki (Andrew Suzuki):修复 editorBracketHighlight.unexpectedBracket.foreground 的“new Color”字符串拼写错误 PR #237236
- @aslezar (Shivam Garg)
- 修复不正确的 GLIBC 版本解析 PR #236082
- feat: 支持自定义 js switch-case 缩进 PR #237069
- @atreids (Aaron Donaldson):chore: 修复 VSIX 进度通知中的错别字 PR #238845
- @BABA983 (BABA):使用规范资源解析自定义编辑器 PR #226614
- @congyuandong (scott):fix: 删除 dependenciesSrc 中重复的
!**/*.mk
条目 PR #236683 - @DetachHead:删除
javascript.inlayHints.enumMemberValues.enabled
,因为 javascript 没有枚举 PR #236297 - @devm33 (Devraj Mehta):使用 Electron fetch 或 Node fetch 进行 github-authentication 以支持代理 PR #238149
- @dmitrysonder (Dmitry Sonder):refactor: 对事件使用 EventType 常量 PR #236941
- @fa0311 (ふぁ):修复 ${unixTime} 占位符以在 markdown.copyFiles.destination 中使用完整毫秒时间戳 PR #239061
- @g122622:文件菜单的滚动条显示在“打开最近”之上 PR #236998
- @gjsjohnmurray (John Murray):向“打开的编辑器”视图的溢出菜单添加配置选项 PR #237678
- @goodmind (andretshurotshka):修复 #44237:在任务中添加列号 PR #65264
- @HD787 (Henry)
- 为 markdown.copyFiles.destination 选项添加 ${unixTime} 占位符 PR #238027
- 仅当配置文件打开时启用 typescript 命令 PR #238630
- @iamdereky (Derek Yang):修复使用 HTML 转义引号时的 CSS 错误 PR #235367
- @jakebailey (Jake Bailey):从 tsconfig.base.json 中删除路径 PR #238475
- @janajar (Jawad Najar):修复:当搜索编辑器中没有结果时,它会抛出错误 PR #235031
- @jaymroy:Issue: #214481 添加选项以忽略文本转语音中的代码块 PR #235697
- @jogibear9988 (Jochen Kühner):支持图像预览中的 svg PR #237217
- @Jules-Bertholet (Jules Bertholet):在默认快捷方式中支持后退和前进键 PR #237701
- @Legend-Master (Tony):重新发布修复自定义任务 shell 在不手动传入“运行命令”参数/标志的情况下无法工作的问题 PR #236058
- @LemmusLemmus:在 markdown 中向周围的括号对添加 $ PR #233981
- @leopardracer (leopardracer):fix: 文档文件中的错别字 PR #235968
- @misode (Misode):修复加载 json schema 时缺少 uri 到文件路径的转换 PR #237275
- @mohankumarelec (mohanram):修复 #236973 PR #236974
- @notoriousmango (Seong Min Park):在 markdown 预览中添加“打开图像”上下文 PR #234649
- @numbermaniac:修复 InlayHintKind 文档中的错别字 PR #238032
- @oltolm (oltolm):debug: 忽略停止进程时的错误 PR #236009
- @oxcened (Alen Ajam)
- fix: 在小部件失去焦点时将 _lastFocusedWidget 设置为 undefined PR #234610
- fix: 检查 lastFocusedList 在分配时是否有效 PR #238765
- @pankajk07 (Pankaj Khandelwal):fix: 从扩展程序的 web worker 同步加载脚本 PR #233175
- @Parasaran-Python (Parasaran)
- fix 227150: 添加了递归 git 克隆按钮 PR #232497
- fix 235221: 通过关闭未关闭的标签来清理 html 内容 PR #236145
- @r3m0t (Tomer Chachamu):修复从调试器停止和显示活动语句中显示笔记本单元格的问题(修复 #225290)PR #225292
- @rcjsuen (Remy Suen):修复图标扩展点帮助文本中的错别字 PR #238393
- @RedCMD (RedCMD)
- 修复扩展预览代码块语言 getter PR #235880
- 向扩展过滤器添加
outdated
和recentlyUpdated
建议 PR #235884
- @remcohaszing (Remco Haszing)
- 将 bun.lock 标记为 jsonc PR #235917
- 允许 .ndjson 扩展名用于 jsonl 语言 PR #235921
- @RiskyMH (Michael H):
bun.lock
作为包管理器 lockfile PR #236012 - @sunnylost (sunnylost):fix(settings-editor): 确保键名宽度不会缩小 PR #229919
- @tcostew:允许 Github Copilot chat 出现在 QuickAccess 中 PR #210805
- @tmm1 (Aman Karmani)
- build: 更新以包含更多 tsc 样板代码 PR #238422
- build: 将
build/tsconfig.json
切换到module: nodenext
PR #238426
- @tobil4sk:合并不同的 findExecutable 函数 PR #228373
- @zWingz (zWing):fix(git-ext): 修复 limitWarning 阻止 git 状态进度的问题 PR #226577
对 vscode-eslint
的贡献
- @ShahinSorkh (Shahin Sorkh):明确在哪里设置
eslint.runtime
和eslint.execArgv
选项 PR #1973
对 vscode-extension-samples
的贡献
对 vscode-js-debug
的贡献
- @mdh1418 (Mitchell Hwang):更新 BlazorDebugger 遥测报告事件 PR #2158
对 vscode-jupyter
的贡献
- @gy-mate (Máté Gyöngyösi):将 'URL' 大写 PR #16340
- @pwang347 (Paul):为
onDidStart
事件添加waitUntil
PR #16375
对 vscode-loc
的贡献
- @NicoWeio (Nicolai Weitkemper):改进 README 中的语法 PR #1367
对 vscode-prompt-tsx
的贡献
对 vscode-pull-request-github
的贡献
- @mikeseese (Mike Seese):添加选择始终提示为 issue 创建选择仓库的选项,并在 issue 文件中添加注释指定仓库 PR #6115
- @NellyWhads (Nelly Whads): 移除 python 语言用户提及异常 PR #6525
- @Ronny-zzl (Zhang): 在 jsx 和 tsx 文件的 JSDocs 中,不要为 @-提及的用户显示悬停卡片 PR #6531
对 vscode-pylint
的贡献
- @DetachHead: 针对 pylint 错误导致的内存泄漏的临时解决方案 PR #585
对 vscode-python-debugger
的贡献
对 vscode-ripgrep
的贡献
- @fiji-flo (Florian Dieminger): 修复长时间下载的问题 PR #62
- @tmm1 (Aman Karmani): 修复 arm64 Windows 的问题 PR #63
对 vscode-test
的贡献
- @kamaal111 (Kamaal Farah): 文档:更新 Github Actions 链接以指向示例 PR #297
对 language-server-protocol
的贡献
- @asukaminato0721 (Asuka Minato): cython-lsp PR #2064
- @catwell (Pierre Chapuis): 添加 Teal LSP PR #2078
- @Enaium (Enaium)
- @g-plane (Pig Fang): 新的语言服务器:wasm-language-tools PR #2065
- @jcs090218 (Jen-Chieh Shen): 构建(_implementors/servers.md):更新 Ellsp 链接 PR #2073
- @kbwo (Kodai Kabasawa): 在 servers.md 中添加 testing-language-server PR #2076
- @kylebonnici (Kyle Micallef Bonnici): 将 Devicetree LSP 添加到列表 PR #2085
- @ribru17 (Riley Bruins): 添加 ts_query_ls (Tree-sitter 查询语言服务器) PR #2068