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 内存分配情况。
- 网页版 VS Code - 将文件和文件夹拖放到 vscode.dev。
- 远程开发 - Mac 上的 SSH 支持 - 通过 SSH 连接到 Apple Silicon/M1/ARM64 机器。
- 新的 R 语言主题 - 学习如何在 VS Code 中使用 R 进行数据科学。
如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新页面。
观看发布派对: 聆听 VS Code 团队讨论一些新功能。您可以在我们的 YouTube 频道上找到活动录像。
亮点短片: 如果您只有 60 秒时间,可以观看VS Code 3 月发布亮点视频,快速了解新内容。
内测版:想尽快尝试新功能?您可以下载每晚的内测版构建,并尽快尝试最新的更新。
辅助功能
团队努力使 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 的方式。打开本地文件时,条目将持久保存在本地用户数据文件夹中;打开远程文件时,它们将存储在远程用户数据文件夹中。当没有文件系统可用时(例如,在某些情况下使用网页版 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
允许您绕过二进制文件警告,并在检测到二进制文件时自动打开您选择的编辑器类型。您可以从设置编辑器的下拉菜单中或通过 settings.json
中的 IntelliSense 选择默认的二进制编辑器 ID。
更流畅的身份验证体验
您可能会注意到 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++扩展,而应用市场中有名为 Windows 64 位的相同版本的扩展,VS Code 将自动将该扩展更新到 64 位版本。
音频提示改进
新设置 audioCues.volume
(0-100, 默认为 50) 可用于控制音频提示的音量。折叠区域也有更新的音频提示。
侧面板和侧边栏的新名称
两个版本前,我们引入了侧面板。当时,我们取消了将包含终端的底部面板移动到侧边的功能,以支持新的连贯命令。在听取用户反馈后,我们确定此决定破坏了一些重要的工作流程,并决定恢复该更改。
这给我们留下了两个面板,即面板和侧面板,它们都可以位于工作台的侧面。为了解决这个问题并更好地反映新侧面板的方向,我们决定更新侧边栏和侧面板的命名。侧边栏现在在 UI 中称为主侧边栏,而侧面板现在称为辅助侧边栏。
- 侧边栏 (Side Bar) -> 主侧边栏 (Primary Side Bar)
- 侧面板 (Side Panel) -> 辅助侧边栏 (Secondary Side Bar)
这些名称将反映在整个编辑器的菜单和命令中;但是,为了防止破坏现有的键绑定,没有更改任何命令 ID。
减少动画模式
当启用操作系统的减少动画设置时,工作台现在支持以减少动画的方式进行渲染。这可以通过 workbench.reduceMotion
设置(值为 on
、off
或默认的 auto
)来覆盖或禁用。
评论
GitHub Pull Requests and Issues 扩展广泛使用评论 UI 来向问题和拉取请求添加评论,但任何扩展都可以采用它。
评论视图的可发现性
当您打开一个有评论的文件时,评论视图将会显示。这可以通过设置 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 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
拖放文件夹
您现在可以将本地文件和文件夹拖放到在 vscode.dev 或 insiders.vscode.dev 上打开的浏览器窗口中,该浏览器支持 Web 文件系统访问 API 来访问内容。这在拖放到编辑器区域以及文件资源管理器时都有效。
远程仓库
扩展重构
以前,Azure Repos 扩展直接依赖于 GitHub Repositories 扩展。Azure Repos 和 GitHub Repositories 现在依赖于一个共同的扩展 Remote Repositories,它支持跨 GitHub 和 Azure Repos 的通用工作流。以前由 GitHub Repositories 扩展公开的所有 API 现在都由 Remote Repositories 公开。
提醒同步仓库
当您重新打开具有未提交更改的仓库时,默认情况下,远程仓库不会显示您的仓库的最新版本。我们现在会显示一个对话框,让您手动同步仓库,以便您的仓库与 GitHub 或 Azure Repos 上的内容保持同步。您可以使用 remoteHub.uncommittedChangesOnEntry
设置来控制此对话框。
主题:One Monokai
Azure Repos
在此里程碑中,我们启用了对托管在 Azure Repos 中的仓库进行编辑和提交更改的功能。我们还添加了创建、更新和打开 Azure Repos 拉取请求的基本功能。
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 匹配的情况下使用速记语法创建链接。例如,[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: 新建 Python 文件的新命令,或者通过入门页面上的新建文件...项。
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 notebook
创建新的 Jupyter notebook 现在已整合到新建文件...菜单中。
远程开发
我们继续在远程开发扩展上开展工作,这些扩展允许您使用容器、远程计算机或适用于 Linux 的 Windows 子系统 (WSL) 作为功能齐全的开发环境。
1.66 版的功能亮点包括:
- “在开发容器中打开”徽章 - 指导您的仓库用户在自定义开发容器中重新打开。
- 远程 - SSH 扩展现在可以连接到远程 Apple Silicon/M1/ARM64 机器。
您可以在远程开发发行说明中了解新的扩展功能和错误修复。
GitHub 拉取请求和议题
GitHub Pull Requests and Issues 扩展的工作仍在继续,该扩展允许您处理、创建和管理拉取请求和问题。请查看该扩展的 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)
这样的模式能够将所有带有“添加段”的文件嵌套在单个基础文件下。
扩展创作
支持 Notebook 的文档选择器
我们最终确定了对 vscode.DocumentSelector
类型的补充。此类型允许您将诸如转到定义之类的语言功能与特定文档关联起来,它驱动 UI,并决定是否向相应的提供程序请求结果。我们添加了一个新属性,允许扩展缩小到 notebook 类型。例如,{ language: 'python', notebookType: 'jupyter-notebook'}
针对所有嵌入在 Jupyter notebook 中的 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
上个月,调试适配器协议向 CompletionItem
对象添加了 detail
属性。此属性现在在 VS Code 中受支持。您将在调试控制台的建议小部件中看到详细信息。
语言服务器协议
类型层次结构、内联值和内嵌提示支持已移出提议状态,为 3.17 版本做准备。已发布了新版本的库。
还有一个LSP 的元模型的初版,以及相应的模式,可以是 JSON 模式或TypeScript 类型定义。元模型包含以下信息:指定的请求和通知及其参数类型、返回类型、部分返回类型和注册选项。它还包含所有已定义的结构和枚举。
调试适配器协议
我们已经解决了调试适配器协议的几个文档问题。
- 为了消除 terminate 和 disconnect 请求的歧义,我们改进了它们的文档。
evaluate
请求的context
参数的值variables
已被记录。VS Code 在变量视图的上下文中调用evaluate
请求时使用了这个未记录的值。客户端和调试适配器无需进行任何更改,因为context
参数是string
类型,而variables
值仅在文档中提及。
建议的扩展 API
每个里程碑都会带来新的提议 API,扩展作者可以尝试这些 API。一如既往,我们希望得到您的反馈。以下是尝试提议 API 的步骤
- 查找您要尝试的提议并将其名称添加到
package.json#enabledApiProposals
。 - 使用最新的vscode-dts并运行
vscode-dts dev
。它会将相应的d.ts
文件下载到您的工作区中。 - 您现在可以根据该提议进行编程。
您不能发布使用提议 API 的扩展。下个版本中可能会有破坏性更改,我们绝不希望破坏现有扩展。
输入框验证消息严重性
我们的 InputBox API(通过 window.showInputBox
和 window.createInputBox
)提供了验证用户输入的机制。本次迭代,我们通过一个提议的 API 扩展了它,以显示严重性。
例如,如果您想根据用户的输入向用户显示一条信息消息,您的验证消息可以返回:
{
content: 'this is an info message';
severity: InputBoxValidationSeverity.Info;
}
看起来会是这样:
此提案的详细信息可以在 inputBoxSeverity 中找到。
笔记本(Notebook)文档更改事件
有一个关于笔记本(notebook)文档更改事件的新提案:它以 notebookDocumentEvents 的形式提供,并包含两个事件:
vscode.workspace.onDidSaveNotebookDocument
每当笔记本被保存时触发。vscode.workspace.onDidChangeNotebookDocument
每当笔记本发生更改时触发。例如,当单元格被添加或删除、单元格本身发生更改或元数据发生更改时。
Tabs API 形态最终确定
tabs API 正在接近下一个里程碑的最终确定,目前处于形态将保持稳定,几乎没有变化的状态。2022 年 4 月的迭代将是提供关于此 API 的形态和功能反馈的最后机会。可以通过 GitHub issues 提供反馈。tabs 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,Node.js 版本升级到 16.13.0。
接下来是什么?
我们将继续在 Electron 新的发布节奏下采用新版本。我们还在积极致力于沙箱化工作台,下一步是改善Node.js 托管服务和沙箱化工作台之间的通信渠道,这将使我们能够进一步简化新架构。
RPM 软件包需求列表改进
我们现在将计算 rpm 软件包所需的依赖项作为我们构建过程的一部分,灵感来自于Chromium中所做的工作。这使我们能够在采用更新的运行时或本机模块时提供最新的依赖项列表。我们还将在即将到来的里程碑中对我们的 debian 软件包进行类似的更改。
支持内置扩展的带外发布
那些在应用商店中可用的内置扩展现在可以进行带外发布,VS Code 将检测到新版本并更新扩展。这也将使这些扩展能够支持预发布版本。
文档
VS Code 中的 R
有一个新的在 Visual Studio Code 中使用 R 主题,描述了在 VS Code 中通过 R 扩展对 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): 修复“新建文件”快速选择上的“配置键绑定”操作按钮 (#_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 (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 语法 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: 在自述文件中添加配置提示 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