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 日以来取得的进展。
它还显示了我们一停止关注减少问题时会发生什么。以下是上周最后三天,当时我们正在为此次发布做准备。正如您所见,未来我们将有更多的问题整理迭代。
在本次整理里程碑中,我们解决了几个功能请求,并且社区拉取请求也带来了新功能。以下是此次发布的一些亮点:
- 自定义文件图标 - VS Code 文件图标反映您操作系统资源管理器中的文件类型。
- 项目级代码片段 - 根据每个工作区调整您的代码片段集合。
- 编辑器 Tab 补全 - 使用 Tab 键轻松循环 IntelliSense 建议。
- 跳转到上次编辑 - 新命令,用于跳转到上次编辑的位置。
- 不格式化保存 - 在不更改现有格式的情况下保存文件。
- Git 改进 - 更好的删除冲突处理,新的同步时 rebase 选项。
- 通过导入路径重命名 - 通过导入路径重命名 JS/TS 文件。
- 转换为异步重构 - 快速更新函数以使用 async 和 await。
- 更好的 Markdown 折叠 - 折叠代码块、多行列表和嵌入式 HTML。
如果您想在线阅读这些发行说明,请访问 code.visualstudio.com 上的更新页面。
您还可以观看云开发大使 Brian Clark 的 1.28 版本亮点视频。
Insider 版本:想尽快看到新功能?您可以下载每晚更新的 Insiders 版本,并在新功能可用时立即尝试。
工作台
Windows 上默认自定义标题和菜单栏
以前发布说明中描述的自定义标题栏和可主题化菜单现在在 Windows 上默认启用。"window.titleBarStyle"
设置在上个月的 Insiders 版本中已默认为 Windows 上的 "custom"
,我们现在已准备好将其作为默认体验。
按文件类型显示文件图标
在 macOS 和 Windows 上,VS Code 注册为已知文件类型的默认编辑器。VS Code 现在为一些常见的 VS Code 文件类型提供自定义图标。当图标大小配置为中等到大时,这些图标将显示在操作系统资源管理器中。对于小图标大小,我们决定保留 VS Code 徽标作为图标。
项目级代码片段
代码片段现在可以限定到项目并与您的团队共享。只需使用首选项:配置用户代码片段命令或在.vscode
文件夹中创建*.code-snippets
文件。项目代码片段的工作方式与其他代码片段一样,它们会显示在 IntelliSense 和插入代码片段操作中,现在它们拥有自己的类别。
代码片段现在还支持多个前缀。如果您无法决定您的版权标题代码片段应该使用header
、stub
或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') 来搜索键绑定。打开录制按键模式并键入您要搜索的击键。
您还可以使用⌥⌘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
- 调试控制台面板
复制相对路径
现在,在文件资源管理器以及编辑器选项卡的上下文菜单中更显著地公开了将文件路径复制为相对路径的命令。
将最近打开的文件从“快速打开”中排除
一个新设置search.quickOpen.includeHistory
允许您控制最近打开的文件是否应作为“快速打开”文件选择器的一部分。默认情况下,最近打开的文件将显示在搜索的顶部,而工作区中的其他文件将显示在下方。如果您不想在顶部看到最近打开的文件,可以将此设置更改为false
。
删除文件时禁用垃圾箱
如果您在从资源管理器删除文件时遇到问题,当它们移动到操作系统垃圾箱时,您现在可以将files.enableTrash
设置为false
,以在删除时永不使用操作系统垃圾箱。这样做将更改文件资源管理器上的删除操作和键绑定,以绕过操作系统垃圾箱并永久删除。在删除发生之前,您仍会看到提示。
如果检测到工作区文件,则提示打开
当打开包含一个或多个.code-workspace
文件的根文件夹时,VS Code 现在会显示一个通知,询问您是否要改为打开工作区文件。打开工作区文件通常会比仅打开文件夹提供更好的体验。您可以在我们的文档中了解有关多根工作区的更多信息。
重新打开文件时不恢复视图状态
VS Code 始终会记住文件的视图状态(光标位置、折叠部分等),即使在文件关闭后也是如此。现在有一个新设置workbench.editor.restoreViewState
,用于在文件关闭时丢弃此视图状态。这允许您在重新打开文件后始终从文件的顶部开始。
关闭所有编辑器组中的文件
新命令关闭所有组中的编辑器(workbench.action.closeEditorInAllGroups
)允许您关闭所有编辑器组中当前活动的文件。
问题面板
显示错误代码
问题面板现在显示问题的错误代码(如果有的话)。
改进的键盘导航
问题面板对键盘更友好了
- 当面板获得焦点时,您可以开始键入以进行筛选。
- 您可以使用⌘F (Windows, Linux Ctrl+F) 将焦点移至筛选框,并使用⌘↓ (Windows, Linux Ctrl+Down) 将焦点从筛选框移至问题列表。
遥测事件的输出通道
在 7 月份的版本中,我们添加了一个功能,当您使用开发人员:设置日志级别... 命令将日志级别设置为跟踪时,VS Code 发送的所有遥测事件也会记录到本地文件。您现在可以在输出面板的日志 (遥测) 通道中查看此文件的内容。与以前一样,您可以使用开发人员:打开日志文件... 命令直接查看文件。
将焦点赋予自定义视图
您现在可以使用命令将焦点赋予自定义视图。每个自定义视图都有一个单独的命令。
Linux URL 处理
以前仅限于 Windows 和 macOS 的功能,现在您也可以在 Linux 上打开 VS Code URL!这些 URL 对于许多不同的功能非常有用,例如自动安装扩展,例如vscode-insiders:extension/vscodevim.vim
。
编辑器
Tab 补全
编辑器 Tab 补全现在可以补全各种建议。将"editor.tabCompletion": "on"
设置为“on”后,按Tab将补全任何前缀,而不仅仅是代码片段。此外,按Tab将插入下一个建议,按⇧Tab (Windows, Linux Shift+Tab)将插入上一个建议。
跳转到上次编辑位置
添加了一个新命令跳转到上次编辑位置(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
设置为true,您会看到,例如,函数参数显示在 IntelliSense 列表的顶部。
Emmet
我们在此次迭代中对 Emmet 功能进行了一些改进
- 如果您已在 JavaScript 文件中启用 Emmet,则现在可以在 HTML 文件中的
<script>
标签内进行 Emmet 缩写展开。 - Emmet:用缩写包裹功能不再仅限于具有
.html
扩展名的文件。 - Emmet:平衡(向内)功能现在即使没有选择也适用于当前节点。
- 在 SCSS 文件中错误地将带有
#
的 CSS 选择器视为有效缩写的错误现已修复。
源代码管理
更改 SCM 提交键绑定
您现在可以使用scm.acceptInput
命令更改 SCM 视图中接受提交消息的默认键绑定。
SCM 状态栏跟踪活动文件
左下角的 SCM 状态栏贡献现在跟踪当前活动文件所属的任何存储库。这减少了在多文件夹工作区中编辑文件时的混淆。
Git 集成
更好地处理删除冲突
删除冲突一直由 VS Code 检测。现在,有一个更好的 UI 流程来处理它们,当您打开更改时,您会看到未删除的版本,并且您可以决定在暂存文件时如何处理它:保留它或删除它。
配置长提交消息警告阈值
git.inputValidationLength
设置现在允许您配置提交消息在编辑时显示警告之前必须有多长。
“git init”后添加文件夹到工作区
初始化 Git 存储库后,VS Code 现在会询问您是否要将其添加到当前工作区。
配置分支验证规则
您现在可以使用强大的git.branchValidationRegex
和git.branchWhitespaceChar
设置控制分支名称验证的工作方式。有关更多详细信息,请参阅问题50241。
运行同步时始终 rebase
git.rebaseWhenSync
设置将允许您配置同步命令,使其在运行时始终使用 rebase 而不是 merge。
禁用进度报告
使用git.showProgress
设置,您现在可以禁用在 Git 操作期间显示进度。
强制推送
在您的日常开发中,有时您就是想冒险。运行git push --force
就是一个很好的例子!VS Code 现在允许您强制将提交推送到远程,而无需进入终端。使用git.allowForcePush
、git.useForcePushWithLease
和git.confirmForcePush
设置来控制此行为。有关更多详细信息,请参阅问题53286。
暂存应用
以下git stash apply
命令现在在全球命令面板中提供:Git: 应用暂存...,Git: 应用最新暂存。
始终可见的“暂存更改”部分
您现在可以使用git.alwaysShowStagedChangesResourceGroup
设置始终在 SCM 视图中保持暂存更改部分可见,即使为空也是如此。
终端
定义发送自定义序列的键绑定
已添加新命令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。此版本带来了新的语言功能,例如 可映射元组和数组类型,以及许多工具改进和错误修复。
重命名导入路径
意识到导入的文件可以使用更好的名称?现在您只需通过重命名导入即可重命名引用的文件
转换为异步函数
JavaScript 和 TypeScript 的新转换为异步函数建议将使用.then
Promise 链的函数重写为使用async
和await
请注意,此功能要求设置
javascript.validate.enable
为 true。
JS/TS 建议的新设置
我们已经清理了 JavaScript 和 TypeScript 建议的设置名称,并添加了一些额外的设置,提供了更精细的控制
- 所有与建议相关的设置现在都在
javascript.suggest.*
和typescript.suggest.*
下。 typescript.useCodeSnippetOnMethodSuggest
已重命名为javascript.suggest.completeFunctionCalls
和typescript.suggest.completeFunctionCalls
。javascript.nameSuggestions
已重命名为javascript.suggest.names
。typescript.autoImportSuggestions.enabled
已重命名为javascript.suggest.autoImports
和typescriptscript.suggest.autoImports
。- 新的
javascript.suggest.enabled
和typescript.suggest.enabled
允许您完全禁用 JS 或 TS 建议。
分号作为 JS/TS 的提交字符
分号现在是 JavaScript 和 TypeScript 建议的提交字符。这意味着您只需键入;
即可接受当前建议。现有提交字符还包括.
和(
。
您可以通过设置"editor.acceptSuggestionOnCommitCharacter": false
来禁用提交字符。
HTML 和 CSS 路径补全排除点文件
以.
开头的文件现在已从路径补全结果中排除。
更好的 Markdown 折叠
Markdown 文件中的多行列表、栅栏式代码块和原始 HTML 现在可以折叠
Markdown 预览现在在预览中打开本地文件的链接
在 Markdown 预览中,单击指向本地文件的链接现在将打开该文件的预览
这使得浏览文档更加容易。使用markdown.preview.openMarkdownLinks
设置配置链接的处理方式。有效的设置值为
inEditor
- 在编辑器中打开本地 Markdown 链接。inPreview
- 在当前预览中打开本地 Markdown 链接。这是新的默认行为。
扩展
搜索过滤改进
您现在可以使用@category
过滤器以及其他已安装扩展的过滤器(如@installed
、@enabled
、@disabled
和@outdated
)来组合您的扩展搜索查询。例如,您可以使用查询@installed @category:themes
搜索已安装的主题,或使用@installed @category:snippets
搜索贡献代码片段的已安装扩展。
禁用扩展不计为过时
“扩展”视图的活动栏上显示过时扩展数量的徽章现在将排除已禁用的扩展。此徽章的目的是让您知道有您可能需要更新的过时扩展。由于已禁用的扩展当前未在使用,将其计入数量只会分散注意力。
扩展主机无响应
VS Code 在一个名为扩展主机的单独进程中执行扩展。此进程使用消息传递与渲染器/UI 进程通信。我们添加了对扩展主机消息的更好跟踪,如果消息在 10 秒内未得到确认,我们将显示以下通知
这意味着什么:最有可能是一个扩展正在执行 CPU 密集型操作,最终阻塞扩展主机进程超过 10 秒。
该怎么做:一个选项是等待操作完成,并简单地忽略通知。另一个选项是调查哪个扩展导致了高 CPU 使用率,方法是转到正在运行的扩展视图并开始分析扩展主机。然后,您可以直接针对有问题的扩展创建问题。最后,如果您认为该扩展已进入无限循环,并且似乎无法恢复,则可以重新启动扩展主机。
工程
扩展和 webpack
我们继续了webpack的工作,现在大多数捆绑的扩展都是 webpack'd。回顾一下:这有助于缩短扩展的启动时间,因为要加载的文件更少,要解析的源代码也更少。它还有助于缩短安装时间,因为需要提取和写入磁盘的文件更少。
在这个里程碑中,我们又减少了 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 的 URI Handler API。在最新版本中,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
激活
当打开包含与某个模式匹配的文件的 VSC 工作区时,扩展可以使用workspaceContains
激活事件来激活。例如,当打开包含匹配**/*.php
文件的 PHP 扩展工作区时,可能会请求激活。这不是什么新鲜事,但用户指出,当打开大型工作区时,搜索过程可能会运行很长时间并占用大量 CPU。
我们进行了一些更改,以减少这些搜索的影响。首先是这些搜索现在将尊重用户的files.exclude
、search.exclude
和search.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
:活动栏项目非活动时前景颜色。
调试 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 的扩展。我们很可能会在下一个版本中进行破坏性更改,我们绝不希望破坏现有扩展。
调试 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 的 DAP 客户端库的小修改,并计划在 10 月发布。
请注意,这是提议的 API,不能用于在 Marketplace 上发布的扩展。但是,我们非常感谢您对问题45220中DebugConfigurationProvider.provideDebugAdapter
的反馈。
评论编辑和删除
在上一次迭代中,我们引入了DocumentCommentProvider
,允许扩展在编辑器中创建和管理评论。我们为此提供程序添加了新方法,以支持评论的编辑和删除。评论本身现在也有标志,指示它们是否支持编辑或删除。如果扩展设置了其中一个标志并提供了适当的编辑或删除方法,则在编辑器中悬停或聚焦评论时将显示编辑或删除评论的操作。
新命令
键 | 命令 | 命令 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
的贡献
- Sribalaji M (@1AmNegan):使用键绑定使 nextChange/previousChange 视口居中 PR #51235
- Agustín Rodríguez (@agurodriguez):Markdown 预览中差异的样式 PR #59289
- Andrew Casey (@amcasey):为 typescript-language-features/languageserviceerrorresponse 添加 GDPR 注释 PR #57182
- Andy Li (@andyli):覆盖 Ubuntu 的默认集成终端字体选项 (#_35901) PR #56429
- Aliaksandr Stelmachonak (@ava1ar):添加 ARM64 构建支持 PR #52119
- Beau Allison (@beauallison):将 GIT 浅色选中图标与深色对齐 PR #50526
- Andre Wachsmuth (@blutorange):修复 Promise polyfill,链式 Promise 工作 PR #57723
- Bruno Finger (@brunofin):创建分支时也替换括号 PR #57374
- David Staheli (@DavidStaheli):使用新的 VSTS YAML 语法 PR #57745
- Dave Williams (@davnicwil):新配置以关闭 TypeScript 自动完成建议 PR #58011
- Dustin Campbell (@DustinCampbell):更新 C# 语法 PR #57451
- Eric Amodio (@eamodio):带有查询字符串的图像 URI 未正确检测 PR #58314
- @Git-Lior
- Guy Waldman (@guywald1)
- Jay Rodgers (@headmelted)
- Eric Gang (@Hirico):使用 git-diff 编辑器中的“打开文件”后保留显示区域 (修复 #53465) PR #54867
- Jatin Sandilya (@jats22):删除 python 的绝对路径 PR #56943
- Jason Bright (@jgbright)
- Jim Hessin (@jhessin):更新 language-configuration.json PR #44566
- JYX (@jjyyxx):修复 tsconfig.schema.json 中不准确的描述 PR #58582
- Jonathan Perret (@jonathanperret):修复 workbench.editor.labelFormat 中的拼写错误 PR #59155
- Konstantin Müller (@konstantin-mueller):#54204 添加命令以应用暂存 PR #54300
- limerick (@limerickgds):类自动完成的生成器方法导致添加星号(*) PR #51557
- Luis Zuniga (@luiszun):发送前检查路径中是否有空格。避免文件名被解释... PR #56966
- @lzmkony:删除重复的函数 PR #57700
- Muhammad Azeem (@manixate):防止滚动条被视为拖放的目标 PR #49747
- Matt Hardcastle (@MattHardcastle):结束时不要自动关闭 PR #55315
- Maarten Fonville (@mfonville):将 Electron 更新到 2.0.9 PR #58382
- Marat Abdullin (@mshoho):一个仅将纯文本复制到剪贴板的选项。 PR #54155
- Néstor Hernández Ojeda (@nesukun):添加对强制推送和租赁强制推送的支持 PR #53286
- Nilesh Kevlani (@njkevlani):为向终端发送自定义序列添加了新命令 PR #56962
- Noam Yogev (@noamyogev84):允许代码片段 json 前缀为数组,以支持同一代码片段的多个前缀 PR #59092
- Alexandre ZANNI (@noraj):添加更多 Markdown 扩展 PR #58072
- Sardorbek (@oneslash)
- Karthikayan (@ParkourKarthik)
- Chi Wang (@patr0nus):修复“Invalid start index”错误 PR #57617
- Morten N.O. Nørgaard Henriksen (@raix):添加分支名称验证和空格配置 PR #50712
- Rik Smeets (@rik-smeets):为菜单项添加缺失的访问键 (助记符) PR #58412
- Rodrigo Varas (@rodrigovaras):修复当实时共享代理调试适配器时 EH 调试工作的问题 PR #58227
- Segev Finer (@segevfiner)
- @sucicf1:修复#35905 PR #58380
- Thomas Basche (@tombasche):允许空的 Git 提交 PR #56048
- tsangint (@tsangint):修复拼写错误 PR #57192
- Alexander (@usernamehw):修复 Tab 焦点相关问题 PR #57821
- Winner Crespo (@wistcc)
对 language-server-protocol
的贡献
- Tyson Andre (@TysonAndre):修复更多拼写错误 PR #568
对 vscode-languageserver-node
的贡献
- Mathias R. Jessen (@IISResetMe):修复错误消息中“received”的拼写错误 PR #414
对 debug-adapter-protocol
的贡献
- Antonino Perricone (@APerricone):由 APerricone 添加 Harbour 语言 PR #6
对 vscode-recipes
的贡献
- Daryl Knowles (@darylknowles):调试端到端应使用 ng e2e 启动本地服务器 PR #122
- Karuppasamy M (@karuppasamy):添加 Ruby on Rails 配方 PR #59
- Trivikram Kamat (@trivikr):添加了在 VS Code 中调试 node-tap 测试的配方 PR #128
对 vscode-chrome-debug
的贡献
- Sasha (@stristr):为高级调试使用可空
targetTypes
属性。 PR #727
对 vscode-chrome-debug-core
的贡献
对 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。