2022年3月的Visual Studio Code

735 阅读26分钟

2022年3月(1.66版)

欢迎来到Visual Studio Code的2022年3月版。这个版本有许多更新,我们希望你会喜欢,其中一些关键的亮点包括。

如果你想在线阅读这些发布说明,请到code.visualstudio.com上的更新

在4月7日星期四太平洋时间上午8点(伦敦时间下午4点),加入我们 VS Code团队的现场直播,看看这个版本的新内容的演示,并现场向我们提问。

内部人员:想尽快体验新功能?你可以下载每晚的Insiders版本,一旦有了最新的更新,就可以立即试用。

可访问性

我们的团队努力使VS Code成为最容易使用的编辑器之一。这个版本包含几个改进,以帮助可用性和可访问性。

工作台

本地历史

文件的本地历史现在可以在时间线视图中使用。根据配置的设置,每当你保存一个编辑器,一个新的条目就会被添加到列表中。

Local history showing file saves, a rename, and undo entries

每个本地历史条目包含条目创建时文件的全部内容,在某些情况下,可以提供更多的语义信息(例如,表明重构)。

从一个条目中,你可以。

  • 与本地文件或以前的条目比较变化。
  • 恢复内容。
  • 删除或重命名该条目。

有新的全局命令来处理本地历史。

  • 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 - 从本地历史记录中排除某些文件的全局模式。
  • workbench.localHistory.mergeWindow - 以秒为单位的间隔,在此期间,进一步的变化被添加到本地文件历史的最后一个条目中(默认为 )。10s

时间线视图工具栏中的一个新的过滤动作允许你启用或禁用个别提供者。

Timeline filter drop down with Git History unchecked and Local History checked

注意:本地历史条目存储在不同的位置,这取决于你对VS Code的使用。当打开本地文件时,这些条目会持久地保存在本地用户数据文件夹中,当打开远程文件时,它们将被保存在远程用户数据文件夹中。当没有文件系统时(例如,在某些情况下,当使用VS Code for Web时),条目会被存储到IndexedDB。

设置编辑器

语言过滤器

用户现在可以在设置编辑器的搜索框中输入@lang:languageId 来查看和编辑所有可以为 ID 为languageId 的语言配置的设置。这样,用户可以查看特定语言的设置,也被称为语言覆盖。

请注意,这些覆盖物保持配置,直到明确地通过点击齿轮图标和重置设置进行重置。

下面的短视频将语言过滤器设置为@lang:css ,以显示所有可能的CSS语言覆盖设置。

Modification of a boolean CSS language-specific setting to turn off CodeLens in the Diff editor

主题。浅粉色

保存工作区和文件夹设置

设置编辑器中的工作区和文件夹设置现在被保留下来,直到用户手动重置。这一变化有助于用户明确指定工作区设置值的情况,该值等于设置的默认值,但与用户设置值不同。以前,用户必须打开工作区设置的JSON文件来设置这个值。

下面的编辑器标签尺寸是在设置编辑器工作区标签中设置的,它被自动添加到工作区的settings.json 文件中。

The editor tab size being set and reset via the Settings editor Workspace tab item

主题。浅粉色

主要的通知按钮

通知的第一个按钮现在以主色调出现,以区别于其他按钮。这与对话框的模式相同。

Notification where first button is displayed as green primary color

编辑器的新上下文键

有了新的上下文键,表明一个编辑器在一个编辑器组中是第一个还是最后一个。

  • activeEditorIsFirstInGroup- 活动的编辑器是否是其组中的第一个。
  • activeEditorIsLastInGroup- 活跃的编辑器是否是其组中的最后一个。

这些上下文键可用于有条件地启用使用when条款的键盘快捷键。

默认的二进制编辑器

一个新的设置,workbench.editor.defaultBinaryEditor ,让你规避二进制文件的警告,在检测到二进制文件时自动打开你选择的编辑器类型。你可以从设置编辑器的下拉菜单中选择默认的二进制编辑器ID,或者通过IntelliSense在settings.json

更顺畅的认证体验

