🚀 在 VS Code 中

2018 年 9 月(版本 1.28)

更新 1.28.2:此更新解决了以下问题

更新 1.28.1:此更新解决了以下问题

下载:Windows:x64 | Mac:Intel | Linux 64 位:deb rpm tarball | 32 位:deb rpm tarball


欢迎使用 Visual Studio Code 2018 年 9 月版。正如在 9 月迭代计划中宣布的那样,我们专注于整理我们的 GitHub 问题和拉取请求。在我们的所有 VS Code 存储库中,我们关闭了(已分类或已修复)3918 个问题。在我们关闭问题的同时,您创建了 2187 个新问题。这导致净减少 1731 个问题。主要的 vscode 存储库现在有 2472 个未解决的功能请求和 625 个未解决的错误。此外,我们还关闭了 212 个拉取请求。

很高兴看到您如此关心我们的进展。Benjamin Lannon 发布了一个个人网站,其中包含我们 主存储库中问题编号的 实时跟踪器。它很好地显示了我们自 9 月 11 日以来的进展

Burn down of issues

它还显示了当我们停止关注减少问题时会发生什么。以下是上周最后三天的记录,当时我们正在为本次发布做准备。正如您所看到的,在我们的未来将会有更多的问题整理迭代。

Increase of issues

在这个整理里程碑中,我们解决了几个功能请求,社区的 拉取请求 也促成了新功能。以下是一些发布亮点

如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新
您还可以观看 Cloud Developer Advocate Brian Clark 制作的关于 1.28 版本的 亮点视频

Insiders: 想尽快看到新功能吗?您可以下载每晚构建的 Insiders 版本,并在最新更新可用时立即试用。

工作台

Windows 上的默认自定义标题栏和菜单栏

在之前的发行说明中描述的自定义标题栏和可主题化菜单现在在 Windows 上默认启用。设置 "window.titleBarStyle" 在 Windows 上的 Insiders 版本中,整个上个月都默认为 "custom",现在我们已准备好使其成为默认体验。

Custom title and menu bar with a dark theme on Windows

每个文件类型的文件图标

在 macOS 和 Windows 上,VS Code 注册为常用文件类型的默认编辑器。VS Code 现在为一些常见的 VS Code 文件类型提供了自定义图标。当图标大小配置为中等到大小时,这些图标将显示在操作系统资源管理器中。对于小图标尺寸,我们决定保留 VS Code 徽标作为图标。

File Icons

项目级代码片段

代码片段现在可以限定在项目范围内,并与您的团队共享。只需使用首选项:配置用户代码片段命令,或在 .vscode 文件夹中创建 *.code-snippets 文件。项目代码片段的工作方式与其他代码片段一样,它们会显示在 IntelliSense 和插入代码片段操作中,现在它们在其中有自己的类别。

Project Level Snippet

代码片段现在还支持多个前缀。如果您无法确定版权标题代码片段应以 headerstub 还是 copyright 作为前缀,您可以全部拥有它们。只需使用字符串数组作为 prefix 属性。

{
  "prefix": ["header", "stub", "copyright"],
  "body": "Copyright. Foo Corp 2028",
  "description": "Adds copyright...",
  "scope": "javascript,typescript"
}

长期以来,VS Code 在打开文件夹时一直在解析到文件夹的符号链接。这意味着即使符号链接在那里是有原因的,VS Code 也会忽略它,并且始终打开解析后的链接路径。我们已决定更改此行为并保留符号链接。

注意: 当将文件夹作为符号链接打开时,某些功能将以功能减少的方式工作(例如,调试Git 集成)。

记录和搜索键盘快捷键

