2022 年 3 月 (版本 1.66)
更新 1.66.1:此更新修复了以下问题。
更新 1.66.2:此更新修复了以下安全问题。
下载:Windows:x64 Arm64 | Mac:Universal Intel silicon | Linux:deb rpm tarball Arm snap
欢迎来到 Visual Studio Code 2022 年 3 月版本。此版本中有很多更新,我们希望您会喜欢,其中包括一些主要亮点:
- 本地历史记录 - 独立于源代码管理跟踪本地文件更改。
- 设置编辑器语言筛选器 - 显示可用的特定于语言的设置。
- 终端查找改进 - 匹配项在终端面板和滚动条中高亮显示。
- 内置 CSS/LESS/SCSS 格式化程序 - CSS、LESS 和 SCSS 的代码格式化。
- JavaScript 堆配置文件 - 在调试时收集和查看 JS 内存分配。
- Web 版 VS Code - 将文件和文件夹拖放到 vscode.dev 中。
- 远程 - Mac 版 SSH 支持 - 通过 SSH 连接到 Apple Silicon/M1/ARM64 计算机。
- 新增 R 语言主题 - 了解如何在 VS Code 中使用 R 进行数据科学。
如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新。
观看发布派对:收听 VS Code 团队讨论一些新功能。您可以在我们的 YouTube 频道上找到活动录音。
精彩集锦短片:如果您只有 60 秒,请查看 3 月份 VS Code 发布精彩集锦视频,快速了解新功能。
Insiders:想尽快试用新功能吗?您可以下载每晚的 Insiders 版本,并在最新更新可用时立即试用。
辅助功能
团队努力使 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
- 在本地文件历史记录中将进一步更改添加到最后一个条目的间隔(以秒为单位)(默认值10s
)。
时间线视图工具栏中的新筛选器操作允许您启用或禁用单个提供程序
注意:本地历史记录条目存储在不同的位置,具体取决于您使用 VS Code 的方式。打开本地文件时,条目会持久化在本地用户数据文件夹中;打开远程文件时,条目会存储在远程用户数据文件夹中。在没有文件系统可用时(例如,在某些使用 Web 版 VS Code 的情况下),条目会存储到 IndexedDB 中。
设置编辑器
语言筛选器
用户现在可以在设置编辑器搜索框中键入 @lang:languageId
以查看和编辑可以为语言 ID languageId
配置的所有设置。这样,用户可以查看特定于语言的设置,也称为语言覆盖。
请注意,这些覆盖会保持配置状态,直到通过单击齿轮图标并重置设置来明确重置它们。
下面的短视频将语言筛选器设置为 @lang:css
,以显示所有可能的 CSS 语言覆盖设置。
主题:Light Pink
工作区和文件夹设置的保留
设置编辑器中的工作区和文件夹设置现在会保留,直到用户手动重置。此更改有助于解决用户想要显式指定一个等于设置默认值但与用户设置值不同的工作区设置值的情况。以前,用户必须打开工作区设置 JSON 文件来设置此值。
下面,在设置编辑器工作区选项卡中设置了编辑器制表符大小,并且它会自动添加到工作区的 settings.json
文件中。
主题:Light Pink
主通知按钮
通知的第一个按钮现在显示为主色,以区别于其他按钮。这与对话框遵循相同的模式。
主题:GitHub Dark
编辑器的新上下文键
有一些新的上下文键指示编辑器是否是编辑器组中的第一个或最后一个
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 Pull Requests and Issues 扩展广泛用于向问题和拉取请求添加注释,但任何扩展都可以采用此功能。
注释视图的可发现性
当您打开一个包含注释的文件时,会显示注释视图。这可以通过设置 comments.openView
进行控制。
添加注释的可发现性
现在,当您将鼠标悬停在可以添加注释的行上的任何部分时,左侧装订线中会显示“+”符号。
注释辅助功能改进
注释有几项辅助功能改进
- 如果在可添加注释的范围内,可以使用命令在当前行添加注释来创建注释。
- 注释线程的 aria 标签,其中包含注释数量和线程标签。
- 转到下一个注释线程命令会将焦点移到注释线程控件。
- 新的转到上一个注释线程命令。
- 转到下一个和上一个命令的键盘快捷方式:
Alt+F9
和Shift+Alt+F9
。
终端
显示所有查找匹配项
在终端中搜索时,搜索词的所有实例现在都会高亮显示。当前选定的匹配项也有特定的高亮显示,可以单独自定义。
您可以通过以 terminal.findMatch
为前缀的颜色自定义项来微调高亮显示颜色。
滚动条注释
注释现在出现在终端的滚动条中,以指示缓冲区中的感兴趣点。
例如,查找结果在滚动条中有相应的注释。
当启用 Shell 集成的预览功能时,滚动条中会显示每个运行命令的注释。
命令导航改进
一个鲜为人知但已存在一段时间的功能是能够在终端中快速导航命令。最初这是基于何时按下 Enter
键,但现在启用 Shell 集成后,它将升级为使用 Shell 集成知识更可靠地识别正确的行。此外,现在在命令之间跳转时会显示 UI 反馈。
可以通过以下键绑定访问此功能
- macOS:
Cmd+上/下
- Linux/Windows:
Ctrl+上/下
(新增)
可以按住 Shift
键以在终端中的命令之间进行选择。
复制的文本保留 HTML 样式
要从终端复制富文本,请运行终端:将选择内容复制为 HTML 命令,或使用终端上下文菜单项复制为 HTML。
最小对比度默认值已更改
terminal.integrated.minimumContrastRatio
设置已经存在一段时间了,它可以根据背景颜色动态更改终端的前景颜色。在此版本中,我们将默认值更改为 4.5
(WCAG AA),以确保终端无论主题如何都具有辅助功能。如果这导致您的颜色出现问题,可以通过将 "terminal.integrated.minimumContrastRatio": 1
设置为 1 来禁用该功能。
源代码管理
源代码管理存储库视图
以前,源代码管理存储库视图中的存储库是按照打开包含多个存储库的文件夹/工作区时发现的顺序排序的。这很麻烦,因为发现顺序可能不同,并且存储库看起来是随机顺序的。在此里程碑中,源代码管理存储库视图中的存储库始终按名称排序。
编辑器
将快速建议作为行内补全
editor.quickSuggestions
设置现在接受 inline
作为配置值。设置为 inline
时,快速建议 (IntelliSense) 在您键入时不会显示建议小部件,而是将补全显示为虚影文本。
主题:GitHub Light
用于光标索引的代码片段变量
有一些新的代码片段变量:$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
拖放文件夹
您现在可以将本地文件和文件夹拖放到在支持 Web 文件系统访问 API 的浏览器中打开的 vscode.dev 或 insiders.vscode.dev 浏览器窗口中以访问其内容。这在拖放到编辑器区域或文件资源管理器中都有效。
远程存储库
扩展重构
以前,Azure Repos 扩展直接依赖于 GitHub Repositories 扩展。Azure Repos 和 GitHub Repositories 现在依赖于一个共同的扩展,即 Remote Repositories,它支持 GitHub 和 Azure Repos 之间的常见工作流程。以前由 GitHub Repositories 扩展公开的所有 API 现在都由 Remote Repositories 公开。
同步存储库提醒
当您重新打开一个有未提交更改的存储库时,Remote Repositories 默认不显示存储库的最新版本。我们现在会显示一个对话框,提示您手动同步存储库,以便您的存储库与 GitHub 或 Azure Repos 上的内容保持同步。您可以使用 remoteHub.uncommittedChangesOnEntry
设置控制此对话框。
主题:One Monokai
Azure Repos
在此里程碑中,我们启用了编辑和提交托管在 Azure Repos 中的存储库更改的功能。我们还添加了为 Azure Repos 创建、更新和打开拉取请求的基本功能。
笔记本
滚动条上的查找装饰
笔记本中的查找结果现在将在滚动条中呈现
将焦点移动到交互式窗口
有两个新命令可用于将焦点放在交互式窗口中。
interactive.input.focus
- 将焦点移动到交互式窗口中的输入编辑器。interactive.history.focus
- 将焦点移动到交互式窗口中的历史记录。
这些命令没有默认的键绑定,但您可以添加自己的键盘快捷方式。
调试
JavaScript 调试
JavaScript 调试器现在支持收集和可视化堆配置文件。堆配置文件允许您查看随时间分配的内存位置和数量。这些已作为调试:获取性能配置文件命令的一个选项添加,也可以通过调用堆栈视图中的记录 ⏺ 按钮访问。
语言
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 进行 linting。此扩展利用语言服务器协议提供 linting 支持。
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
来禁用内置的 linting 功能。
Jupyter
在此里程碑中,Jupyter 扩展有了几项改进。
内核支持
内核启动得到了改进,包括
- 支持更多 conda 环境。
- 在所有平台上支持
.env
文件。
数据查看器
DataFrames 和 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 团队当前正在处理的更多详细信息,请参阅TypeScript 4.7 迭代计划。
要开始使用 TypeScript 4.7 每晚构建版本,请安装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
应该用于进行使内嵌提示失效的编辑。例如,双击表示推断类型的提示应该插入该类型注解。
具有自定义语言 ID 的输出通道
在此里程碑中,我们已最终确定 createOutputChannel API,以便创建具有自定义语言 ID 的输出通道。通过传递语言 ID,这将允许您向您的输出通道贡献标记或语法着色以及 CodeLens 功能。
颜色主题类型:高对比度浅色
颜色主题现在可以指定 hc-light
作为基础主题 (uiTheme
)。基础主题用于颜色主题未定义的所有颜色。
在 VS Code API 中,ColorTheme.kind 现在也可以具有值 HighContrastLight
。
用于颜色贡献的高对比度浅色主题
颜色贡献现在也可以定义高对比度浅色主题 (highContrastLight
)。如果未指定,将使用 light
颜色作为默认值。
NODE_MODULE_VERSION 和 Node.js API 更新
对于使用原生节点模块的扩展作者,此版本将 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 类型定义。元模型包含以下信息:指定的请求和通知及其参数类型、返回类型、部分返回类型和注册选项。它还包含所有定义的结构和枚举。
调试适配器协议
我们已解决调试适配器协议中的几个文档问题
- 为了区分 terminate 和 disconnect 请求,我们改进了它们的文档。
evaluate
请求的context
参数的variables
值已在文档中说明。每当在变量视图的上下文中调用evaluate
请求时,VS Code 都会使用此未记录的值。客户端和调试适配器无需更改,因为context
参数是string
类型,并且variables
值仅在文档中提及。
提议的扩展 API
每个里程碑都会带来新的提议 API,扩展作者可以试用这些 API。一如既往,我们欢迎您的反馈。以下是试用提议 API 的步骤
- 找到您想尝试的提议,并将其名称添加到
package.json#enabledApiProposals
中。 - 使用最新的 vscode-dts 并运行
vscode-dts dev
。它会将相应的d.ts
文件下载到您的工作区中。 - 您现在可以针对该提议进行编程。
您不能发布使用提议 API 的扩展。下一个版本可能存在重大更改,我们绝不希望破坏现有扩展。
InputBox 验证消息严重性
我们的 InputBox 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 的新发布节奏采用新的 Electron 版本。我们也在积极致力于工作台的沙盒化,下一步是改进 Node.js 托管服务与沙盒化工作台之间的通信通道,这将使我们能够进一步简化新架构。
RPM 包依赖列表改进
我们现在在构建过程中计算 rpm 包所需的依赖项,这受到了 Chromium 中所做工作的启发。这使我们能够在采用更新的运行时或原生模块时提供最新的依赖列表。在即将到来的里程碑中,我们还将对我们的 debian 包进行类似的更改。
支持内置扩展的带外发布
现在可以在 Marketplace 中可用的内置扩展,VS Code 将检测新版本并更新扩展。这也将使这些扩展支持预发布版本。
文档
VS Code 中的 R
有一个新的Visual Studio Code 中的 R 主题,描述了使用 R 扩展在 VS Code 中对 R 编程语言的支持。R 扩展包括丰富的语言功能,例如代码补全和 linting,以及集成的 R 终端以及专用的工作区、数据和绘图查看器。
开发容器博客文章
如果您错过了 Burke Holland 最近关于使用开发容器创建易于使用的编程环境的博客文章,请查看“教程问题”。该博客文章描述了 Laravel 如何使用预配置的 Docker 容器为其 PHP 框架教程提供运行时和依赖项。
重要修复
- 117674 调试控制台有时在内容换行时停止自动滚动
- 138963 启动调试后,调试控制台无法正常工作
- 142754 Emacs 在 VS Code 终端中的使用已损坏
- 143513 contributes.configuration 项仅在搜索框为空时才尊重视图中的“order”属性
- 144458 Glob 模式
**/p*
错误地匹配到/foo/ap
- 144783 未被编辑的设置列表小部件项似乎没有最大宽度
- 145243 设置目录在较小屏幕上无法调整大小
- 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 超级增强 (GitKraken)
- YARA (infosec-intern)
- ZMK 工具 (Joel Spadin)
- JSPM 生成器 (JSPM)
- gcs-sync-vs-ext (killerbees-devops)
- 更快的段落/单词移动 (Mateusz Dudzinski)
- narumincho.definy (narumincho)
- 更好的 Markdown 和 Latex 快捷方式 (OrangeX4)
- Python 括号 (OrangeX4)
- Quarto (Quarto)
- 行内 SQL (qufiwefefwoyn)
- React 层次结构浏览器 (React Sidekick)
- 无服务器工作流程编辑器 (Red Hat)
- 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 中添加 match media 更改监听器 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):修复:悬停在固定位置的悬停小部件上会隐藏它们 PR #142160
- @pjknkda (Jungkook Park):删除大文件时跳过读取文件内容进行撤销 PR #144890
- @quanzhuo (卓泉)
- 修复问题 #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):在多光标 selectAll 中遵循 searchScope 列 PR #142312
- @sumneko (最萌小汐)
- 更新 Lua 语法 PR #144544
- 更新 Lua 语法 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 (张巨峰):feat:堆分析 PR #1187
对 vscode-languageserver-node
的贡献
- @razzeee (Kolja Lampe):修复拼写错误 PR #903
对 vscode-vsce
的贡献
- @felipecrs (Felipe Santos):docs:向 readme 添加配置提示 PR #704
对 debug-adapter-protocol
的贡献
- @eshelyaron (Eshel Yaron):修复
ExceptionFilterOptions
中的一个小错误 PR #250 - @haneefdm (Haneef Mohammed):添加了曾经在此列表中的 Cortex-Debug PR #257
- @renkun-ken (任坤):添加 R 调试器 PR #255
对 language-server-protocol
的贡献
- @KamasamaK
- @sno2 (Carter Snook):修复(inlayHint):类型引用拼写错误 PR #1425