你可能会注意到GitHub和微软的认证流程都更加顺畅。

  • 对于GitHub认证,我们已经删除了最初的 "继续"页面,因此您的登录体验只需要一个小步骤。
  • 对于微软的认证,如果你已经用微软的设置同步或其他扩展登录,我们尽量减少你被送出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-bit上安装了Windows 32-bit的**C/C++**扩展,而市场上有相同版本的Windows 64-bit的扩展,VS Code将自动更新扩展到64-bit版本。

音频提示的改进

新的设置audioCues.volume (0-100,默认为50),可以用来控制音频提示的音量。还有一个更新的折叠区域的音频提示。

侧板和侧栏的新名称

两个版本之前,我们推出了侧板。当时,我们取消了将包含终端的底部面板移动到侧面的功能,而采用了新的连贯命令。在听取了用户的反馈后,我们确定这一决定破坏了一些重要的工作流程,因此我们决定恢复这一变化。

这给我们留下了两个面板,即面板和侧板,它们都可以住在工作台的侧面。为了说明这一点并更好地反映新的侧面板的方向,我们决定更新侧面栏和侧面板的命名。侧边栏现在将被称为用户界面中的主侧边栏,而侧边面板现在将被称为次侧边栏。

  • 侧边栏 ->主要侧边栏
  • 侧板->二级侧栏

这些名称将反映在整个编辑器的菜单和命令中;但是,为了防止破坏现有的键盘绑定,没有改变命令ID。

Command Palette drop down displaying both primary and secondary focus side bar commands

减少运动模式

工作台现在支持在启用操作系统减少运动设置时用减少的动画进行渲染。这可以通过workbench.reduceMotion 设置来覆盖或禁用(值为on,off, 或默认的auto )。

评论

评论界面被GitHub拉动请求和问题扩展广泛使用,用于向问题和拉动请求添加评论,但也可以被任何扩展采用。

评论视图的可发现性

当你打开一个有评论的文件时,评论视图会显示出来。这可以通过设置comments.openView 来控制。

添加评论的可发现性

现在,当你把鼠标悬停在可以添加评论的行的任何部分时,**"+"**符号会显示在左边的沟槽中。

Line hover showing comment plus button

评论的可访问性改进

有几个评论的可访问性改进。

  • 在当前行添加评论的命令,用于在可评论的范围内创建评论。
  • 评论线程的咏叹调标签,包括评论的数量和线程的标签。
  • 转到下一个评论线程命令集中到评论线程控件中。
  • 一个新的转到上一个评论线程命令。
  • 下一个和上一个命令的键盘快捷方式:Alt+F9Shift+Alt+F9

终端

显示所有找到的匹配

当在终端搜索时,所有搜索词的实例现在将被突出显示。当前选择的匹配项也有一个特定的高亮显示,这可以单独定制。

你可以通过以terminal.findMatch 为前缀的颜色定制来微调高亮颜色的外观。

A yellow border is shown around all matches except for the currently selected one, which has a red border.

滚动条注释

注释现在出现在终端的滚动条上,表示缓冲区中的兴趣点。

例如,查找结果在滚动条上有相应的注释。

The terminal scroll bar displaying brown annotations for find matches within a file

当启用shell集成的预览功能时,每个被运行的命令都会在滚动条上显示注释。

Commands are run and corresponding annotations appear in the scroll bar

命令导航的改进

一个鲜为人知的功能已经存在了一段时间,就是在终端中快速浏览命令的能力。最初这是基于何时按下Enter ,但现在当shell集成被启用时,它将被升级为使用shell集成知识来更可靠地识别正确的行。此外,在命令间跳转时,现在会显示UI反馈。

A rectangle is briefly displayed around the command being navigated to

这个功能可以通过以下按键绑定来访问:

  • 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)在你输入时不会显示建议小部件,而是以重影文本的形式显示完成度:

Inline completions show and update as you type

主题。GitHub Light

游标索引的片段变量

有一些新的片段变量:$CURSOR_INDEX$CURSOR_NUMBER 。它们评估为各自游标的索引。后者从1开始,前者从0开始。这些变量的力量在于它与多个游标的组合。

例如,下面的片段将为每个游标添加一个有序的列表项:

"ordered_list": {
  "scope": "markdown",
  "prefix": "ol",
  "body": [
    "$CURSOR_NUMBER. $0"
  ],
  "description": "Add ordered list"
}

