本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

2023年9月 (版本 1.83)

更新 1.83.1:此更新解决了这些问题

下载: Windows: x64 Arm64 | Mac: 通用 英特尔 | Linux: deb rpm tarball Arm snap


欢迎来到2023年9月Visual Studio Code的发布版本。这个版本有很多更新,我们希望你会喜欢,其中一些主要亮点包括:

如果您想在线阅读这些发行说明,请访问 更新 页面 code.visualstudio.com.

内部人士: 想尽快尝试新功能吗?你可以下载 内部人士 构建版,并在最新更新可用时立即尝试。

无障碍

GitHub 拉取请求和问题评论改进

GitHub Pull Requests and Issues扩展,允许您进行、创建和管理拉取请求和问题,在这一迭代中,对评论和审查体验进行了许多无障碍改进。

当屏幕阅读器用户打开一个编辑器时,如果该编辑器包含注释范围,他们会得到通知。一个新的无障碍帮助对话框 (编辑器操作:无障碍帮助) 提供了在评论线程和范围之间导航的命令见解。

此外,评论控制现在可以访问了。帮助对话框 (编辑器操作:无障碍帮助) 在该上下文中也可用于告知用户可以期望什么以及如何使用该功能。还有新的命令评论:转到下一个评论范围 (⌘K ⌥⌘↓ (Windows, Linux Ctrl+K Ctrl+Alt+Down)) 和评论:转到上一个评论范围 (⌘K ⌥⌘↑ (Windows, Linux Ctrl+K Ctrl+Alt+Up)) 用于在评论范围之间导航。

工作台

类似的命令会在命令面板中产生结果

找到你正在寻找的命令可能会很有挑战性。仅在 VS Code 中就有超过 2000 个命令……而且随着你最喜欢的扩展,这个数字可能会更高。我们想介绍一种方法,帮助你找到你正在寻找的东西,同时保持命令面板今天的速度。为此,我们在命令面板结果中新增了一个名为“相似命令”的部分。以下是一些示例:

查询不再需要“模糊匹配”才能显示在结果中。例如“切换自动保存”:

“开启自动保存”和“切换自动保存”显示在类似的成果部分

如果有模糊的结果,那些仍然显示在顶部,并且类似的命令会跟随:

用户搜索“更改语言”和“配置显示语言”在类似的结果部分显示。

扩展贡献的命令也会被识别:

用户搜索了“显示git责备”和“切换文件责备”,在类似结果部分显示。

我们认为这真的会帮助那些在记忆确切命令名称上挣扎的人……坦白说,这基本上是我们所有人曾经或现在的情况。

这只是这个新功能的初步实现,仍然需要匹配命令名称的精确单词。未来,可以期待以下改进:

  • 根据命令的非可见描述进行命令匹配。
  • 更好的基本处理同义词(“切换”和“开启/关闭”,“显示”和“揭示”等)

告诉我们您的想法!

个人资料图标

现在你可以将一个图标与个人资料关联。这个图标将会在活动栏中取代管理的齿轮图标。如果你有多个个人资料,并且想快速识别当前激活的个人资料,这将非常有用。

以下图片显示了在创建新配置文件时的图标选择对话框。

图标选择对话框

然后在活动栏中显示活动配置文件图标。

活动个人资料图标在活动栏中

编辑标签高度密度

window.density.editorTabHeight设置允许用户将标签高度调整到更紧凑的尺寸。

默认编辑器标签高度

编辑器标签默认高度

紧凑编辑器标签高度

编辑器标签紧凑高度

固定编辑器标签在单独的行上

一个新的设置工作台.编辑器.固定标签页在单独的行上 已添加。激活时,固定标签页 会显示在其他标签页上方的单独行中。当在标签页行之间拖动时,编辑器标签页会自动固定或取消固定。

移动编辑器标签在两个标签行之间

设置编辑器搜索调整

设置编辑器现在显示较少的搜索结果,以减少噪音。如果你安装了GitHub Copilot Chat扩展,除了通过关键词匹配找到的设置外,只选择前五名 Copilot Chat 设置匹配,而不是前十五名。

搜索结果现在也按照“设置编辑器”目录进行排序,将常用设置显示在顶部,并显示过滤后的扩展设置的原始顺序。若要恢复按匹配类型和分数对搜索结果进行排序,请设置工作台.设置.设置搜索目录行为设置为"隐藏"清除搜索查询并开始另一个搜索。

在设置编辑器中搜索“default formatter”会导致设置编辑器默认格式化器出现在顶部。

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

改进了编辑器操作的溢出行为

