2022 年 3 月(版本 1.66)
更新 1.66.1:此更新解决了这些 问题。
更新 1.66.2:此更新解决了这些安全 问题。
下载:Windows:x64 Arm64 | Mac:通用 Intel silicon | Linux:deb rpm tarball Arm snap
欢迎使用 2022 年 3 月版的 Visual Studio Code。此版本包含许多更新,我们希望您喜欢,以下是一些主要亮点:
- 本地历史记录 - 独立于源代码管理跟踪本地文件更改。
- 设置编辑器语言过滤器 - 显示可用的特定于语言的设置。
- 终端查找改进 - 匹配项在终端面板和滚动条中突出显示。
- 内置 CSS/LESS/SCSS 格式化程序 - 针对 CSS、LESS 和 SCSS 的代码格式化。
- JavaScript 堆分析 - 在调试时收集和查看 JS 内存分配。
- 适用于 Web 的 VS Code - 将文件和文件夹拖放到 vscode.dev 中。
- 远程 - SSH 支持 Mac - 通过 SSH 连接到 Apple Silicon/M1/ARM64 机器。
- 新的 R 语言主题 - 了解如何在 VS Code 中使用 R 进行数据科学。
如果您想在线阅读这些发行说明,请访问 更新,位于 code.visualstudio.com。
观看发布会:收听 VS Code 团队讨论一些新功能。您可以在我们的 YouTube 频道上找到 该活动的录制。
亮点简述:如果您只有 60 秒的时间,请查看 3 月 VS Code 版本亮点 视频,快速了解新功能。
体验版:想尽快尝试新功能吗?您可以下载夜间 体验版 构建,并在这些更新可用后立即尝试。
辅助功能
该团队努力使 VS Code 成为最易访问的编辑器之一。此版本包含几个改进,以帮助提高可用性和可访问性。
- 减少运动模式 - 限制 VS Code UI 中使用的动画。
- 更明显的源代码管理装饰器 - 使用模式和颜色对比度提高可见度。
- 音频提示音量控制 - 您现在可以调整编辑器音频提示的音量。
- 注释 UI 可访问性 - 新命令和键盘快捷键。
- 高对比度浅色主题 - 主题作者现在可以为高对比度浅色主题贡献颜色。
工作台
本地历史记录
本地文件历史记录现在在 时间线 视图中可用。根据配置的设置,每次保存编辑器时,都会在列表中添加一个新条目。
每个本地历史记录条目都包含创建条目时文件的完整内容,在某些情况下,可以提供更多语义信息(例如,指示重构)。
从条目中,您可以
- 比较对本地文件或先前条目的更改。
- 恢复内容。
- 删除或重命名条目。
有一些新的全局命令可用于处理本地历史记录。
workbench.action.localHistory.create
- 使用自定义名称为活动文件创建新的历史记录条目。workbench.action.localHistory.deleteAll
- 删除所有文件中的所有历史记录条目。workbench.action.localHistory.restoreViaPicker
- 查找要恢复的所有文件中的历史记录条目。
这些命令没有默认键盘绑定,但您可以添加自己的 键盘快捷键。
还有一些新的设置可用于处理本地历史记录。
workbench.localHistory.enabled
- 启用或禁用本地历史记录(默认值:true
)。workbench.localHistory.maxFileSize
- 创建本地历史记录条目时的文件大小限制(默认值:256 KB
)。workbench.localHistory.maxFileEntries
- 每个文件的本地历史记录条目限制(默认值:50
)。workbench.localHistory.exclude
- 用于将某些文件从本地历史记录中排除的 glob 模式。workbench.localHistory.mergeWindow
- 进一步更改将被添加到本地文件历史记录中最后一个条目中的时间间隔(以秒为单位)(默认值10 秒
)。
时间线视图工具栏中的一个新筛选器操作允许您启用或禁用各个提供程序。
注意:本地历史记录条目存储在不同的位置,具体取决于您对 VS Code 的使用情况。打开本地文件时,条目会保留在本地用户数据文件夹中,而打开远程文件时,它们将存储在远程用户数据文件夹中。在没有文件系统可用时(例如,在某些情况下使用适用于 Web 的 VS Code 时),条目将存储在 IndexedDB 中。
设置编辑器
语言过滤器
用户现在可以在设置编辑器搜索框中键入 @lang:languageId
以查看和编辑可以为具有 ID languageId
的语言配置的所有设置。这样,用户可以查看特定于语言的设置,也称为语言覆盖。
请注意,这些覆盖将一直保留,直到通过单击齿轮图标并重置设置显式重置为止。
下面的简短视频将语言过滤器设置为 @lang:css
以显示所有可能的 CSS 语言覆盖设置。
主题:浅粉色
工作区和文件夹设置保留
设置编辑器中的工作区和文件夹设置现在将一直保留,直到用户手动重置为止。此更改有助于用户想要显式指定与设置的默认值相同但与用户设置值不同的工作区设置值的情况。以前,用户必须打开工作区设置 JSON 文件才能设置此值。
在编辑器选项卡大小下方,在设置编辑器 工作区 选项卡中设置,它会自动添加到工作区的 settings.json
文件中。
主题:浅粉色
主要通知按钮
通知的第一个按钮现在以主要颜色显示,以区别于其他按钮。这与对话框遵循相同的模式。
主题:GitHub 深色主题
编辑器的新上下文键
有一些新的上下文键指示编辑器是否是编辑器组中的第一个或最后一个。
activeEditorIsFirstInGroup
- 活动编辑器是否是其组中的第一个编辑器。activeEditorIsLastInGroup
- 活动编辑器是否是其组中的最后一个编辑器。
这些上下文键可用于使用 when 子句 有条件地启用键盘快捷键。
默认二进制编辑器
一个新的设置 workbench.editor.defaultBinaryEditor
允许您绕过二进制文件警告,并在检测到二进制文件时自动打开您选择的编辑器类型。您可以从设置编辑器中的下拉列表中选择默认二进制编辑器 ID,也可以通过 settings.json
中的 IntelliSense 选择。
更流畅的认证体验
您可能会注意到 GitHub 和 Microsoft 的认证流程更加流畅。
- 对于 GitHub 认证,我们已删除了初始 继续 页面,因此您的登录体验无需再执行一步。
- 对于 Microsoft 认证,如果您已使用 Microsoft 登录设置同步或其他扩展,我们将尝试最大限度地减少将您发送到 VS Code 外部进行登录的次数。
从 CLI 同时安装预发布和正常扩展
VS Code 现在支持从命令行同时安装预发布和正常扩展。例如,以下命令行说明将安装 GitHub.vscode-pull-request-github
扩展的预发布版本和 GitHub.remotehub
扩展的发布版本。
code --install-extension GitHub.vscode-pull-request-github@prerelease --install-extension GitHub.remotehub
改进的平台特定扩展更新
VS Code 现在支持将平台特定扩展更新到更具体的目标平台版本。例如,如果您使用的是 Windows 64 位,并且已安装适用于 Windows 32 位的 C/C++ 扩展,而 Marketplace 具有适用于 Windows 64 位的相同版本的扩展,VS Code 将自动将扩展更新到 64 位版本。
音频提示改进
新的设置 audioCues.volume
(0-100,默认值为 50)可用于控制音频提示的音量。还为折叠区域更新了音频提示。
侧边栏和侧边面板的新名称
两个版本之前,我们引入了 侧边栏。当时,我们删除了将包含终端的底部面板移动到侧边栏的功能,以便支持新的连贯命令。在听取用户反馈后,我们确定此决定破坏了一些重要的工作流程,因此我们决定撤消该更改。
我们现在有两个面板,面板和侧边面板,它们都可以放在工作台的侧面。为了考虑到这一点,并更好地反映新侧边面板的方向,我们决定更新侧边栏和侧边面板的命名。侧边栏现在将在 UI 中被称为主侧边栏,而侧边面板现在将被称为副侧边栏。
- 侧边栏 -> 主侧边栏
- 侧边面板 -> 副侧边栏
这些名称将在编辑器中的菜单和命令中反映出来;但是,为了防止破坏现有的键绑定,没有更改任何命令 ID。
减少运动模式
当操作系统启用减少运动设置时,工作台现在支持以减少动画的方式进行渲染。这可以通过workbench.reduceMotion
设置进行覆盖或禁用(值可以是on
、off
或默认的auto
)。
注释
注释 UI 被 GitHub 拉取请求和问题 扩展程序广泛用于向问题和拉取请求添加注释,但任何扩展程序都可以采用它。
注释视图的可发现性
当你打开一个包含注释的文件时,注释视图将显示出来。这可以通过comments.openView
设置进行控制。
添加注释的可发现性
现在,当你将鼠标悬停在可以添加注释的行的任何部分时,左边的边栏中会显示"+"符号。
注释辅助功能改进
有一些注释辅助功能改进
- 一个在当前行添加注释命令,用于在你处于可添加注释的范围内时创建注释。
- 一个用于注释线程的 aria 标签,其中包括注释数量和线程标签。
- 转到下一个注释线程命令会将焦点放在注释线程控件中。
- 一个新的转到上一个注释线程命令。
- 下一个和上一个命令的键盘快捷键:
Alt+F9
和Shift+Alt+F9
。
终端
显示所有查找匹配项
在终端中搜索时,搜索词的所有实例现在都将被突出显示。当前选定的匹配项也有特定的突出显示,可以单独自定义。
你可以通过以terminal.findMatch
为前缀的颜色自定义项来微调突出显示颜色的外观。
滚动条注释
注释现在会出现在终端的滚动条中,以指示缓冲区中的兴趣点。
例如,查找结果在滚动条中具有相应的注释。
当shell 集成的预览功能启用时,滚动条中会为每个运行的命令显示一个注释。
命令导航改进
一个不太为人知的功能,已经存在一段时间了,就是能够快速地在终端中的命令之间导航。最初,这是基于按Enter
键,但现在当 shell 集成启用时,它将升级为使用 shell 集成知识来更可靠地识别正确的行。此外,现在会在命令之间跳转时显示 UI 反馈。
此功能可以通过以下键绑定访问
- macOS:
Cmd+Up/Down
- Linux/Windows:
Ctrl+Up/Down
(新)
可以按住Shift
键,在终端中的命令之间进行选择。
复制的文本保留 HTML 样式
要从终端复制富文本,请运行终端:将选择复制为 HTML命令,或使用终端上下文菜单条目复制为 HTML。
最小对比度比率默认值更改
terminal.integrated.minimumContrastRatio
设置已经存在一段时间了,它会根据背景颜色动态更改终端中的前景色。在本版本中,我们将默认值更改为4.5
(WCAG AA),以确保终端在任何主题下都能访问。如果这最终导致你的颜色出现问题,你可以通过将"terminal.integrated.minimumContrastRatio": 1
来禁用此功能。
源代码管理
源代码管理存储库视图
以前,源代码管理存储库视图中的存储库是按照在打开包含多个存储库的文件夹/工作区时发现它们的顺序进行排序的。这是有问题的,因为发现顺序可能会有所不同,并且存储库似乎是随机排序的。在本里程碑中,存储库始终按名称在源代码管理存储库视图中排序。
编辑器
快速建议作为内联补全
editor.quickSuggestions
设置现在接受inline
作为配置值。当设置为inline
时,快速建议(IntelliSense)在您键入时不会显示建议小部件,而是将补全显示为虚线文本。
主题:GitHub 亮色
用于光标索引的代码片段变量
有新的代码片段变量:$CURSOR_INDEX
和$CURSOR_NUMBER
。它们的值分别为相应光标的索引。后者从 1 开始,前者从 0 开始。这些变量的强大之处在于它们与多个光标的组合。
例如,下面的代码片段将为每个光标添加一个有序列表项
"ordered_list": {
"scope": "markdown",
"prefix": "ol",
"body": [
"$CURSOR_NUMBER. $0"
],
"description": "Add ordered list"
}
更新的源代码管理装饰器
为了使源代码管理装饰器在辅助功能方面更显眼,我们为修改的行添加了新的模式,并提高了所有装饰器的对比度。
括号对颜色化
有一个新的设置editor.bracketPairColorization.independentColorPoolPerBracketType
。当设置为true
时,每个括号类型({
... }
或(
... )
)将使用它自己的颜色池进行颜色化。因此,不同类型的嵌套括号将具有相同的颜色。
改进的语言检测
在上次迭代中,我们添加了workbench.editor.historyBasedLanguageDetection
设置,用于配置是否使用新的语言检测策略,该策略会考虑你打开的文件类型。此设置现在默认启用,并且添加了新的设置workbench.editor.preferHistoryBasedLanguageDetection
,以便更优先考虑此策略的结果。
适用于 Web 的 VS Code
拖放文件夹
你现在可以将本地文件和文件夹拖放到在vscode.dev或insiders.vscode.dev上打开的浏览器窗口中,前提是浏览器支持Web 文件系统访问 API来访问内容。这在将文件拖放到编辑器区域或文件资源管理器中都有效。
远程存储库
扩展程序重构
以前,Azure Repos 扩展程序直接依赖于 GitHub 存储库扩展程序。Azure Repos 和 GitHub 存储库现在依赖于一个公共扩展程序,远程存储库,它支持 GitHub 和 Azure Repos 中的常见工作流程。GitHub 存储库扩展程序以前公开的所有 API 现在都由远程存储库公开。
同步存储库的提醒
当你重新打开一个包含未提交更改的存储库时,远程存储库默认不会显示存储库的最新版本。我们现在会显示一个对话框,让你手动同步你的存储库,以便你的存储库与 GitHub 或 Azure Repos 上的内容保持一致。你可以使用remoteHub.uncommittedChangesOnEntry
设置控制此对话框。
主题:One Monokai
Azure Repos
在本里程碑中,我们启用了编辑和提交托管在Azure Repos中的存储库的更改的能力。我们还添加了用于为 Azure Repos 创建、更新和打开拉取请求的基本功能。
笔记本
在滚动条上查找装饰器
笔记本中的查找结果现在将在滚动条中呈现
将焦点移到交互式窗口
有两个新的命令用于将焦点放在交互式窗口中。
interactive.input.focus
- 将焦点移到交互式窗口中的输入编辑器。interactive.history.focus
- 将焦点移到交互式窗口中的历史记录。
这些命令没有默认键盘绑定,但您可以添加自己的 键盘快捷键。
调试
JavaScript 调试
JavaScript 调试器现在支持收集和可视化堆配置文件。堆配置文件允许你查看内存是在哪里以及如何分配的,以及分配的时间。这些已作为调试:获取性能配置文件命令中的一个选项添加,该命令也可以通过 CALL STACK 视图中的记录 ⏺ 按钮访问。
语言
CSS 格式化程序
内置的 CSS 扩展程序现在附带一个格式化程序。格式化程序适用于 CSS、LESS 和 SCSS。它由JS Beautify 库实现,并附带以下设置
css.format.enable
- 启用/禁用默认 CSS 格式化程序。css.format.newlineBetweenRules
- 用空行分隔规则集。css.format.newlineBetweenSelectors
- 用新行分隔选择器。css.format.spaceAroundSelectorSeparator
- 确保在选择器分隔符'>'、'+'、'~'周围有空格字符(例如,a > b
)。
相同的设置也存在于less
和scss
中。
HTML 中的 JavaScript 语义突出显示
我们已将 HTML 文件中 JavaScript 源代码的语义突出显示与你在正常.js
文件中看到的保持一致。
这不仅使代码颜色更加一致,而且还添加了一些以前缺少的重要语义信息,例如突出显示只读类型。
TypeScript 4.6.3
VS Code 现在捆绑了 TypeScript 4.6.3。这个小更新修复了一些重要的错误。
Markdown 简写引用链接现在可点击
Markdown 允许您在链接文本与链接定义 ID 相匹配的情况下使用简写语法创建链接。例如,[my fancy link]
使用 my fancy link
链接定义(例如,[my fancy link]: https://example.com
)。这些简写链接现在在 VS Code 编辑器中可点击。
在编辑器中,点击这些链接会导航到链接定义。在 Markdown 预览中,链接则会导航到链接目标。
reStructuredText 语法
现在有一个内置扩展,用于 reStructuredText (rst) 文件语法高亮显示。
对扩展的贡献
Python
状态栏中解释器显示的更改
为了与其他语言保持一致,Python 扩展将选定的 Python 解释器信息移到了状态栏右侧的 Python 语言状态项旁边。为了清理状态栏,它现在仅在当前打开 Python 文件或 settings.json
文件时显示。
新的 Python 文件命令
现在有两种更快的创建空 Python 文件的方法:通过一个名为 Python: New Python File 的新命令,或通过 入门页面 上的 新建文件... 项。
Pylint 扩展
现在有一个新的 Microsoft Pylint 扩展,用于使用 pylint 进行代码静态分析。此扩展利用 语言服务器协议 来提供代码静态分析支持。
Pylint 扩展提供了额外的配置,可以调整通过 pylint
报告的问题的严重程度级别。
{
"convention": "Information",
"error": "Error",
"fatal": "Error",
"refactor": "Hint",
"warning": "Warning",
"info": "Information",
"W0611": "Error",
"unused-import": "Error"
}
注意:如果您在 Python 扩展中也启用了 Pylint,您可能会在 问题 面板中看到针对同一个问题的两个条目。您可以通过设置 "python.linting.pylintEnabled": false
来禁用内置代码静态分析功能。
Jupyter
在本里程碑中,对 Jupyter 扩展进行了多项改进。
内核支持
内核启动已得到改进,包括:
- 对更多 conda 环境的支持。
- 对所有平台上
.env
文件的支持。
数据查看器
数据查看器现在支持 DataFrame 和 Series 的命名索引。
新的 Jupyter 笔记本
现在将创建新的 Jupyter 笔记本整合到 新建文件... 菜单中。
远程开发
继续开发 远程开发扩展,这些扩展允许您使用容器、远程机器或 适用于 Linux 的 Windows 子系统 (WSL) 作为功能齐全的开发环境。
1.66 版本中的功能亮点包括:
- “在开发容器中打开”徽章 - 将您仓库的直接用户重新打开到自定义开发容器中。
- Remote - SSH 扩展现在可以连接到远程 Apple Silicon/M1/ARM64 机器。
您可以在 远程开发发行说明 中了解有关新扩展功能和错误修复的信息。
GitHub 拉取请求和问题
继续开发 GitHub 拉取请求和问题 扩展,该扩展允许您处理、创建和管理拉取请求和问题。查看 扩展的 0.40.0 版本的变更日志,以查看亮点。
预览功能
终端 shell 集成
Shell 集成在本版本中继续得到改进,主要体现在可靠性和对上面 终端 部分中描述的装饰的改进方面。
以下是亮点:
- 命令装饰现在显示在滚动条中,类似于编辑器。
- 命令装饰应该在窗口重新加载(或分离/附加)时恢复。
- 在 Windows 上调整终端大小时更好地跟踪命令。
- 改进了对 终端: 清除 VS Code 命令和
clear
shell 命令的处理。 zsh
右提示支持。- 处理更多格式的 bash 的
$PROMPT_COMMAND
变量。 - 当 PSReadLine 未启用时,支持
pwsh
。 - 如果存在已知问题或需要特殊处理,即使启用了设置,shell 初始化脚本现在可以通过取消设置
$VSCODE_SHELL_INTEGRATION
变量来选择退出 shell 集成。
TypeScript 4.7 支持
此更新包含对即将发布的 TypeScript 4.7 版本的初步支持。查看 TypeScript 4.7 迭代计划,以详细了解 TypeScript 团队当前正在进行的工作。
要开始使用 TypeScript 4.7 nightly 版本,请安装 TypeScript Nightly 扩展。
资源管理器文件嵌套
在本迭代中,我们继续致力于支持资源管理器中的文件嵌套。作为这项工作的一部分,我们完善了对移动、重命名和删除嵌套文件的支持,并添加了设置 explorer.experimental.fileNesting.operateAsGroup
来配置是否也将对嵌套父级的编辑应用于其子级。
此外,我们扩展了文件嵌套的配置语言,以包含更多扩展模式。以前,子模式中的 $(capture)
将扩展为父模式中 *
所消耗的文本。现在,模式中还支持 $(basename)
、$(extname)
和 $(dirname)
。这使得能够使用诸如 * -> $(basename).*.$(dirname)
之类的模式,将所有具有“添加段”的文件嵌套在一个基文件中。
扩展创作
支持笔记本的文档选择器
我们已经完成对 vscode.DocumentSelector
类型的添加。此类型允许您将诸如 转到定义 之类的语言功能与特定文档相关联,它驱动 UI,并确定是否要求相应的提供程序提供结果。我们添加了一个新属性,允许扩展缩小到笔记本类型。例如,{ language: 'python', notebookType: 'jupyter-notebook'}
针对嵌入在 Jupyter 笔记本中的所有 python 文档。
内联提示可以包含编辑
InlayHint
类型现在可以有一个可选的、延迟的 textEdits 属性。将编辑设置为 textEdits
的内联提示将在双击时应用这些编辑。textEdits
应用于进行必要的编辑,使内联提示过时。例如,双击表示推断类型的提示应插入该类型注释。
带有自定义语言 ID 的输出通道
在本里程碑中,我们已经完成了 createOutputChannel API,用于创建具有自定义语言 ID 的输出通道。这将允许您通过传递语言 ID,为您的输出通道贡献令牌或语法着色和 CodeLens 功能。
颜色主题类型:高对比度浅色
颜色主题 现在可以指定 hc-light
作为基础主题 (uiTheme
)。基础主题用于颜色主题未定义的所有颜色。
在 VS Code API 中,ColorTheme.kind 现在也可以具有值 HighContrastLight
。
高对比度浅色主题用于颜色贡献
颜色贡献 现在也可以定义高对比度浅色主题 (highContrastLight
)。如果未指定,则 light
颜色将用作默认值。
NODE_MODULE_VERSION 和 Node.js API 更新
对于使用原生 Node 模块的扩展作者,本版本将 Node.js 版本从 14.16.0
提升到 16.13.0
,这可能会影响您的模块编译,具体取决于使用的 API 抽象层。
桌面 | 远程 | |
---|---|---|
NODE_MODULE_VERSION / process.versions.modules | 101 | 93 |
Node-API / process.versions.napi | 8 | 8 |
树形拖放 API
使用新完成的 TreeDragAndDropController API,扩展贡献的树形视图可以支持拖放。 树形视图示例 演示了如何使用此 API 的示例。
调试器扩展创作
支持 CompletionItem.detail
上个月,调试适配器协议向 CompletionItem
对象添加了一个 detail
属性。此属性现在在 VS Code 中受支持。您将在调试控制台的建议小部件中看到详细信息。
语言服务器协议
类型层次结构、内联值和内联提示支持已移出建议状态,以准备 3.17 版本的发布。已发布了库的新下一个版本。
还有一个 LSP 元模型 的第一个版本,以及相应的模式,作为 JSON 模式 或 TypeScript 类型定义。元模型包含以下信息:指定的请求和通知,以及它们的 parameters 类型、返回值类型、部分返回值类型和注册选项。它还包含所有定义的结构和枚举。
调试适配器协议
我们已经解决了 调试适配器协议 的几个文档问题。
- 为了区分 terminate 和 disconnect 请求,我们改进了它们的文档。
- 已为
evaluate
请求的context
参数记录了值variables
。VS Code 在 变量 视图的上下文中调用evaluate
请求时,一直在使用这个未记录的值。客户端和调试适配器不需要进行任何更改,因为context
参数的类型为string
,并且variables
值仅在文档中提到。
建议的扩展 API
每个里程碑都伴随着新的提议的 API,扩展作者可以尝试使用它们。和往常一样,我们希望收到您的反馈。以下是尝试提议的 API 的步骤。
- 找到您想尝试的提议 并将其名称添加到
package.json#enabledApiProposals
中。 - 使用最新版本的 vscode-dts 并运行
vscode-dts dev
。它会将对应的d.ts
文件下载到您的工作区。 - 现在您可以针对该提案进行编程了。
您不能发布使用提议的 API 的扩展。下一个版本可能会出现重大更改,我们绝不希望破坏现有扩展。
输入框验证消息严重性
我们的输入框 API(通过 window.showInputBox
和 window.createInputBox
)提供了验证用户输入的机制。在本迭代中,我们正在通过一个提议的 API 来扩展它,以显示严重性。
例如,如果您想根据用户的输入向用户显示一条信息消息,您的验证消息可以返回
{
content: 'this is an info message';
severity: InputBoxValidationSeverity.Info;
}
这将看起来像这样
有关该提案的详细信息,请参见 inputBoxSeverity。
笔记本文档更改事件
笔记本文档更改事件有一个新的提议:它作为 notebookDocumentEvents 提供,包含两个事件
vscode.workspace.onDidSaveNotebookDocument
每当笔记本被保存时触发。vscode.workspace.onDidChangeNotebookDocument
每当笔记本发生更改时触发。例如,当单元格被添加或删除,单元格本身发生更改,或元数据发生更改时。
标签 API 形状最终确定
该 标签 API 正在接近下一个里程碑的最终确定,目前处于形状将保持稳定的状态,几乎不会有任何变化。2022 年 4 月的迭代将是最后一次提供有关该 API 的形状和功能的反馈。反馈可以通过 GitHub 问题 提供。标签 API 允许读取打开的标签、它们的位置以及关闭它们。
内联完成
我们继续致力于内联完成,为未来几个版本中的最终确定做准备。内联完成现在可以用来建议代码片段或文本替换(以前只支持文本插入)。
进入编辑器
提议的 文本编辑器拖放 API 允许扩展处理对文本编辑器的拖放。这些拖放事件可以来自 VS Code 内部——例如,将文件从 VS Code 的资源管理器拖放到文本编辑器中——也可以由将文件从您的操作系统拖放到 VS Code 中生成。
要试用新 API,您必须设置 "workbench.experimental.editor.dragAndDropIntoEditor.enabled": true
。启用此选项后,您可以通过按住 Shift
并拖放来将文件拖放到编辑器中。
我们包含了对在将文件拖放到 Markdown 文件时生成链接的实验性支持。您也可以 查看 Markdown 扩展的源代码 以了解 API 使用的示例。
已解决/未解决的评论
有一个新的提案用于设置 已解决或未解决状态 的评论线程。指定状态的评论线程将获得额外的 UX 处理。
工程
Electron 17 更新
在这个里程碑中,我们很高兴能在 VS Code 中与 Electron v17 一起发布。这是我们之前采用 Electron v13 的重大更新,并利用了 Electron 的 进程重用架构。在过去的一年中,我们一直在重新实现并逐渐推出一些核心服务的更改,这些服务与它们与工作台的交互和生命周期相关,为这种新架构做准备。
特别感谢所有参与这项工作的人,也要感谢社区在 Insiders 上自行托管并提供反馈,这样我们才能自信地发布此更新。
此更改对 VS Code 用户意味着什么?
切换工作区和重新加载工作区等操作现在应该更快了。通过此更新,我们还将 Chromium 版本提升到 98.0.4758.109,Nodejs 版本提升到 16.13.0。
接下来会发生什么?
我们将在他们的新 发布节奏 下继续 Electron 版本的采用。我们还积极致力于 沙盒化工作台,下一步是改进 Node.js 托管服务和沙盒化工作台 之间的通信通道,这将使我们能够进一步简化新架构。
RPM 包依赖项列表改进
我们现在在 构建过程 中计算 RPM 包所需的依赖项,这是受 Chromium 中所做工作的启发。这使我们能够在采用更新的运行时或本机模块时提供最新的依赖项列表。我们还将在即将到来的里程碑中为我们的 Debian 包引入类似的更改。
支持内置扩展的带外发布
现在可以在市场上发布那些可用的内置扩展,VS Code 将检测新版本并更新扩展。这将使这些扩展能够支持预发布版本。
文档
VS Code 中的 R
有一个新的 VS Code 中的 R 主题,描述了使用 R 扩展 在 VS Code 中支持 R 编程语言。R 扩展包含丰富的语言功能,例如代码补全和代码 linting,以及集成的 R 终端和专用的工作区、数据和绘图查看器。
开发容器博客文章
如果您错过了 Burke Holland 最近关于使用开发容器创建易于使用的编程环境的博客文章,请查看 "教程的问题"。博客文章描述了 Laravel 如何使用预配置的 Docker 容器来为其 PHP 框架教程提供运行时和依赖项。
值得注意的修复
- 117674 调试控制台在内容换行时有时会自动停止滚动
- 138963 调试启动时,调试控制台无法正常工作
- 142754 VS Code 终端中的 Emacs 使用已损坏
- 143513 contributes.configuration 项仅在搜索框为空时才尊重“order”属性
- 144458 通配符模式
**/p*
错误地匹配/foo/ap
- 144783 设置列表小部件中未被编辑的项似乎没有最大宽度
- 145243 设置 TOC 在较小的屏幕上无法调整大小
- 145572 设置框可能会覆盖设置
感谢
最后但同样重要的是,对 VS Code 的贡献者表示衷心的感谢。
Web 扩展
感谢扩展作者,他们使能够以 Web 扩展 运行代码的扩展成为可能(以下列表介于 2022 年 3 月 1 日至 2022 年 3 月 27 日之间)。
- RTF (Alessandro Fragnani)
- Highlight - C/C++ Parameters (BLET Mickaël)
- Highlight - Regex (BLET Mickaël)
- Material Icon Theme (Dancheg97)
- Go to Character Position (davidfreer)
- Extension panel (Elio Struyf)
- Writing Style Guide (Elio Struyf)
- Bravato Icons (Florin Bratan)
- Markmap (Gerald Liu)
- GitLens — Git supercharged (GitKraken)
- YARA (infosec-intern)
- ZMK Tools (Joel Spadin)
- JSPM Generator (JSPM)
- gcs-sync-vs-ext (killerbees-devops)
- Faster paragraph/word movement (Mateusz Dudzinski)
- narumincho.definy (narumincho)
- Better Markdown & Latex Shortcuts (OrangeX4)
- Python Brackets (OrangeX4)
- Quarto (Quarto)
- 行内 SQL (qufiwefefwoyn)
- React 层级资源管理器 (React Sidekick)
- 无服务器工作流编辑器 (红帽)
- gitlab (RedstoneWizard08)
- LLVM IR 语言支持 (rev.ng Labs)
- Behave (rioj7)
- 行补全 (rioj7)
- vscode_web_extension_emulator (runthoser)
- Marquee (stateful)
- painandsufferingforjaredsstuff (Thomka)
- Tofu (Alpha) (Watware)
问题跟踪
对我们问题跟踪的贡献
- John Murray (@gjsjohnmurray)
- Andrii Dieiev (@IllusionMH)
- Lemmingh (@Lemmingh)
- Simon Chan (@yume-chan)
拉取请求
对 vscode
的贡献
- @a-stewart (Anthony Stewart): 在浏览器 ts 中添加匹配媒体更改监听器 PR #143287
- @AkatQuas (Akat): feat(jsonc): 为 "path" 属性添加更具交互性的补全 PR #144136
- @babakks (Babak K. Shandiz): 将 jsonc 添加到 Markdown 嵌入式语言中 PR #144003
- @Backfighter: 不要覆盖用户的环境变量 PR #115455
- @BamBamboozled: 添加对不存在 [] 时引用的支持 PR #144781
- @cbliard (Christophe Bliard): 为 editor.fold 命令的 selectionLines 属性添加预期类型 PR #144732
- @Charles-Gagnon (Charles Gagnon): 更新覆盖文件夹位置 PR #145597
- @eltociear (Ikko Ashimine): 更新 README.md PR #145132
- @gabritto (Gabriela Araujo Britto): [typescript-language-features] 添加 includeCompletionsWithObjectLiteralMethodSnippets 首选项 PR #145941
- @gjsjohnmurray (John Murray): 修复在新建文件快速选择中配置键绑定操作按钮 (#_145422) PR #145429
- @hermannloose (Hermann Loose): 为已解析和未解析的注释引入可主题化的颜色 PR #145230
- @jeanp413 (Jean Pierre)
- 修复 glob 模式
**/p*
错误地匹配/foo/ap
PR #144473 - 修复无法使用远程 cli 安装 Web 扩展 PR #144522
- 修复在运行扩展编辑器中显示的错误扩展运行位置 PR #144528
- 修复 glob 模式
- @kkakroo (Karan Kakroo)
- 仅当处于禅模式时,才通过 workbench.action.exitZenMode 退出禅模式 PR #144217
- 滚动到顶部按钮没有主题化 PR #144224
- @kkocdko (kkocdko): 修复
getDirectoryHandle
中的无限递归 PR #145972 - @matthewjamesadam (Matt Adam): 添加徽章扩展 API PR #139225
- @mifopen (Slava Mostovoy): fix: 悬停固定定位的悬停小部件将隐藏它们 PR #142160
- @pjknkda (Jungkook Park): 删除大型文件时跳过读取文件内容以进行撤销 PR #144890
- @quanzhuo (Quan Zhuo)
- 修复问题 #144453,扩展的 lastUpdated 时间超过 24:00:00 PR #144454
- #144671,修复 git 扩展中一些未本地化的字符串 PR #144712
- @rounaksingh557 (Rounak singh): 这将在正确的目录中查找 Visual Studio。 PR #143479
- @sbresin (Sebastian Bresin): feat: gitExtension API 也公开 repository.revert() PR #145029
- @Semphriss: 更新 Seti 主题 PR #145004
- @ShafinKhadem (Nafiur Rahman Khadem): 在多光标全选时尊重 searchScope 列 PR #142312
- @sumneko (最萌小汐)
- 更新 Lua 语法 PR #144544
- 更新 Lua-grammar PR #144975
- @UltiRequiem (Eliaz Bobadilla): chore: 升级 actions/checkout PR #145891
- @weartist (Han): 修复 #143392 PR #143498
- @xisui-MSFT
- 在使用反汇编视图时,允许没有源的堆栈帧作为顶部堆栈帧 PR #143649
- 修复反汇编视图中禁用的断点图标 PR #143925
- @xmedeko (Ondrej Medek): 修复 javascript.suggest.jsdoc.generateReturns 的 markdownDescription PR #144486
- @yume-chan (Simon Chan): 在
welcome.showAllWalkthroughs
中等待扩展贡献 PR #135632
对 vscode-css-languageservice
的贡献
- @marknn3 (Mark Langezaal): 修复 vscode #142516 [css] 支持 unicode-range 通配符 PR #264
对 vscode-js-debug
的贡献
- @zjffun (JuFeng Zhang): feat: 堆分析 PR #1187
对 vscode-languageserver-node
的贡献
对 vscode-vsce
的贡献
- @felipecrs (Felipe Santos): docs: 在自述文件中添加配置提示 PR #704
对 debug-adapter-protocol
的贡献
- @eshelyaron (Eshel Yaron): 修复
ExceptionFilterOptions
中的一个小错误 PR #250 - @haneefdm (Haneef Mohammed): 添加 Cortex-Debug,它曾经在这个列表中 PR #257
- @renkun-ken (Kun Ren): 添加 R 调试器 PR #255
对 language-server-protocol
的贡献
- @KamasamaK
- @sno2 (Carter Snook): fix(inlayHint): 类型引用错字 PR #1425