更新的源控制装饰器

为了使源控制装饰器更加明显,便于访问,我们为修改过的行添加了一个新的模式,并增加了所有装饰器的对比度。

Example of the modified decorator for source control

括号对的着色

有一个新的设置editor.bracketPairColorization.independentColorPoolPerBracketType 。当设置为true ,每个括号类型({...}(...) )将使用自己的颜色池进行着色。因此,不同类型的嵌套方括号将具有相同的颜色。

A screenshot that demonstrates independent color pools turned on

A screenshot that demonstrates independent color pools turned off

改进的语言检测

在上一次迭代中,我们增加了设置workbench.editor.historyBasedLanguageDetection ,以配置是否利用新的语言检测策略,该策略考虑到了你所打开的文件类型。这个设置现在是默认启用的,而且还增加了一个新的设置workbench.editor.preferHistoryBasedLanguageDetection ,以使这个策略的结果得到更多的优先考虑。

网络版VS代码

拖放文件夹

你现在可以用支持网络文件系统访问API的浏览器将本地文件和文件夹拖放到在vscode.devinsiders.vscode.dev上打开的浏览器窗口,以访问内容。这在拖放到编辑器区域和文件资源管理器上时都有效。

Drop folder into 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 设置来控制这个对话框。

Reminder to sync your repository

Azure Repos

在这个里程碑中,我们启用了对Azure Repos中托管的仓库进行编辑和提交修改的功能。我们还为Azure Repos添加了创建、更新和打开拉动请求的基本功能。

笔记本

滚动条上的查找装饰

笔记本中的查找结果现在将在滚动条中呈现:

Find decorations rendered in the scroll bar

将焦点移至互动窗口

有两个新的命令用于在交互式窗口中放置焦点:

  • interactive.input.focus - 将焦点移到交互式窗口中的输入编辑器。
  • interactive.history.focus - 将焦点移到交互式窗口中的历史记录。

这些命令没有默认的键盘绑定,但你可以添加自己的键盘快捷键

调试

JavaScript调试

JavaScript调试器现在支持收集和可视化堆配置文件。堆配置文件允许你看到随着时间的推移,内存被分配的位置和数量。这些已被添加到**Debug.**Take Performance Profile命令中的一个选项。Take Performance Profile命令,该命令也可以通过CALL STACK视图中的记录⏺按钮访问。

Example of the Flame Chart visualizer showing a memory profile for vscode. One cell is hovered over, showing that 33KB of memory was allocated in "ipc.ts".

语言

CSS格式化器

内置的CSS扩展现在有了一个格式化器。该格式化器适用于CSS、LESS和SCSS。它是由JS Beautify库实现的,有以下设置:

  • css.format.enable - 启用/禁用默认的CSS格式器。
  • css.format.newlineBetweenRules - 用一个空行来分隔规则集。
  • css.format.newlineBetweenSelectors - 用一个新行来分隔选择器。
  • css.format.spaceAroundSelectorSeparator - 确保选择器分隔符'>'、'+'、'~'周围有一个空格字符(例如, )。a > b

同样的设置也存在于lessscss

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的编辑器中点击。

Clicking a shorthand link in a Markdown file

在编辑器中,点击这些链接可以导航到链接定义。在Markdown预览中,这些链接反而会导航到链接目的地。

reStructuredText 语法

现在有一个用于reStructuredText(rst)文件语法高亮的内置扩展。

reStructuredText example showing syntax highlighting

对扩展的贡献

Python

对状态栏中的解释器显示的改变

为了与其他语言保持一致,Python扩展将选定的Python解释器信息移到了状态栏中Python语言状态项旁边的右侧。为了清理状态栏,现在只有在当前打开Python或settings.json 文件时才会显示。

Python interpreter information displayed towards the right of the Status bar

新的 Python 文件命令

现在有两种更快的方法来创建空的Python文件:通过一个新的命令Python:新建 Python 文件,或者通过 "开始 "页面上的 "新建文件... "项目。

Pylint 扩展

现在有了一个新的微软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 ,禁用内置的linting功能。

Jupyter

这个里程碑对Jupyter扩展有一些改进。

内核支持

