三月 2022 (版本 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 年三月版。此版本中有许多更新,我们希望您会喜欢,其中包括一些主要亮点
- 本地历史记录 - 独立于源代码管理跟踪本地文件更改。
- 设置编辑器语言过滤器 - 显示可用的特定于语言的设置。
- 终端查找改进 - 在终端面板和滚动条中突出显示匹配项。
- 内置 CSS/LESS/SCSS 格式化程序 - 用于 CSS、LESS 和 SCSS 的代码格式化。
- JavaScript 堆分析 - 在调试时收集和查看 JS 内存分配。
- VS Code for the Web - 将文件和文件夹拖放到 vscode.dev 中。
- Remote - SSH 支持 Mac - 通过 SSH 连接到 Apple Silicon/M1/ARM64 机器。
- 新的 R 语言主题 - 了解如何在 VS Code 中使用 R 进行数据科学。
如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新。
观看发布会: 收听 VS Code 团队讨论一些新功能。您可以在我们的 YouTube 频道上找到活动录像。
亮点速览: 如果您只有 60 秒,请观看 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
- 在此时间间隔(秒)内,进一步的更改将添加到本地文件历史记录中的最后一个条目(默认10 秒
)。
时间线视图工具栏中的新过滤器操作允许您启用或禁用单个提供程序
注意: 本地历史记录条目的存储位置取决于您使用 VS Code 的方式。打开本地文件时,条目会保留在本地用户数据文件夹中;打开远程文件时,它们会存储在远程用户数据文件夹中。如果文件系统不可用(例如,在使用 VS Code for Web 的某些情况下),条目会存储在 IndexedDB 中。
设置编辑器
语言过滤器
用户现在可以在设置编辑器搜索框中输入 @lang:languageId
来查看和编辑可以为 ID 为 languageId
的语言配置的所有设置。这样,用户就可以查看特定于语言的设置,也称为语言覆盖。
请注意,这些覆盖将一直保持配置状态,直到通过点击齿轮图标并重置设置来明确重置。
下面的短视频将语言过滤器设置为 @lang:css
,以显示所有可能的 CSS 语言覆盖设置。
主题:Light Pink
工作区和文件夹设置的保留
设置编辑器中的工作区和文件夹设置现在将被保留,直到用户手动重置。此更改有助于处理用户想要显式指定与设置的默认值相等但与用户设置值不同的工作区设置值的情况。以前,用户必须打开工作区设置 JSON 文件来设置此值。
下方,编辑器 tab 大小在设置编辑器工作区选项卡中设置,并自动添加到工作区的 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
)。
注释
GitHub Pull Requests and Issues 扩展广泛使用评论 UI 向 issues 和 pull requests 添加评论,但任何扩展都可以采用。
评论视图的可发现性
当您打开包含评论的文件时,将显示评论视图。这可以通过设置 comments.openView
来控制。
添加评论的可发现性
现在,当您将鼠标悬停在可以添加评论的行上的任何部分时,左侧边栏将显示 "+" 符号。
评论可访问性改进
有一些评论可访问性改进
- 命令在当前行添加评论用于在可评论范围内创建评论。
- 评论线程的 aria 标签,包括评论数量和线程标签。
- 转到下一个评论线程命令将焦点移动到评论线程控件。
- 新的转到上一个评论线程命令。
- 下一个和上一个命令的键盘快捷方式:
Alt+F9
和Shift+Alt+F9
。
终端
显示所有查找匹配项
在终端中搜索时,搜索词的所有实例现在都将突出显示。当前选定的匹配项也有一个特定的突出显示,可以单独自定义。
您可以通过以 terminal.findMatch
为前缀的颜色自定义项微调高亮颜色的外观。
滚动条注解
注解现在出现在终端的滚动条中,指示缓冲区中的关注点。
例如,查找结果在滚动条中具有相应的注解。
当启用外壳集成的预览功能时,滚动条中会为每个运行的命令显示一个注解。
命令导航改进
一个鲜为人知但已存在一段时间的功能是能够在终端命令之间快速导航。最初这是基于按下 Enter
键时确定的,但现在启用外壳集成后,它将升级为使用外壳集成知识来更可靠地识别正确的行。此外,现在在命令之间跳转时会显示 UI 反馈。
此功能可通过以下键绑定访问
- macOS:
Cmd+上/下
- Linux/Windows:
Ctrl+上/下
(新增)
可以按住 Shift
键在终端命令之间进行选择。
复制的文本保留 HTML 样式
要从终端复制富文本,请运行终端:将选中内容复制为 HTML 命令或使用终端上下文菜单项复制为 HTML。
最小对比度默认值已更改
terminal.integrated.minimumContrastRatio
设置已经存在一段时间了,它根据背景颜色动态更改终端的前景色。在此版本中,我们将默认值更改为 4.5
(WCAG AA),以确保无论主题如何,终端都可访问。如果这最终导致颜色出现问题,您可以通过设置 "terminal.integrated.minimumContrastRatio": 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
以赋予此策略的结果更高的优先级。
VS Code for the Web
拖放文件夹
您现在可以将本地文件和文件夹拖放到在 vscode.dev 或 insiders.vscode.dev 上打开的浏览器窗口中,使用支持 web 文件系统访问 API 的浏览器来访问内容。这在拖放到编辑器区域和文件资源管理器时都有效。
远程存储库
扩展重构
此前,Azure Repos 扩展直接依赖于 GitHub Repositories 扩展。现在,Azure Repos 和 GitHub Repositories 都依赖于一个通用扩展,远程存储库,该扩展支持 GitHub 和 Azure Repos 之间的通用工作流程。以前由 GitHub Repositories 扩展公开的所有 API 现在都由远程存储库公开。
同步存储库提醒
当您重新打开一个具有未提交更改的存储库时,远程存储库默认不显示您的存储库的最新版本。我们现在显示一个对话框,提示您手动同步存储库,以便您的存储库与 GitHub 或 Azure Repos 上的内容保持同步。您可以使用 remoteHub.uncommittedChangesOnEntry
设置来控制此对话框。
主题:One Monokai
Azure Repos
在此里程碑中,我们启用了编辑并提交更改到托管在 Azure Repos 中的存储库的功能。我们还添加了为 Azure Repos 创建、更新和打开拉取请求的基本功能。
Notebooks
查找结果的滚动条装饰
Notebook 中的查找结果现在将在滚动条中渲染
将焦点移动到交互式窗口
新增了两个用于将焦点置于交互式窗口的命令。
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 匹配的情况下使用缩写语法创建链接。例如,[我的炫酷链接]
,使用 我的炫酷链接
链接定义(例如,[我的炫酷链接]: https://example.com
)。这些缩写链接现在在 VS Code 的编辑器中可点击
在编辑器中,点击这些链接会导航到链接定义。在 Markdown 预览中,链接则导航到链接目的地。
reStructuredText 语法
现在有一个内置扩展,用于 reStructuredText (rst) 文件的语法高亮。
对扩展的贡献
Python
状态栏中解释器显示的更改
Python 扩展为了与其他语言保持一致,将选定的 Python 解释器信息移到了状态栏右侧,紧邻 Python 语言状态项。为了清理状态栏,它现在只在当前打开 Python 或 settings.json
文件时显示。
新建 Python 文件命令
现在有两种更快捷的方式来创建空 Python 文件:通过一个名为Python: 新建 Python 文件的新命令,或通过入门页上的新建文件...项。
Pylint 扩展
现在有一个新的 Microsoft Pylint 扩展,用于使用 pylint 进行 linting。此扩展利用 Language Server Protocol 提供 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 Notebook
新建 Jupyter notebook 现在已整合到新建文件...菜单中。
远程开发
远程开发扩展的工作仍在继续,这些扩展允许您使用容器、远程计算机或 适用于 Linux 的 Windows 子系统 (WSL) 作为功能齐全的开发环境。
1.66 版的功能亮点包括
- “在 Dev Container 中打开”徽章 - 指导您的仓库用户在自定义开发容器中重新打开。
- Remote - SSH 扩展现在可以连接到远程 Apple Silicon/M1/ARM64 机器。
您可以在远程开发发行说明中了解有关新扩展功能和错误修复的信息。
GitHub 拉取请求和问题
GitHub 拉取请求和问题扩展的工作仍在继续,该扩展允许您处理、创建和管理拉取请求和问题。请查看扩展的 0.40.0 版本更新日志以查看亮点。
预览功能
终端外壳集成
外壳集成在此版本中继续得到更多改进,主要体现在可靠性以及上述终端部分所述的装饰改进。
以下是亮点
- 命令装饰现在显示在滚动条中,类似于编辑器。
- 命令装饰应在窗口重新加载(或分离/附加)时恢复。
- 改进了在 Windows 上调整终端大小时的命令跟踪。
- 改进了对 终端:清空 VS Code 命令和
clear
外壳命令的处理。 - 支持
zsh
右侧提示符。 - 处理更多 bash
$PROMPT_COMMAND
变量的格式。 - 在未启用 PSReadLine 时支持
pwsh
。 - 如果存在已知问题或需要特殊处理,即使设置已启用,外壳初始化脚本现在也可以通过取消设置
$VSCODE_SHELL_INTEGRATION
变量来退出外壳集成。
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)
之类的模式可以将所有带有“添加片段”的文件嵌套在一个基本文件下。
扩展创作
感知 Notebook 的文档选择器
我们已经最终确定了对 vscode.DocumentSelector
类型的添加。此类型允许您将诸如转到定义之类的语言功能与特定文档关联,它驱动 UI,并决定是否向相应的提供程序请求结果。我们添加了一个新属性,允许扩展缩小到 notebook 类型。例如,{ language: 'python', notebookType: 'jupyter-notebook'}
定位所有嵌入在 Jupyter notebooks 中的 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 模块的扩展作者,此版本将 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
上个月,调试适配器协议 (Debug Adapter Protocol) 在 CompletionItem
对象中添加了一个 detail
属性。VS Code 现在支持此属性。您将在调试控制台的建议小部件 (suggest widget) 中看到此详细信息。
Language Server Protocol
类型层级 (Type Hierarchy)、内联值 (inline values) 和内嵌提示 (inlay hints) 支持已从提议状态移出,为 3.17 版本做准备。已发布了这些库的新版本。
同时,还有一个首个版本的 LSP 元模型 (meta model),以及相应的 JSON 模式或 TypeScript 类型定义模式。该元模型包含以下信息:指定的请求和通知及其参数类型、返回类型、部分返回类型和注册选项。它还包含所有已定义的结构和枚举。
Debug Adapter Protocol
我们解决了调试适配器协议 (Debug Adapter Protocol) 的几个文档问题
- 为了区分 terminate 和 disconnect 请求,我们改进了它们的文档。
- 我们为
evaluate
请求的context
参数记录了variables
值。当在 **VARIABLES** 视图的上下文中调用evaluate
请求时,VS Code 一直在使用这个未文档化的值。客户端和调试适配器无需进行任何更改,因为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 中找到。
Notebook 文档更改事件
有一个针对 Notebook 文档更改事件的新提议:它以 notebookDocumentEvents 的形式提供,包含两个事件
- 当 Notebook 保存时,
vscode.workspace.onDidSaveNotebookDocument
会触发。 - 当 Notebook 发生更改时,
vscode.workspace.onDidChangeNotebookDocument
会触发。例如,当单元格被添加或移除,单元格本身发生变化,或元数据发生变化时。
选项卡 API 形状最终确定
选项卡 API 预计将在下个里程碑最终确定,目前其形状已趋于稳定,几乎没有变化。2022 年 4 月的迭代将是提供关于此 API 形状和功能的反馈的最后机会。您可以通过 GitHub issues 提供反馈。选项卡 API 允许读取已打开的选项卡、它们的位置以及关闭它们。
内联补全
我们继续致力于内联补全,为未来几个版本中的最终确定做准备。内联补全现在可用于建议代码片段或文本替换(之前仅支持文本插入)。
拖放到编辑器
提议的 文本编辑器拖放 API 允许扩展处理拖放到文本编辑器的操作。这些拖放事件可以来自 VS Code 内部(例如,从 VS Code 的资源管理器将文件拖到文本编辑器中),也可以通过从操作系统将文件拖到 VS Code 中生成。
要试用新的 API,您必须设置 "workbench.experimental.editor.dragAndDropIntoEditor.enabled": true
。启用此设置后,您可以在拖放时按住 Shift
键将内容拖放到编辑器中。
我们包含了在拖放到 Markdown 文件时生成链接的实验性支持。您也可以查看 Markdown 扩展的源代码,了解该 API 的使用示例。
已解决/未解决的评论
有一个新提议,用于设置评论线程的 已解决或未解决状态。指定了状态的评论线程将获得额外的用户体验处理。
工程
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 在 VS Code 终端中使用 Emacs 已损坏
- 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 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)
- Inline SQL (qufiwefefwoyn)
- React Hierarchy Explorer (React Sidekick)
- Serverless Workflow Editor (Red Hat)
- gitlab (RedstoneWizard08)
- LLVM IR Language Support (rev.ng Labs)
- Behave (rioj7)
- Line Completion (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):修复 New File Quickpick 上的配置键盘快捷键按钮 (#_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)
- 只有当已处于 Zen 模式时才通过 workbench.action.exitZenMode 退出 Zen 模式 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):在多光标 selectAll 中尊重 searchScope 列 PR #142312
- @sumneko (最萌小汐)
- 更新 Lua grammar 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
项目的贡献
- @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 (Kun Ren):添加 R Debugger PR #255
对 language-server-protocol
项目的贡献
- @KamasamaK
- @sno2 (Carter Snook):fix(inlayHint): 类型引用拼写错误 PR #1425