在键盘快捷方式编辑器中(⌘K ⌘S (Windows、Linux Ctrl+K Ctrl+S),您现在可以通过键入按键而不是键入键名(例如“shift”)来搜索键盘快捷键。打开记录按键模式,然后键入要搜索的按键。

Record Keys

您还可以使用 ⌥⌘K (Windows、Linux Alt+K 进入记录按键模式。按 Esc 键退出记录按键模式。

切换面板更改

我们决定重新审视用于切换面板(终端、输出、问题、调试控制台)的命令的行为。您可以关注问题 19400 以了解更改的背景。

行为是

  • 如果面板不可见,则显示面板。
  • 如果面板可见,则隐藏面板。

行为是

  • 如果面板不可见,则显示面板。
  • 如果面板具有键盘焦点,则隐藏面板。
  • 当面板可见但未获得焦点时,面板获得焦点。

要恢复之前的行为,您可以配置一个键盘快捷键,以便在相关面板处于活动状态时关闭面板。

例如,对于“输出”面板

{
  "key": "cmd+shift+u",
  "command": "workbench.action.closePanel",
  "when": "activePanel==workbench.panel.output"
}

面板标识符列表是

  • terminal - 集成终端
  • workbench.panel.markers - “问题”面板
  • workbench.panel.output - “输出”面板
  • workbench.panel.repl - “调试控制台”面板

复制相对路径

将文件路径复制为相对路径的命令现在在文件资源管理器和编辑器选项卡的上下文菜单中更加突出地显示。

Copy Relative Path

从快速打开中排除最近打开的文件

一个新的设置 search.quickOpen.includeHistory 允许您控制最近打开的文件是否应成为“快速打开”文件选择器的一部分。默认情况下,最近打开的文件将显示在搜索顶部,而工作区中的其他文件将显示在下方。如果您希望不看到最近打开的文件在顶部,可以将此设置更改为 false

删除文件时禁用回收站

如果您在从资源管理器中删除文件时遇到问题(文件移动到操作系统回收站),您现在可以将 files.enableTrash 设置为 false,以便在删除时永远不使用操作系统回收站。这样做会更改文件资源管理器上的删除操作和键盘快捷键,以绕过操作系统回收站并永久删除。在删除发生之前,您仍然会看到提示。

如果检测到工作区文件,则提示打开

当打开一个根目录中包含一个或多个 .code-workspace 文件的文件夹时,VS Code 现在会显示一个通知,询问您是否要改为打开工作区文件。打开工作区文件通常比仅打开文件夹提供更好的体验。您可以在我们的文档中了解有关多根工作区的更多信息。

Workspace file prompt

重新打开文件时,不恢复视图状态

即使文件已关闭,VS Code 始终会记住文件的视图状态(光标位置、折叠部分等)。现在有一个新的设置 workbench.editor.restoreViewState,可以在文件关闭时删除此视图状态。这允许您在重新打开文件后始终从文件顶部开始。

跨所有编辑器组关闭文件

一个新的命令在所有组中关闭编辑器 (workbench.action.closeEditorInAllGroups) 允许您跨所有编辑器组关闭当前活动文件。

“问题”面板

显示错误代码

“问题”面板现在显示问题的错误代码(如果有)。

Problems panel shows error codes

改进的键盘导航

“问题”面板变得更加键盘友好

  • 当面板具有焦点时,您可以开始键入以进行过滤。
  • 您可以使用 ⌘F (Windows、Linux Ctrl+F 将焦点放在过滤器框上,并使用 ⌘↓ (Windows、Linux Ctrl+Down 将焦点从过滤器框移到问题列表。

遥测事件的输出通道

在 7 月的版本中,我们添加了一个功能,当您使用开发人员:设置日志级别...命令将日志级别设置为跟踪时,VS Code 发送的所有遥测事件也会记录到本地文件中。您现在可以在“输出”面板的日志(遥测)通道中查看此文件的内容。与之前一样,您可以使用开发人员:打开日志文件...命令直接查看该文件。

将焦点赋予自定义视图

您现在可以使用命令将焦点赋予自定义视图。为每个自定义视图提供了一个单独的命令。

Custom view focus commands

Linux URL 处理

曾经仅限于 Windows 和 macOS 的功能,现在您也可以在 Linux 上打开 VS Code URL!这些 URL 对于许多不同的功能很有用,例如自动安装扩展,例如 vscode-insiders:extension/vscodevim.vim

编辑器

Tab 补全

编辑器 Tab 补全现在可以完成所有类型的建议。在设置 "editor.tabCompletion": "on" 之后,按 Tab 将完成任何前缀,而不仅仅是代码片段。此外,按 Tab 将插入下一个建议,按 ⇧Tab (Windows、Linux Shift+Tab 将插入上一个建议。

Tab completion

导航到上次编辑位置

添加了一个新的命令转到上次编辑位置 (workbench.action.navigateToLastEditLocation),用于快速导航到文件中上次编辑的位置。默认键盘快捷键是 ⌘K ⌘Q (Windows、Linux Ctrl+K Ctrl+Q

不使用格式化程序保存

新的命令不使用格式化程序保存 (workbench.action.files.saveWithoutFormatting) 可用于保存文件,而不会触发任何保存参与者(例如,格式化程序、删除尾随空格、最终换行符)。默认键盘快捷键是 ⌘K S (Windows Ctrl+K Ctrl+Shift+S,Linux Ctrl+K S。这在编辑正常项目之外的文件时很有用,这些文件可能具有不同的格式约定。

IntelliSense 局部性奖励

现在可以根据建议与光标的距离对建议进行排序。设置 "editor.suggest.localityBonus": true,您将看到例如函数参数显示在 IntelliSense 列表的顶部。

Locality bonus

Emmet

我们在本次迭代中对 Emmet 功能进行了一些改进

  • 如果您在 JavaScript 文件中启用了 Emmet,那么您现在可以在 HTML 文件中 <script> 标记内进行 Emmet 缩写扩展。
  • Emmet: 使用缩写包装功能不再仅限于扩展名为 .html 的文件。
  • 即使没有选择,Emmet: 平衡(向内)功能现在也适用于当前节点。
  • 现在已修复了错误地将 SCSS 文件中带有 # 的 CSS 选择器视为有效缩写的 错误

源代码管理

更改 SCM 提交键盘快捷键

您现在可以使用 scm.acceptInput 命令更改默认键盘快捷键,以接受 SCM 视图中的提交消息。

SCM 状态栏跟踪活动文件

左下角的 SCM 状态栏贡献现在跟踪当前活动文件所属的存储库。这减少了在跨多文件夹工作区编辑文件时的困惑。

Git 集成

更好地处理删除冲突

删除冲突一直由 VS Code 检测到。现在有一个更好的 UI 流程来处理它们,当打开更改时,您将看到未删除的版本,并且您可以决定在暂存文件时会发生什么:保留它还是删除它。

Keep or delete deletion conflicts

配置长提交消息警告阈值

git.inputValidationLength 设置现在允许您配置提交消息必须多长才会显示警告。

在“git init”后将文件夹添加到工作区

在初始化 Git 存储库后,VS Code 现在会询问您是否要将其添加到当前工作区。

配置分支验证规则

您现在可以使用强大的 git.branchValidationRegexgit.branchWhitespaceChar 设置来控制分支名称验证的工作方式。有关更多详细信息,请参阅问题 50241

运行“同步”时始终变基

git.rebaseWhenSync 设置允许您配置 同步 命令在运行时始终使用变基而不是合并。

禁用进度报告

使用 git.showProgress 设置,您现在可以在 Git 操作期间禁用显示进度。

强制推送 (--force)

在您的日常开发中,有时您只是想冒险。运行 git push --force 就是一个很好的例子!VS Code 现在允许您强制将提交推送到远程,而无需进入终端。使用 git.allowForcePushgit.useForcePushWithLeasegit.confirmForcePush 设置来控制此行为。有关更多详细信息,请参阅问题 53286

应用储藏

以下 git stash apply 命令现在在全局命令面板中提供:Git: 应用储藏...Git: 应用最新储藏

始终可见的“暂存更改”部分

您现在可以使用 git.alwaysShowStagedChangesResourceGroup 设置,即使在为空时,也始终使“暂存更改”部分在 SCM 视图中可见

Staged changes visible

终端

定义键盘快捷键以发送自定义序列

添加了新的命令 workbench.action.terminal.sendSequence,它允许您将自定义序列直接发送到活动终端。这允许使用 \u 格式发送 Unicode 字符来发送箭头键、Enter 等。

{
  "key": "ctrl+u",
  "command": "workbench.action.terminal.sendSequence",
  "args": { "text": "\u001b[1;5D\u007f" }
}

查找改进

终端中的查找已得到改进,现在其行为更像编辑器中的查找

  • 支持正则表达式、区分大小写和匹配单词。
  • 标准查找下一个/上一个键盘快捷键(F3、shift+F3)现在可以工作。
  • 返回跨行包装的查找结果。

语言

TypeScript 3.1

VS Code 1.28 附带 TypeScript 3.1.1。此版本带来了新的语言功能,例如 可映射的元组和数组类型,以及许多工具改进和错误修复。

重命名导入路径

意识到导入的文件可以使用更好的名称?现在,您可以通过重命名导入来重命名引用的文件

Renaming an JavaScript import to rename a file

转换为异步函数

JavaScript 和 TypeScript 的新转换为异步函数建议重写了使用 .then Promise 链的函数以使用 asyncawait

Converting a promise chain to an async function

请注意,此功能要求设置 javascript.validate.enable 设置为 true。

JS/TS 建议的新设置

我们清理了 JavaScript 和 TypeScript 建议的设置名称,并添加了一些额外的设置,这些设置提供了更细粒度的控制

  • 所有与建议相关的设置现在都在 javascript.suggest.*typescript.suggest.* 下。
  • typescript.useCodeSnippetOnMethodSuggest 已重命名为 javascript.suggest.completeFunctionCallstypescript.suggest.completeFunctionCalls
  • javascript.nameSuggestions 已重命名为 javascript.suggest.names
  • typescript.autoImportSuggestions.enabled 已重命名为 javascript.suggest.autoImportstypescriptscript.suggest.autoImports
  • 新的 javascript.suggest.enabledtypescript.suggest.enabled 允许您完全禁用 JS 或 TS 建议。

分号作为 JS/TS 的提交字符

分号现在是 JavaScript 和 TypeScript 建议的提交字符。这意味着您只需键入 ; 即可接受当前建议。现有提交字符还包括 .(

您可以通过设置 "editor.acceptSuggestionOnCommitCharacter": false 来禁用提交字符。

HTML 和 CSS 路径补全排除点文件

现在从路径补全结果中排除以 . 开头的文件。

更好的 Markdown 折叠

多行列表、围栏代码块和原始 HTML 现在可以在 Markdown 文件中折叠

Folding Markdown code blocks and lists

在 Markdown 预览中,单击指向本地文件的链接现在将打开该文件的预览

Local file link open in preview

这使得浏览文档更加容易。使用 markdown.preview.openMarkdownLinks 设置来配置如何处理链接。有效的设置值是

  • inEditor - 在编辑器中打开本地 Markdown 链接。
  • inPreview - 在当前预览中打开本地 Markdown 链接。这是新的默认行为。

扩展

搜索过滤改进

您现在可以将 @category 过滤器与其他已安装扩展的过滤器(如 @installed@enabled@disabled@outdated)一起使用,以组成您的扩展搜索查询。例如,您可以使用查询 @installed @category:themes 搜索已安装的主题,或使用 @installed @category:snippets 搜索贡献代码片段的已安装扩展。

禁用的扩展不计为过时

活动栏上用于扩展视图的徽章,该徽章显示过时扩展的数量,现在将排除禁用的扩展。此徽章的目的是让您知道存在您可能想要更新的过时扩展。由于禁用的扩展当前未使用,因此将其包含在计数中只会分散注意力。

扩展主机无响应

VS Code 在一个名为扩展主机的单独进程中执行扩展。此进程使用消息传递与渲染器/UI 进程通信。我们增加了对扩展主机的消息的更好跟踪,如果消息在 10 秒内未被确认,我们将显示以下通知

Extension Host Unresponsive

这意味着什么:最有可能的是,某个扩展正在执行 CPU 密集型操作,最终阻塞扩展主机进程超过 10 秒

操作方法:一种选择是等待操作完成,然后忽略通知。另一种选择是调查哪个扩展导致 CPU 使用率过高,方法是转到正在运行的扩展视图并 开始分析扩展主机。然后,您可以直接针对有问题的扩展创建一个问题。最后,如果您认为扩展已进入无限循环,并且似乎不会恢复,您可以重启扩展主机。

工程

扩展和 webpack

我们继续了我们的 webpack 工作,现在大多数捆绑的扩展都经过 webpack 处理。重新回顾一下:这有助于减少扩展的启动时间,因为要加载的文件更少,要解析的源代码也更少。它还有助于减少安装时间,因为需要提取和写入磁盘的文件更少。

在这个里程碑中,我们又减少了 2803 个文件的捆绑包。7 月份我们从 9000 个文件开始,到 8 月份减少到 4650 个,9 月份我们有 1847 个!

预览功能

预览功能尚未准备好发布,但功能已足够使用。我们欢迎您在它们开发过程中提供早期反馈。

继续探索 Electron 3.0

在此里程碑中,我们继续探索将 Electron 3.0.0 捆绑到 VS Code 中。这是一个主要的 Electron 版本,带有 Chrome 66 和 Node.js 10.x(与我们当前的 Chrome 61 和 Node.js 8.x 版本相比,这是一个巨大的飞跃)。我们计划在不久的将来向我们的 Insiders 用户推送更新,以收集更多反馈。如果您有兴趣提供帮助,请确保安装 VS Code Insiders 版本。

其他

macOS Mojave 上的模糊

如果您已更新到 macOS 10.14 (Mojave),您可能会注意到,如果您未使用高 DPI 显示器,VS Code 中的字体看起来会模糊。

解决此问题的一种方法是运行

defaults write com.microsoft.VSCode.helper CGFontRenderingFontSmoothingDisabled -bool NO

从终端运行,然后重启计算机。

请注意,此更改是全局性的,适用于每个应用程序,而不是特定于 VS Code。有关相关讨论,请参阅问题 51132

Electron 更新

在此版本中,我们从 Electron 2.0.7 更新到 2.0.9。最值得注意的是,这允许 VS Code 再次在 ArchLinux 上运行(问题 55934)。

扩展编写

处理未安装扩展的 URL

早在 7 月,我们就发布了 URI 处理程序 API,供扩展处理系统范围的 URI。在最新版本中,VS Code 甚至可以处理尚未安装的扩展的 URI。一旦用户打开这样的 URI,VS Code 将在 Marketplace 中搜索扩展,建议用户安装它,并启动 VS Code 并传入 URI。这允许扩展具有平滑的启动流程,将用户从网页带到运行具有特定状态的扩展。

诊断错误代码

由于诊断错误代码现在显示在“问题”面板中,因此扩展不再需要在 Diagnostic.message 属性中添加错误代码。

更好的配置 when 子句

在编写键盘快捷键或菜单可见性时,会使用 when 子句。在 when 子句中,您可以通过在配置(设置)值前加上 config. 来引用它,例如 config.editor.tabCompletion。仅支持布尔配置属性,但在此版本中,您还可以使用字符串和数字值。

更改文本文档的语言

有一个新的 API 函数可以更改文档的语言模式,vscode.languages.setTextDocumentLanguage。该 API 接受一个文档以及您想要使用的语言标识符。要了解哪些语言 ID 可用,请使用 vscode.languages.getLanguages

workspaceContains 激活

当打开包含与某些模式匹配的文件的工作区时,扩展可以使用 workspaceContains 激活事件来激活。例如,PHP 扩展可能会要求在打开包含与 **/*.php 匹配的文件的文件时激活。这不是什么新鲜事,但用户指出,当打开大型工作区时,搜索过程可能会运行很长时间并占用大量 CPU。

我们做了一些更改,以减少这些搜索的影响。第一个是这些搜索现在将尊重用户的 files.excludesearch.excludesearch.useIgnoreFiles 设置。换句话说,如果用户无法通过正常的文本搜索或通过“快速打开”进行文件搜索来找到文件,则 workspaceContains 模式将不会匹配该文件。这大大减少了我们必须搜索 workspaceContains 的文件数量,并减少了在它匹配到实际上不是项目一部分的文件(例如,埋在 node_modules/ 中的某些文件)时发生的错误激活。

第二个更改是对这些搜索施加 7 秒的限制。如果搜索在 7 秒后仍未完成,我们将终止搜索进程并仍然激活扩展。

总的来说,这应该可以减少在 VS Code 中打开大型工作区后笔记本电脑莫名发热的情况。

新的主题颜色

有新的主题颜色

  • menu.separatorBackground: 菜单中分隔符菜单项的颜色。
  • sideBarSectionHeader.border: 侧边栏节标题边框颜色。
  • inputValidation.infoForeground: 信息严重性输入验证的前景色。
  • inputValidation.warningForeground: 警告严重性输入验证的前景色。
  • inputValidation.errorForeground: 错误严重性输入验证的前景色。
  • editor.snippetTabstopHighlightBackground: 代码片段制表位高亮背景色。
  • editor.snippetTabstopHighlightBorder: 代码片段制表位高亮边框颜色。
  • editor.snippetFinalTabstopHighlightBackground: 代码片段最终制表位高亮背景色。
  • editor.snippetFinalTabstopHighlightBorder: 代码片段最终制表位高亮边框颜色。
  • activityBar.inactiveForeground: 活动栏项目在非活动状态时的前景色。

Debug API

resolveDebugConfiguration 需要显式返回 null 以打开 launch.json

以前,如果 resolveDebugConfiguration 返回的启动配置没有 type 属性,VS Code 会自动打开底层的 launch.json 文件。在收到扩展作者的反馈后,我们决定让扩展程序对这种情况有更多的控制权。

现在 resolveDebugConfiguration 必须显式返回值 null,以阻止调试会话启动并改为打开 launch.json。返回值 undefined 只是阻止调试会话启动。与之前一样,返回带有 type 属性的配置将启动调试会话。

建议的扩展 API

每个里程碑版本都会附带新的建议 API,扩展作者可以试用它们。与往常一样,我们渴望您的反馈。以下是您试用建议 API 需要执行的操作

  • 您必须使用 Insiders 版本,因为建议 API 经常更改。
  • 您必须在扩展程序的 package.json 文件中包含此行:"enableProposedApi": true
  • 将最新版本的 vscode.proposed.d.ts 文件复制到您的项目中。

请注意,您不能发布使用建议 API 的扩展程序。我们很可能会在下一个版本中进行重大更改,并且我们绝不希望破坏现有扩展程序。

Debug API

新的 DebugConfigurationProvider.provideDebugAdapter 替换了 DebugConfigurationProvider.debugAdapterExecutable 命令

之前,我们添加了建议 API DebugConfigurationProvider.debugAdapterExecutable,以便扩展程序可以为 VS Code 即将启动的调试适配器返回动态计算的路径(和相应的程序参数)。在这个里程碑版本中,我们正在根据收到的反馈(例如 #45220, #56646, #57706, #54465)修订初始设计。

新的 API 方法 称为 provideDebugAdapter,现在我们传入调试会话、工作区文件夹、来自 package.json 的可执行文件信息以及已解析的启动配置。有了这些信息,当被要求创建调试适配器时,扩展程序就有了“全貌”。

此外,我们现在支持更多启动和连接到调试适配器实现的方法。为此,可以从 provideDebugAdapter 方法返回描述符对象

  • DebugAdapterExecutable 描述符可用于将调试适配器作为每个会话的外部进程启动,并通过 stdin/stdout 与之通信。使用新的 API,现在可以为调试适配器指定工作目录和环境变量。
  • DebugAdapterServer 描述了一个处理多个会话并通过套接字通信的服务器进程。
  • DebugAdapterImplementation 可用于没有通信开销的就地实现。此选项依赖于对 基于 Node.js 的客户端库 for DAP 的一个小修改,并计划在 10 月份推出。

请注意,这是建议 API,不能在 Marketplace 上发布的扩展程序中使用。但是,我们欢迎您在问题 45220 上提供有关 DebugConfigurationProvider.provideDebugAdapter 的反馈。

注释编辑和删除

在上次迭代中,我们引入了 DocumentCommentProvider,允许扩展程序在编辑器中创建和管理注释。我们添加了 新方法 到此提供程序,以支持注释的编辑和删除。注释本身现在也具有 标志,指示它们是否支持编辑或删除。如果扩展程序设置了这些标志之一并提供了适当的编辑或删除方法,则当悬停或聚焦编辑器中的注释时,将显示编辑或删除注释的操作

Comment editing

新命令

快捷键 命令 命令 ID
⌘K ⌘Q (Windows, Linux Ctrl+K Ctrl+Q) 导航到上次编辑的位置 workbench.action.navigateToLastEditLocation
⌘K S (Windows Ctrl+K Ctrl+Shift+S, Linux Ctrl+K S) 保存文件,但不运行保存参与者(格式化程序等) workbench.action.files.saveWithoutFormatting
关闭所有编辑器组中的活动文件 workbench.action.closeEditorInAllGroups
切换差异编辑器内联和并排模式(弃用 toggle.diff.editorMode toggle.diff.renderSideBySide

新文档

GitHub Pull Request 扩展程序博客文章

您可以阅读 Kenneth 最近的 博客文章,其中宣布了新的 GitHub Pull Request 扩展程序,并讨论了 VS Code 和 GitHub Editor 团队之间的协作。

使用 Azure Pipelines 博客文章

Visual Studio Code 使用 Azure Pipelines 中,VS Code 工程师 João Moreno 介绍了 VS Code 现在如何使用 Azure Pipelines 作为其构建和持续集成 (CI) 基础设施。

新的 PowerShell 主题

Visual Studio Code 中的 PowerShell 展示了通过 Microsoft PowerShell 扩展程序实现的 PowerShell 集成。该扩展程序支持强大的语言功能,例如 IntelliSense、转到定义和查找所有引用,以及调试和代码片段。

新的 Python Django 教程

有一个新的 在 Visual Studio Code 中使用 Django 教程,展示了如何在 VS Code 中快速创建、编辑和调试 Python Django Web 应用程序。

值得注意的修复

  • 48051: 格式化后需要向左滚动
  • 31619: 必须在代码片段中通过已删除的制表位进行制表
  • 58327: 调试工具栏按钮已禁用
  • 35935: “清除最近打开的文件”也应清除编辑器快速选择历史记录
  • 58799: 保存时显示未命名的文件
  • 29553: 在 Escape 键上保留快速打开输入
  • 58222: UriDisplayService 缺少远程共享路径名称
  • 54213: 在不显示 launch.json 的情况下中止调试启动的机制
  • 52511: 调试悬停小部件 - 启用小部件大小调整,以适应溢出隐藏的长项目
  • 50569: 条件断点提示应在断点已禁用时提供启用断点的选项
  • 42737: 扩展程序:允许右键单击以显示齿轮菜单
  • 58434: 使用 --force 参数以防止从 CLI 安装扩展程序时出现提示。

感谢

最后但同样重要的是,衷心感谢!以下人员帮助使 VS Code 变得更好

vscode 的贡献

language-server-protocol 的贡献

vscode-languageserver-node 的贡献

debug-adapter-protocol 的贡献

vscode-recipes 的贡献

vscode-chrome-debug 的贡献

vscode-chrome-debug-core 的贡献

  • @digeff
    • 更新日志记录机制以不记录源 PR #355
    • 修复第一行 bp chrome 69 PR #352
    • 修复加载时中断以使附加时的断点工作 PR #332

localization 的贡献

Transifex VS Code 项目团队中 लगभग 有 1200 名成员,每月约有 100 名活跃贡献者。我们感谢您的贡献,无论是提供新的翻译、对翻译进行投票还是建议流程改进。

这是此版本贡献者的快照。有关包括贡献者姓名列表在内的项目详细信息,请访问项目站点 https://aka.ms/vscodeloc

  • 孟加拉语: Anisuzzaman Khan, abm_prottoy, Mushiar Khan, Mehedi Hassan。
  • 保加利亚语: Любомир Василев。
  • 克罗地亚语: Nikša Mihaica。
  • 捷克语: Vít Staniček。
  • 丹麦语: Kenneth Greig, Johan Fagerberg, Martin Fruensgaard。
  • 荷兰语: Gerald Versluis, Marco van den Hout。
  • 法语: Antoine Griffard, MayakoLyyn, Smrman, Etienne Blanc-Coquand。
  • 德语: J.M., Carsten Kneip, Volkmar Rigo, SetTrend。
  • 希腊语: Nikolaos Maliakkas。
  • 印地语: Ashwini Gupta, Shaswat Rungta。
  • 匈牙利语: Tar Dániel。
  • 简体中文: Joel Yang, 子实 王, pluwen, Chris Pan 潘冬冬, danyeh。
  • 繁体中文: Duran Hsieh, Poy Chang, Alan Tsai, Han Lin, Shih-Ming Tung, Will 保哥。
  • 印尼语: G-RiNe Project, Wildan Mubarok, Rizki A. Wibowo, Riwut Libinuko, Azhe-kun, rodin, Febrian Setianto (Feber)。
  • 意大利语: Luigi Bruno, Luca Bruni, Alessandro Alpi, Emilie Rollandin, Pascal Brax, Andrea Dottor, Riccardo Cappello。
  • 日语: Satoshi Kajiura, Shunya Tajima, Yuichi Nukiyama, yoshioms, daisuke osada (daiskeh)。
  • 韩语: Kyunghee Ko, jaeyeon Kim, Junseong Jang, Jisan Oh。
  • 立陶宛语: Martynas Jusys。
  • 马拉雅拉姆语: Kiren Paul。
  • 挪威语: Espen Klein Nilsen。
  • 波兰语: Artur, Patryk Brejdak, Adam Borowski, Mateusz Wyczawski。
  • 葡萄牙语(巴西): Roberto Fonseca, Bruno Sonnino, Danilo Dantas, Marcelo Fernandes, Thiago Custodio, Rodrigo Crespi, Marcelo Andrade, Alessandro Fragnani, Lucas Miranda, Otacilio Saraiva Maia Neto。
  • 葡萄牙语(葡萄牙): António Santos,Diogo Barros, António Lourenço, jp2masa, Ruben Mateus, Henrique Silva, André Vala。
  • 俄语: Ivan Kuzmenko, Roman Slauta。
  • 西班牙语: Jorge Serrano Pérez, José M. Aguilar, Alberto Poblacion, Carlos Mendible, Alejandro Medina, Andy Gonzalez,Carlos Herrera。
  • 泰米尔语: Vijay Nirmal, rajakvk, Anand AV。
  • 土耳其语: Mustafa Turhan, Fırat Payalan, Selim Ata。