内核启动得到了改进:

  • 支持更多的conda环境。
  • 支持所有平台上的.env 文件。

数据查看器

数据查看器中现在支持DataFrames和Series的命名索引。

Named indexes support in Jupyter extension Data Viewer

新的Jupyter笔记本

创建新的Jupyter笔记本现在被整合到新文件...菜单中。

New File... drop down with option to create a new Jupyter notebook

远程开发

远程开发扩展的工作仍在继续,它允许你使用容器、远程机器或Windows Subsystem for Linux(WSL)作为一个全功能的开发环境。

1.66版的功能亮点包括:

  • "在远程容器中打开 "徽章--引导你的 repo 的用户在一个自定义的开发容器中重新打开。
  • 远程 - SSH扩展现在可以连接到远程苹果Silicon/M1/ARM64机器。

你可以在远程开发发布说明中了解到新的扩展功能和错误修复。

GitHub拉动请求和问题

GitHub Pull Requests and Issues扩展的工作仍在继续,它允许你处理、创建和管理拉动请求和问题。查看该扩展0.40.0版本的更新日志,看看其中的亮点。

预览功能

终端外壳集成

Shell集成在这个版本中继续看到了更多的改进,主要表现在可靠性和对上面终端部分所描述的装饰的改进。

以下是亮点:

  • 命令装饰现在显示在滚动条中,与编辑器相似。
  • 命令装饰应该在窗口重新加载(或分离/附加)时被恢复。
  • 当在Windows上调整终端的大小时,更好地跟踪命令。
  • 改进对终端的处理**。清除**VS代码命令和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的夜间构建,请安装TypeScript Nightly扩展

资源器文件嵌套

这个迭代我们继续在资源管理器中支持文件嵌套。作为这项工作的一部分,我们打磨了对移动、重命名和删除嵌套文件的支持,并添加了设置explorer.experimental.fileNesting.operateAsGroup ,以配置对嵌套父文件的编辑是否也应适用于其子文件。

此外,我们扩展了文件嵌套的配置语言,包括更多的扩展模式。以前,子模式中的$(capture) 将被扩展到父模式中的* 所消耗的文本。现在,对模式中的$(basename),$(extname), 和$(dirname) 有了额外的支持。这使得诸如* -> $(basename).*.$(dirname) 等模式能够将所有带有 "添加段 "的文件嵌套在一个基础文件之下。

扩展创作

笔记本感知的文件选择器