当编辑操作的数量超过可用空间时,操作会溢出到请输入具体的网页文本内容,以便我进行翻译。 更多操作 菜单。此逻辑已被优化,一些重要的操作,如关闭拆分编辑器,现在已被排除在外。这意味着即使可用空间有限,它们也将始终可见。

颜色主题选择器现在显示主题标识符

颜色主题选择器现在会显示颜色主题的本地化名称及其字符串标识符。这是为了帮助使用非英文语言包但只知道主题英文名称的用户。

韩文主题选择器显示了旁边是本地化名称的英文主题标识符

评论

评论编辑器用于扩展,例如GitHub 拉取请求和问题扩展,它在那里显示拉取请求的评论。

评论编辑器大小

评论编辑器现在会随着行数的增加而扩展,扩展的高度取决于评论所在编辑器的大小。

评论编辑器随着行的添加而扩展

打开评论视图,查看未解决的评论

设定评论.打开视图有一个新的可能值第一个文件未解决设置第一个文件未解决导致在每次会话中打开第一个带有未解析注释的文件时,注释视图打开。

自动折叠已解决的评论

默认情况下,当您解决一个评论线程时,它现在会折叠。此功能可以通过设置禁用。"评论.折叠已解决内容"输入:.

编辑器

保存时和自动保存时的代码操作

您现在可以在编辑器中启用自动保存时的代码操作。这会在您保存或Windows更改时自动保存(onWindowChange) 或焦点更改 (焦点更改时) 要启用此功能或更新您的当前设置,请检查 编辑器:保存时代码操作 (编辑器.保存时代码操作) 并将每个代码操作的设置更改为总是输入:.

设置值也已更新,当前的布尔值将被弃用,取而代之的是字符串等价物。

选项是:

  • 明确的触发代码操作时显式保存。同输入:.
  • 总是触发代码操作在显式保存和Windows或焦点变化时自动保存。
  • 从不: 从不触发保存时的代码操作。与相同。输入:.

在此次发布中,仍然支持布尔值。

笔记本电脑

转到笔记本中的符号

随着notebook.转到符号.显示所有符号 启用后,转到符号 快速选择将包含笔记本中的所有代码符号。

滚动查看单元格执行

现在您可以配置在运行时显示下一个单元格的多少内容notebook.cell.executeAndSelectBelowShift+Enternotebook.scrolling.revealNextCellOnExecute设置:

  • 满格- 完整的下一个单元格(默认)。
  • 第一行- 只是第一行。
  • - 完全不要滚动。

"notebook.scrolling.revealNextCellOnExecute": "firstLine"如下所示。

空白字符修剪支持

笔记本现在会遵守现有的三个空白字符相关的设置:

  • 文件.删除尾部空白字符- 保存文件时修剪尾随空白。
  • 文件.修剪最终换行符- 去除文件中最后一个换行符之后的所有换行符。
  • 文件插入最终换行符- 自动在文件末尾插入一个最终的换行符。

这些设置在保存时应用,包括自动保存。

最终确定的笔记本代码操作API

笔记本现在完全支持贡献的代码操作,并且有一个专门的代码操作类型来支持它们。如果扩展作者定义了一个带有孩子前缀笔记本来源。在保存时,笔记本编辑器会针对整个笔记本执行提供的操作,而不是每个单元格分别执行。要编辑保存时将运行的代码操作,您可以在设置编辑器中设置Notebook: Code Actions on Save,或编辑"notebook代码行为保存时"在你的settings.json文件。

当前的代码行为启用项已更新,以前的布尔值已弃用,取而代之的是枚举等价项。选项如下:

  • "明确的"触发代码操作时显式保存。同输入:.
  • “从不”: 从不触发保存时的代码操作。与相同。输入:.

第三种选择"总是"即将推出,以完全匹配编辑器代码操作,允许用户在自动保存设置下触发笔记本代码操作焦点更改时onWindowChange输入:.

语言

Perl 6/Raku

Perl 6 语言已被重命名为 Raku (语言标识符拉库),并且Raku将自动选择为语言。.乐文件。

调试

JavaScript 调试器

WebAssembly 调试

JavaScript 调试器现在可以调试编译成 WebAssembly 的代码,如果该代码包含DWARF调试信息。例如,使用Emscripten编译的 C++ 代码可以进行调试:

调试器在C++源代码中的一个断点处停止

主题: Codesong (预览于 vscode.dev)

要启用此功能,您需要安装WebAssembly DWARF 调试扩展,该扩展插件到内置的JavaScript调试器中。在调试 WebAssembly中阅读更多内容。

WebAssembly 调试是基于 C/C++ 调试扩展 的,由 Chromium 作者开发,并在他们的支持下实现。

改进的调用堆栈视图

方法和函数在调用栈视图中现在将包括函数名称(这个) 上下文。例如,方法的调用堆栈酒吧在课堂上输入:Foo现在显示为Foo.bar输入:.

远程开发

这些远程开发扩展允许您通过SSH或远程隧道,或Windows子系统 for Linux(WSL)使用开发容器,作为功能齐全的开发环境。

此版本增加了使用隧道连接到开发容器的功能,类似于通过SSH连接。您可以在远程开发发布说明中了解更多关于这个新功能的信息。

对扩展的贡献

GitHub Copilot

改进 /tests

我们已经改进/测试 对于聊天视图和 GitHub Copilot Chat 扩展提供的内联聊天。 /测试slash命令现在更擅长检测您使用的测试框架,并将以相同的方式生成新的测试。此外,它在建议新测试文件的名称方面也应该有所改善,例如test_foo.pyfoo.pybar.test.jsbar.js输入:.

内嵌聊天多轮对话

内联聊天现在保留了当前会话的所有提示,这使您可以参考之前的聊天信息并回复问题。

在下面的短视频中,内联聊天记录用户提到他们位于东京,当提供一个计算当地时间与苏黎世时差的代码片段时。

问 GitHub Copilot 默认使用聊天视图

几个月前,我们引入了一个询问 GitHub Copilot 选项到命令面板中,这样如果你的命令面板没有提供有用的答案,你可以在命令面板中输入查询,并在 Copilot 聊天中打开它。

我们收集了关于理想体验的反馈问 GitHub Copilot 应该打开:侧栏中的聊天视图或快速聊天。为了使首次体验更加熟悉,我们选择了聊天视图。

那么,如果您希望询问 GitHub Copilot 在快速聊天中打开,您可以更改行为,使用询问聊天位置设置:

"工作台.命令面板.实验性.询问聊天位置": "快速聊天"

命令面板 相似命令

在这一迭代中,我们发布了相似命令功能到命令面板中。 Copilot Chat用户可以得到更好的相似命令体验,因为我们可以使用Copilot AI来确定相似性。这些智能帮助处理同义词和意图,并且在我们的测试中,Copilot能够处理不同语言之间的相似性。在命令面板中找到您要查找的确切命令从未如此简单!

朱庇特

最终确定了Jupyter服务器提供者API,供扩展作者使用

Jupyter扩展的为贡献Jupyter服务器的API已经定稿。扩展可以使用该API提供一个自定义Jupyter服务器的列表,以显示在内核选择器中。

API用法的示例可以在Jupyter Server Provider Sample中找到。 JupyterHub extension也使用了相同的API。

npm 包@vscode/jupyter-extension包含所有的 TypeScript 类型定义。

JupyterHub 扩展

现在有一个JupyterHub扩展,它支持登录JupyterHub并在VS Code中的笔记本或交互Windows中执行代码 against kernels。这个扩展在vscode.devgithub.dev中的浏览器中也可以工作。

如果您对这个新扩展有任何问题或希望提供反馈,您可以向 JupyterHub扩展GitHub仓库提交问题。

在内核选择器中选择现有的JupyterHub服务器

Python

Python 调试器更新

调试扩展调试扩展在几个月前宣布,现已被重命名为Python 调试器,以提高在市场上的可发现性。

此扩展现在包括一个新的用户设置debugpy调试仅我的代码禁用时,它允许您进入所有应用程序的系统或第三方库代码(默认情况下,调试器仅进入您自己的Python代码定义的代码)。这是那些希望更方便地禁用的人的热门功能请求只是我的代码对他们所有的项目,而不是在每个项目中手动配置。launch.json调试配置。