我们已经完成了对vscode.DocumentSelector 类型的补充。这个类型允许你把语言功能(如转到定义)与特定的文件联系起来,它驱动用户界面,也决定是否询问相应的提供者的结果。我们增加了一个新的属性,允许扩展人员缩小笔记本类型的范围。例如,{ 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.visions.modules10193
Node-API / process.version.napi88

树拖放API

通过新确定的TreeDragAndDropControllerAPI,扩展贡献的树视图可以支持拖放。树状视图样本中有一个如何使用该API的例子。

调试器扩展编写

支持 CompletionItem.detail

上个月,调试适配器协议给CompletionItem 对象增加了一个detail 属性。这个属性现在在VS Code中被支持。你将在调试控制台的建议小部件中看到细节。

Debug Console example displaying detail field

语言服务器协议

Type Hierarchy, inline values, and inlay hints support已经从建议状态中移出,为3.17版本做准备。新的下一个版本的库已经发布。

还有一个第一版的LSP的元模型,连同相应的模式,作为JSON模式TypeScript类型定义。元模型包含以下信息:指定的请求和通知,以及它们的参数类型、返回类型、部分返回类型和注册选项。它还包含所有定义的结构和枚举。

调试适配器协议

我们已经解决了调试适配器协议的几个文档问题:

  • 为了区分终止断开连接的请求,我们改进了它们的文档。
  • variables 的值已被记录在evaluate 请求的context 参数中。只要在VARIABLES视图中调用evaluate 请求,VS Code就会使用这个没有记录的值。客户端和调试适配器不需要改变,因为context 参数的类型是string ,而variables 的值只在文档中提到。

拟议的扩展API

每个里程碑都会有新的提议的API,扩展作者可以尝试。一如既往,我们希望得到你的反馈。以下是试用提议的API的步骤:

  1. 找到一个你想尝试的建议,并将其名称添加到package.json#enabledApiProposals
  2. 使用最新的vscode-dts并运行vscode-dts dev 。它将下载相应的d.ts 文件到你的工作区。
  3. 你现在可以对该提案进行编程。

你不能发布一个使用提议的API的扩展。在下一个版本中可能会有破坏性的变化,而我们从来不希望破坏现有的扩展。

输入框验证信息的严重性

我们的InputBox APIs(通过window.showInputBoxwindow.createInputBox )提供了验证用户输入的机制。这次迭代,我们正在用一个建议的API来扩展它,以显示严重性。

例如,如果你想根据用户的输入向其显示一条信息,你的验证信息可以返回:

{
  content: 'this is an info message';
  severity: InputBoxValidationSeverity.Info;
}

这将看起来像这样:

Input box with 'this is an info message' severity message

这个建议的细节可以在inputBoxSeverity 中找到。

笔记本文档变更事件

有一个关于笔记本文档变化事件的新建议:它可以作为notebookDocumentEvents,包含两个事件:

  • vscode.workspace.onDidSaveNotebookDocument 只要笔记本被保存,就会发生。
  • vscode.workspace.onDidChangeNotebookDocument 每当一个笔记本发生变化时,就会触发事件。例如,当单元格被添加或删除,单元格本身发生变化,或元数据发生变化。

选项卡API形状最终确定

标签页API的下一个里程碑即将敲定,目前的状态是,形状将保持稳定,几乎没有变化。2022年4月的迭代将是就这个API的形状和功能提供反馈的最后机会。反馈可以通过GitHub问题提供。标签页API允许读取打开的标签页,它们的位置,以及关闭它们。

内联补全

我们继续在内联补语方面的工作,为在接下来的几个版本中的最终完成做准备。内联补全现在可以用来建议片段或文本替换(以前只支持文本插入)。

投入编辑器

提议的文本编辑器下降API让扩展处理下降到文本编辑器。这些投放事件可以来自VS Code内部--比如从VS Code的资源管理器中拖动一个文件到文本编辑器中,或者可以从你的操作系统中投放一个文件到VS Code中产生。

Creating a link in a Markdown file using the proposed drop into editor API

要尝试新的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新的发布节奏继续采用其版本。我们也在积极努力实现工作台的沙盒化,下一步是改进Node.js托管服务和沙盒化工作台之间的通信渠道,这将使我们进一步简化新的架构。

RPM软件包需求列表的改进

我们现在计算rpm包所需的依赖性,作为我们构建过程的一部分,其灵感来自Chromium的工作。这使我们能够在采用较新的运行时或本地模块时提供一个最新的依赖性列表。在即将到来的里程碑中,我们也将对我们的debian包引入类似的变化。

支持内置扩展的带外发布

那些在市场上可用的内置扩展现在可以进行带外发布,VS Code会检测到新版本并更新扩展。这将使这些扩展也能支持预发布。

文档

VS Code中的R

有一个新的Visual Studio Code中的R主题,描述了在VS Code中使用R扩展R编程语言支持。R扩展包括丰富的语言功能,如代码补全和提示,以及集成的R终端和专用的工作区、数据和绘图查看器。

R Extension for Visual Studio Code details pane

开发容器博文

如果你错过了Burke Holland最近发表的关于使用开发容器来创建易于使用的编程环境的博文,请查看"教程的问题"。这篇博文描述了Laravel如何使用预配置的Docker容器来为他们的PHP框架教程提供运行时间和依赖性。

值得注意的修复

  • 117674调试控制台有时停止自动滚动,当内容被包裹时
  • 138963调试开始时,调试控制台不能正常工作
  • 142754在VS Code终端中Emacs的使用被破坏了
  • 143513contributes.configuration items respects "order" attribute in views only if search box empty.
  • 144458Glob patterns**/p* 不正确地匹配于/foo/ap
  • 144783没有被编辑的设置列表部件项目似乎没有最大宽度。
  • 145243设置TOC在小屏幕上无法调整大小
  • 145572设置框可以与设置重叠

谢谢你

最后但肯定不是最不重要的,我们要向 谢谢你献给VS代码的贡献者们。