要试用它,请确保已安装Python Debugger扩展。然后打开设置编辑器(⌘,(Windows, Linux Ctrl+),搜索“debugJustMyCode”,并禁用复选框:

在设置编辑器中搜索“debugJustMyCode”会导致debugpy.debugJustMyCode设置出现在顶部。

现在,一旦你创建一个launch.json文件,扩展使用该值debugpy调试仅我的代码默认情况下,只要只是我的代码在文件中未指定。请注意当只是我的代码在 中指定launch.json其值优先于debugpy调试仅我的代码设置。

Pylint 扩展的更改选项上的 lint

默认情况下,Pylint扩展仅在保存文件时报告错误和警告。现在有一个新的设置叫做pylint.lintOnChange如果设置为指示扩展在你输入时报告错误和警告,而无需保存文件。

Mypy 扩展报告范围和守护进程模式

Mypy 类型检查器扩展现在有两个新设置,允许您指定 Mypy 的报告范围以及是否使用 Mypy 的守护进程。

第一个是mypy-type-checker reportingScope,可以设置为文件(默认)以仅报告工作区中打开文件的问题,或者工作区启用工作区中所有文件的报告。

第二个是mypy-type-checker.preferDaemon,当设置为,使用Mypy的守护进程 (dmypy) 代替 Mypy 本身 (我的类型检查工具) 进行类型检查,这在某些情况下可以更快。

更新关于调用参数的内联提示设置

之前,Pylance的设置可以启用对部分调用参数的内联提示(python分析内联提示调用参数名称) 只能设置为启用或禁用调用参数的类型提示。此设置已修改,以允许对调用参数显示的类型提示进行更详细的控制。

它可以现在被设置为部分禁用 仅位置参数仅关键字参数的提示,全部启用它们,或完全禁用它们。

Python 3.7 支持的弃用

正如我们在2023年7月的发布博客中提到的那样,我们在Python扩展中已经停止了对Python 3.7的官方支持。没有计划积极地移除对Python 3.7的支持,因此我们预计在可预见的未来,扩展将继续在非官方的情况下与Python 3.7兼容。

请记住,所有其他版本的Python现在都采用每年发布一次的节奏,因此,我们预计在下一年的日历年的第一次扩展版本达到EOL后将停止对Python版本的官方支持(例如,Python 3.8计划于2024年10月达到EOL,因此2025年的第一个扩展版本将停止官方支持)。

GitHub 拉取请求和问题

GitHub Pull Requests 和 Issues扩展上取得了更多进展,该扩展允许您处理、创建和管理拉取请求和问题。

  • 审查 PR 的无障碍性已得到改善。
  • 即使分支尚未发布,提交记录也会显示在创建视图中。

查看0.74.0版本的更新日志,了解其他亮点。

预览功能

最近的快速修复键盘快捷键

有一个新设置可以启用从⌘.开始的最近的快速修复Ctrl+.(Windows, Linux编辑器操作快速修复),无论你的光标在那行的哪个位置。

该命令会突出显示将通过快速修复进行重构或修复的源代码。正常代码操作和非修复重构仍然可以在光标位置激活。要启用此功能,请勾选代码操作小部件:包含附近的快速修复 (editor.codeActionWidget.includeNearbyQuickfixes)。

新快速修复行为示例,显示最近错误的激活,并显示在光标位置仍然可以利用所有代码操作

源代码控制同步视图

此里程碑的发布包含 Source Control Sync 视图的早期版本。新视图提供了有关尚未推送至远程分支(出站)的本地更改和尚未从远程分支本地拉取(入站)的更改的详细信息。该视图还允许您发布分支并与远程分支同步更改(拉取/推送)。新视图仍处于实验阶段,我们将根据用户反馈在未来的里程碑中继续改进它。您可以通过 显示新视图scm.experimental.showSyncView 设置。请尝试一下并提供反馈 问题 #192290

源代码控制同步视图显示了传入更改的差异视图

命令中心和调试工具栏

有一个新的实验性设置,可以在命令中心内显示调试工具栏。确保启用命令中心并配置调试调试工具栏位置设置:

"调试.工具栏位置""命令中心"

命令中心内的调试控制

主题: GitHub 轻色色盲 (测试版) (预览于 vscode.dev)

扩展编写

对字符串设置验证支持Unicode字符类转义

Unicode字符类转义 现在在正则表达式中支持,用于验证字符串和字符串数组设置。换句话说,字符串和字符串数组设置现在可以指定一个 图案具有值的字段,例如"\\p{Letter}+"允许仅包含字母的字符串值。

目前,对象设置中的字符串值不支持Unicode字符类转义。

贡献终端菜单

有两个新的菜单可以贡献到终端/上下文终端/标题/上下文,分别向终端上下文菜单和终端标签上下文菜单添加条目。示例用法:

{
  "贡献": {
    "菜单": {
      "终端/上下文": [
        { "命令": "终端测试发送文本" }
      ],
      "终端/标题/上下文": [
        { "命令": "终端测试发送文本" }
      ]
    }
    }
}

新的 env.onDidChangeShell 事件

有一个新的env.onDidChangeShell: 事件<字符串>事件在值改变时触发环境.外壳更改。

密钥从 VS Code 中移除

回到六月,我们将SecretStorage API切换到使用Electron的安全存储并包含了对现在已归档且不再维护的keytar模块从VS Code中的移除计划。我们没有移除钥匙吉他最初是因为一些扩展仍在导入/要求钥匙吉他直接(在SecretStorage API存在之前推荐过,但在SecretStorage API发布后不再推荐)。

基于产品遥测和Insiders版本钥匙吉他,的使用钥匙吉他已经下降,我们准备移除钥匙吉他完全通过 VS Code。

这对我的扩展有什么影响?

如果你使用SecretStorage API,没有。我们一直在将秘密迁出钥匙吉他自六月以来,如果在两个月内你的秘密被触动,那么它们应该已经迁移完毕。

如果你仍在使用钥匙吉他直接在您的扩展中,有几个选项供您考虑:

  • (推荐) 使用 VS Code 提供的 SecretStorage API,通过 ExtensionContext。此 API 是跨平台的,并且在 VS Code 支持的所有平台上都能工作。它也由 VS Code 团队维护,将继续维护,并且到目前为止,已经成为 VS Code API 的一部分。
  • (不推荐) 您可以将 keytar 模块捆绑到您的扩展中。请记住 钥匙吉他 是一个原生的节点模块,这意味着你需要 发布一个特定平台的扩展 来支持每个你想要支持的平台。

--disable-keytar 重命名为 --use-inmemory-secretstorage

--禁用-keytar禁用机器上的持久化秘密时的标志秘密存储使用了 API。这主要用于 CI 环境,因为没有配置密钥环时,VS Code 会抛出错误。秘密存储API 被使用时没有可用的密钥环。

自从我们移除了钥匙吉他这面旗帜需要一个新名字。我们现在标记了--禁用-keytar由于已弃用,转而使用--使用内存中的秘密存储在未来,我们会考虑移除--禁用-keytar, 但近期内它不会消失。

最后,我们想感谢所有迅速采取行动脱离的令人难以置信的扩展作者钥匙吉他并确保他们的用户在 VS Code 中拥有一个安全且愉快的体验,包含秘密!

语言服务器协议

新版本的语言服务器协议npm软件包已经发布(协议@3.17.5,客户端@9.0.1和服务器@9.0.1)。

此次发布的主要亮点是:

  • 添加了提议的内联完成请求。

  • 添加了拟议格式化范围请求。

  • 添加了对折叠范围的提议刷新请求。这改变了折叠范围功能的形状,因为API需要暴露事件发射器,这是一个破坏性更改。要获取提供者,您现在需要使用以下代码:

    客户端.获取特征(lsclient.折叠范围请求.方法).获取提供者(文档)?.提供者;
    
  • 各种错误修复

工程

浮动编辑器Windows探索

我们已经开始探索如何将编辑器从工作台Windows拉出到自己的Windows中。这个功能是我们投票数最多的功能请求,我们计划在十月为我们的Insiders用户推出第一个工作版本供他们使用。

所有Windows的所有编辑器都基于相同的编辑器模型,因此在其中一个Windows中所做的更改会实时反映在所有其他Windows中。您可以在浮动Windows中创建任何编辑器布局,并打开任何您喜欢的编辑器,Windows数量不限。

对于我们的第一个工作版本,我们设想状态栏也会出现在浮动Windows中,以便显示编辑器信息,例如行号和选择范围。请关注未来几个月的更多开发进展!

vscode.dev 现在是跨域隔离的

跨域隔离现在已启用 vscode.dev。这启用了一些新的强大功能,例如共享数组缓冲区,它们是跨文件TypeScript支持、网页中的Python执行以及 vscode-wasm-wasi 的基础。

设置同步故障排除

我们添加了一个新的开发者命令 开发者:下载 Settings Sync 活动,该命令下载你所有的 Settings Sync 活动,包括云端和本地机器上的日志。这将帮助我们解决 Settings Sync 的问题。我们还创建了一个新的视图来浏览下载的活动。你可以通过运行命令 Settings Sync: Show Synced Data 并启用 SYNC ACTIVITY (DEVELOPER) 视图来打开该视图。你可以通过点击视图中的 Load Sync Activity 按钮来加载下载的同步活动,如下所示。

同步活动(开发者)视图与加载同步活动按钮

重要修复

  • 190679 主题颜色图标前景不一致且无法与 .svg

谢谢

最后但同样重要的,向VS Code的贡献者们致以深深的谢意

问题跟踪

对我们的问题跟踪的贡献:

拉取请求

贡献于Visual Studio Code输入:

贡献于vscode-css-languageservice输入:

贡献于vscode-HTML-语言服务输入:

贡献于vscode语言服务器节点输入:

贡献于vscode-拉取请求-GitHub输入: