2020 年 3 月(版本 1.44)
更新 1.44.1:此更新解决了此安全问题。
更新 1.44.2:此更新解决了这些问题。
下载:Windows:x64 | Mac:Intel | Linux:deb rpm tarball snap
欢迎使用 Visual Studio Code 2020 年 3 月版。此版本包含许多更新,我们希望您会喜欢,其中一些主要亮点包括
- 辅助功能改进 - 更轻松的差异视图导航,更清晰的 UI 控件角色指定。
- 时间线视图 - 从 VS Code 内查看时间序列事件,例如 Git 提交历史记录。
- 改进的文件快速打开 - 从文件平滑导航到符号,按文件夹名称过滤文件。
- 扩展包显示 - 快速查看扩展包中捆绑的内容。
- 持久化的撤消/重做堆栈 - 为重新打开的文件保留撤消/重做堆栈。
- 远程开发 - 直接将拉取请求检出到容器中,支持 Kubernetes。
- 设置同步预览 - 设置同步现在允许您在机器之间共享代码片段和 UI 状态。
- 新的 Python 教程 - 用于创建 Python 容器和构建数据科学模型的教程。
如果您想在线阅读这些发行说明,请访问 Updates 上的 code.visualstudio.com。
Insiders: 想尽快试用新功能吗?您可以下载每晚构建的 Insiders 版本,并在最新更新可用时立即试用。有关最新的 Visual Studio Code 新闻、更新和内容,请在 Twitter 上关注我们 @code!
辅助功能
在这个里程碑中,我们收到了来自社区的巨大反馈,这帮助我们识别并解决了许多辅助功能问题。
- 差异视图现在更易于访问。使用 F7 和 ⇧F7(Windows、Linux Shift+F7) 在辅助功能差异查看器中导航更改,并使用“暂存/取消暂存/还原选定范围”命令来暂存、取消暂存或还原当前更改。
- 在我们的窗口小部件中使用了更好的角色。
listbox
角色用于建议窗口小部件和快速选择,list
用于静态列表,document
用于只读内容,例如欢迎视图和 Markdown 预览。 - 调整了我们的快速选择窗口小部件的行为。
- 当前行 CodeLens 现在可以使用“显示当前行 CodeLens 命令”命令在快速选择中显示。
时间线视图
时间线视图现在已退出预览版并默认启用。这是一个统一的视图,用于可视化文件的时间序列事件(例如,Git 提交、文件保存、测试运行等)。时间线视图默认情况下会自动更新,显示当前活动编辑器的的时间线。您可以通过切换视图工具栏中的眼睛图标来控制此默认行为。此外,与其他视图类似,时间线视图支持在您键入时查找或过滤。
时间线视图默认情况下在文件资源管理器的底部折叠。选择“时间线”条带将展开时间线视图。
在此版本中,内置 Git 扩展贡献了一个时间线源,该源提供指定文件的 Git 提交历史记录。选择提交将打开该提交引入的更改的差异视图。上下文菜单提供了“复制提交 ID”和“复制提交消息”命令。文件资源管理器的上下文菜单上还有一个新的“打开时间线”命令,用于快速显示所选文件的时间线。
这是时间线视图的实际操作
其他时间线源可以由扩展贡献(尽管 API 仍处于建议阶段),这些源将显示在统一的时间线视图中。扩展还可以向时间线视图和各个时间线项目贡献菜单项。您还可以轻松选择要包含在视图中的源。
工作台
快速打开重写
快速打开(⌘P(Windows、Linux Ctrl+P))控件使用旧版本的树形窗口小部件,在此迭代中,它已迁移为使用我们最新的列表控件,该控件已在 VS Code UI 的其余部分中使用。在功能上,您应该无法区分,因为所有命令都将像以前一样工作。
我们确实借此机会添加了一些您可能会觉得有用的功能。
从文件导航到符号
现在,您只需键入 @
即可继续导航到文件结果的符号。对于当前选定的文件,将显示所有符号,并且编辑器将在后台打开以显示活动符号。以下视频还显示,您可以通过在 @
后跟 :
来按类别对符号进行分组。
通过用空格分隔多个查询来过滤结果
如果文件搜索的结果太多,您可以在键入空格后添加更多搜索模式。例如,如果您连续键入 <文件名> <文件夹名>
,则可以按文件夹缩小结果范围。
注意: 这也适用于编辑器(⇧⌘O(Windows、Linux Ctrl+Shift+O))和工作区(⌘T(Windows、Linux Ctrl+T))符号选择器。空格字符后的任何文本都将用于按该符号的容器进行过滤。
切换提供程序时保留输入
如果您使快速打开可见并切换到另一个提供程序(例如,从文件搜索切换到符号搜索),VS Code 将应用键入的任何过滤器并将其用于新的提供程序。这允许您在之前用于文件搜索时快速重用键入的输入进行符号搜索。
按最近使用对编辑器历史记录进行排序
新的设置 "search.quickOpen.history.filterSortOrder": "recency"
允许您按最近打开的项目对编辑器历史记录进行排序,即使在开始搜索时也是如此。默认情况下,编辑器历史记录结果将根据使用的过滤器模式按相关性排序。
打开编辑器到侧面的新命令
新的命令 workbench.action.alternativeAcceptSelectedQuickOpenItem
允许您添加额外的键盘快捷键,以将快速打开中的文件或符号打开到侧面。默认情况下,Ctrl+Enter
(macOS:Cmd+Enter
)将在新的编辑器组中将文件打开到侧面,而不是在当前编辑器组中打开。
改进的扩展包显示
为了在“扩展”视图中识别扩展包,现在有一个数字徽章,显示扩展包中包含的扩展数量。
主题:带有自定义的 GitHub Sharp
“扩展详细信息”页面现在显示扩展包中捆绑的所有扩展。
主题:带有自定义的 GitHub Sharp
调整编辑器选项卡滚动条的高度
新的设置 workbench.editor.titleScrollbarSizing
允许您增加编辑器选项卡和面包屑导航的滚动条大小。这使得滚动浏览长长的已打开编辑器列表变得更容易。
将其配置为 large
以获得更大的滚动条
文件资源管理器可以显示隐藏文件
如果文件被隐藏(通过 files.exclude
设置),但它已打开并在编辑器中可见,则该文件将与其父链一起显示在文件资源管理器中。只要文件在编辑器区域中可见,这些文件及其父级就会在文件资源管理器中使用暗淡的颜色显示。
视图:重新打开方式
新的“视图:重新打开方式”命令允许您使用不同的自定义编辑器重新打开当前活动文件。
您可以使用此命令在 VS Code 的标准文本编辑器和自定义编辑器之间切换,或在资源的多个自定义编辑器之间切换。
workbench.editorAssociations 设置
同样对于自定义编辑器,新的 workbench.editorAssociations
设置允许您配置哪个编辑器用于特定资源。
以下示例配置所有以 .catScratch
结尾的文件都使用我们的扩展示例中的示例自定义文本编辑器打开。
"workbench.editorAssociations": [
{
"viewType": "catCustoms.catScratch",
"filenamePattern": "*.catScratch"
}
]
视图进度现在显示在视图上
我们已更改自定义视图的进度指示,现在在每个视图本身上显示,而不是在视图容器的顶部显示。这允许长时间运行的操作及其进度之间更直接的连接。还有一个新的 API 选项,供扩展在视图上显示自定义进度。
在这里,您可以看到 GitLens 扩展视图上的进度显示
新的默认等宽字体
我们已将 VS Code UI 中使用的等宽字体更新为
.mac { --monaco-monospace-font: "SF Mono", Monaco, Menlo, Courier, monospace; }
.windows { --monaco-monospace-font: Consolas, "Courier New", monospace; }
.linux { --monaco-monospace-font: "Ubuntu Mono", "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace; }
此更改不影响编辑器中的字体选择。
编辑器
重新打开文件时保留撤消堆栈
当文件关闭时,VS Code 现在将保留文件的 撤消/重做 堆栈。当文件重新打开时,如果其内容自关闭以来没有更改,则将恢复撤消/重做堆栈。
如果您使用 workbench.editor.limit.value
设置限制打开编辑器的数量,或者您意外关闭了正在处理的文件,这将非常有用。
保存时代码操作的显式排序
您现在可以将 editor.codeActionsOnSave
设置为要按顺序执行的代码操作数组。您可以使用此方法来保证在另一个可能与之冲突的代码操作之前或之后始终运行特定的代码操作。
以下 editor.codeActionsOnSave
将始终在组织导入完成后运行 组织导入,然后运行 修复所有
"editor.codeActionsOnSave": [
"source.organizeImports",
"source.fixAll"
]
将 editor.wordSeparators 用于下一个查找匹配项
命令 将选区添加到下一个查找匹配项 (⌘D(Windows、Linux Ctrl+D)) 现在遵循设置 editor.wordSeparators
。以前,该命令将使用当前文件语言定义的单词定义。
调试
调用堆栈视图改进
“调用堆栈”视图是一个复杂的视图,因为它显示不同类型的对象(会话、进程、线程、堆栈帧和分隔符元素),并为不同类型提供不同的操作。为了更容易区分对象类型并理解其支持的交互,我们已开始进行一些视觉改进
- 调试会话现在用图标装饰。
- 可单击元素使用链接颜色。
- 更小的分隔符和演示元素。
新的调试控制台图标
我们为调试控制台引入了一个新图标,并且当调试控制台视图从面板中移出时,也在活动栏中使用它。
调试扩展的进度反馈 UI
VS Code 现在支持在上一个里程碑中为调试适配器协议 (DAP) 提出的 “进度事件”。借助进度事件,调试扩展可以为长时间运行的操作向用户提供反馈。
VS Code 调试 UI 在两个位置显示进度反馈
- 作为调试视图顶部的进度条。
- 作为“静默通知”,这意味着进度“静默地”(不中断用户)显示在状态栏中,并且可以通过单击它打开到通知中。通知显示更详细的信息,并允许取消底层长时间运行的操作(如果操作支持取消)。
为了避免短操作闪烁,进度 UI 仅在延迟 0.5 秒后开始。
以下视频显示了 Mock Debug(截至今天唯一支持的调试扩展)中(模拟的)长时间运行操作的新进度 UI。我们期望其他调试扩展很快将采用进度支持。
调试控制台中的代码完成选择
在上一个里程碑中,我们向调试适配器协议的“完成”请求添加了选择控件。在此版本中,VS Code 现在完全支持协议添加,调试扩展可以在插入完成项后调整选择(或插入点)。
集成终端
允许菜单栏助记符跳过终端
启用新设置 terminal.integrated.allowMenubarMnemonics
后,所有使用 Alt
的击键都将跳过终端,以便它们由 VS Code 的键绑定管理器处理,从而使所有菜单助记符都工作,但代价是终端内的 Alt
快捷键。此设置默认禁用。
语言
JavaScript 中的自动导入样式
新的 javascript.preferences.importModuleSpecifierEnding
设置允许您控制 VS Code 的自动导入使用的导入样式。如果您正在为浏览器等支持本机 ES6 模块的平台编写代码,这将非常有用。
可能的值是
auto
- 默认值。使用项目的 jsconfig 来确定要使用的导入样式。minimal
- 使用 Node.js 样式导入。这将src/component/index.js
的导入缩短为src/component
。index
- 也包括路径的index
部分。这将src/component/index.js
缩短为src/component/index
。js
- 使用完整路径,包括文件扩展名 (.js
)。
任务
更快的任务快速选择
任务快速选择过去会从所有提供任务的扩展中获取所有任务,然后再显示要从中选择的任务列表。现在,VS Code 在显示快速选择下拉列表之前不会获取任何其他扩展任务,从而使其速度更快。扩展贡献的任务也仅在您请求时才获取,这释放了扩展主机。
在下面,TypeScript 贡献的 tsc
任务仅在用户选择 typescript 扩展后才获取。
主题:One Dark Pro
预览功能
预览功能尚未准备好发布,但功能已足够使用。我们欢迎您在它们开发期间提供早期反馈。
设置同步
在过去的几个月中,我们一直在努力支持跨机器同步 VS Code 设置、扩展和键盘快捷键,此功能在 Insiders 版本上提供预览。
在此里程碑中,我们添加了同步用户代码片段和更多 UI 状态。
主题:带有自定义的 GitHub Sharp
当前同步以下 UI 状态
- 显示语言
- 活动栏条目
- 面板条目
- 视图布局和可见性
- 最近使用的命令
- “不再显示”通知
注意: 目前,仅同步用户语言代码片段。对全局代码片段的支持将在下一个里程碑中添加。
我们还添加了远程和本地同步备份视图,用于恢复您的数据并帮助排除故障。您可以使用命令“首选项同步:显示远程备份”和“首选项同步:显示本地备份”访问这些视图。
主题:带有自定义的 GitHub Sharp
要了解更多信息,您可以访问设置同步文档。
帐户管理
贡献身份验证提供程序的扩展现在将在设置齿轮上方的新的“帐户”上下文菜单中显示其帐户。您可以查看当前登录的所有帐户、注销它们并管理受信任的扩展。从此处登录 Microsoft 帐户是启动设置同步的另一种方式。
主题:带有自定义的 Pop Light
新的 JavaScript 调试器
本月,我们继续在新 JavaScript 调试器上取得进展。它默认安装在 Insiders 上,并且可以从 VS Code Stable 中的 Marketplace 安装。您可以通过启用 debug.javascript.usePreview
设置,开始将其与您现有的启动配置一起使用。以下是本月添加的一些新功能
调试终端中的链接处理
您可以使用调试终端(“调试:创建 JavaScript 调试终端”)自动调试任何 Node.js 进程。现在,当您 Cmd/Ctrl+单击
链接时,调试器还会处理启动调试浏览器的链接,无需任何配置。
主题:Earthsong,字体:Fira Code
在“监视”和“调试控制台”中引用 $returnValue
当它在调用堆栈中可用时,您现在可以在“调试控制台”和“监视”表达式中引用函数的 $returnValue
。
TypeScript 3.9 Beta 支持
此迭代我们添加了对新的 TypeScript 3.9 Beta 功能的支持。TypeScript 3.9 的一些亮点包括
// @ts-expect-error
指令的建议。- 更好地保留换行符和格式的重构。
- JavaScript 中的自动导入现在可以添加 CommonJS 样式导入 (
require(...)
)。
您今天可以通过安装 TypeScript Nightly 扩展 来试用新的 TypeScript 3.9 功能。请分享反馈,并告知我们您是否遇到任何 TypeScript 3.9 beta 的错误!
增加视图放置灵活性
在几次迭代中,我们一直致力于通过允许移动单个视图来提高布局的灵活性。在此迭代中,我们不仅添加了功能,还改进了体验。
新的拖放体验
在侧边栏中拖放活动栏图标、面板和视图一直很简单,但含义模糊。很难确切知道当您实际放下任何这些项目时会发生什么。新的体验旨在提高清晰度并突出显示我们在此过程中启用的新功能。
下面,用户首先重新排序侧边栏中的视图,然后重新排序面板中的选项卡和活动栏中的图标
单个面板中的多个视图
您现在可以在单个面板中拥有多个视图,以更好地利用水平空间。一个常见的请求是同时查看终端和“问题”视图。现在可以通过将终端拖到“问题”视图中来完成,如下所示。
创建新的侧边栏组并移动面板
现在可以将视图移动到新的侧边栏组,从而在活动栏中创建一个新的图标条目。内置面板也不例外,现在可以移动到现有的侧边栏条目或它们自己的条目中。
下一个视频显示用户将终端拖到活动栏中,这将在侧边栏中创建一个终端图标和空间。接下来,用户将“输出”放在“终端”侧边栏中。最后,“大纲”从“资源管理器”移动到活动栏,创建了自己的侧边栏区域。
将视图容器贡献给面板
我们现在拥有允许扩展直接将视图贡献给面板所需的一切,就像您今天可以使用活动栏一样,这在树视图 API 指南中进行了记录。请注意,此功能仍处于预览阶段,树视图文档将不会反映这些更改,直到它们被认为是稳定的。但是,要试用它,您可以将文档中的代码片段更新为以下内容
"contributes": {
"viewsContainers": {
"panel": [
{
"id": "package-explorer",
"title": "Package Explorer",
"icon": "media/dep.svg"
}
]
}
}
视图移动命令
最后,还有新的命令可以使用键盘移动视图和重置布局。命令“视图:移动焦点视图” (workbench.action.moveFocusedView
) 已更新以支持迭代的新功能。添加了命令“视图:重置焦点视图位置” (workbench.action.resetFocusedViewLocation
) 以将单个视图放回其默认位置。
面板和自定义视图的活动栏图标
随着灵活布局的引入,现在当默认面板视图移动到活动栏时,它们有专用图标。当组合多个视图时,自定义视图也有一个(默认)图标。
同步区域
我们使用一个名为“同步区域”的新实现改进了去年 11 月推出的镜像光标功能。当前,此功能适用于 HTML,您可以通过以下方式之一试用它
- 在 HTML 标记上运行命令“键入时重命名符号”(默认绑定到 )。
- 打开
editor.renameOnType
设置并将光标移动到 HTML 标记。
红色区域是同步区域。顾名思义,一个区域中的任何更改都将同步到其他区域。您可以通过将光标移出区域或按 ESC
来退出此模式。此外,在任何区域中键入或粘贴以空格开头的内容都会退出此模式。
我们期待提供 API,该 API 可以使这种键入时重命名的体验可用于其他语言,例如 JSX、XML,甚至 TypeScript 中的局部变量。
扩展贡献
远程开发
在远程开发扩展上继续工作,这些扩展允许您使用容器、远程计算机或 Windows Subsystem for Linux (WSL) 作为功能齐全的开发环境。
1.44 中的功能亮点包括
- 开发容器:直接将 PR 检出到容器中。
- 开发容器:Kubernetes 容器附加支持。
- 开发容器:实验性 WSL 2 Docker 引擎支持。
您可以在远程开发发行说明中了解有关新扩展功能和错误修复的信息。
扩展创作
欢迎视图内容 API
某些视图现在支持从扩展贡献的欢迎内容。有关更多信息,请参阅原始问题。有关如何将此 API 与扩展提供的视图一起使用的详细信息,您可以阅读树视图文档。
此 API 作为上一个里程碑中提出的 API 添加,我们现在已完成它。
语义标记提供程序 API
语义标记提供程序 API 现在已完成。
语义标记的主题支持
颜色主题现在可以编写规则来为语言扩展(如 TypeScript)报告的语义标记着色。
"semanticHighlighting": true,
"semanticTokenColors": {
"variable.declaration.readonly:java": { "foreground": "#00ff00" "fontStyle": "bold" }
}
上面的规则定义了 Java 中所有只读变量的声明都应着色为绿色和粗体。
语义突出显示 Wiki 页面有更多信息。
TypeScript 语义标记改进
Typescript 语言服务器返回更多语义标记类型。颜色主题可以利用这些新的标记类型进行样式设置。
- 来自 JavaScript 默认库的所有符号都获得
defaultLibrary
修饰符。 - 作为回调的函数参数被归类为
function
。
阅读 TypeScript 语义突出显示插件 README,以概述 TypeScript 语言服务器返回的所有语义标记类型和修饰符。
文件系统错误代码
我们添加了 FileSystemError#code,它是一个标识错误的字符串。当通过其任何工厂函数创建文件系统错误时,code
是该函数的名称,例如 FileSystemError.FileNotFound(msg).code === 'FileNotFound'
。
StatusBarItem.command 的参数
StatusBarItem.command
现在接受完整的 Command
对象,而不仅仅是命令 ID。这允许扩展在激活状态栏项目时将参数传递给命令。
自定义文本编辑器
借助自定义文本编辑器,扩展现在可以将 VS Code 的标准编辑器替换为用于特定基于文本的资源的自定义 webview 基于的视图。潜在的用例包括
- 预览资产,例如着色器或
.obj
文件。 - 为标记语言(如 XAML)创建 WYSIWYG 编辑器。
- 提供数据文件(如 JSON 或 CSV)的替代的交互式视图。
自定义编辑器文档介绍了如何使用新的自定义文本编辑器 API,以及如何确保您的新编辑器在 VS Code 中运行良好。另请务必查看 自定义编辑器扩展示例。
在下一次迭代中,我们希望完成完整的自定义编辑器提案,该提案将自定义编辑器扩展为也支持二进制文件。
视图级进度指示
我们已向 window.withProgress
API 的 ProgressOptions.location
添加了一个新选项,以允许在特定视图上显示进度。要使用,请设置 ProgressOptions.location = { viewId: <view-id> };
,其中 <view-id>
指定您要为其显示进度的视图的 ID。视图进度部分上方有一个关于此操作的简短视频。
扩展视图上下文菜单 when-clause 上下文
我们向“扩展”视图的上下文菜单添加了一个新的 extension
when-clause 上下文,其中包含扩展的标识符。
示例
"extension/context": [
{
"command": "gitlens.showSettingsPage",
"group": "2_configure",
"when": "extension == eamodio.gitlens && extensionStatus == installed",
}
]
新的 Codicon
我们已将以下图标添加到 Codicon 库
- account
- bell-dot
- debug-console
- library
- output
- run-all
- sync-ignored
用于编写嵌入式语言服务器的文档
为嵌入式编程语言编写语言服务器比编写普通的语言服务器更复杂。鉴于当今嵌入式语言的普及,我们在“语言扩展”部分中添加了一个嵌入式语言主题。该文档包含两个示例,说明了构建嵌入式语言服务器的两种方法:语言服务和请求转发。首先查看嵌入式语言文档,或直接转到两个示例
调试适配器协议
新的进度事件
我们已完成对在 调试适配器协议 中报告进度的支持。调试适配器现在可以向前端客户端发送进度事件(progressStart
、progressUpdate
和 progressEnd
),以便显示长时间运行的调试适配器操作的进度。可以将 progressStart
事件标记为可取消,以使客户端呈现取消 UI 并发送 cancel
请求。为了在支持的调试适配器中启用进度事件,前端客户端需要在 initialize
请求中包含新的 client 功能 supportsProgressReporting
。
更多详细信息可以在相应的 DAP 功能请求中找到。VS Code 从此里程碑开始支持进度事件。
“evaluate”请求的剪贴板上下文值
当将变量和表达式值复制到剪贴板时,DAP 客户端(前端)使用 evaluate
请求。为了帮助调试适配器检测到这种情况,已将新值 clipboard
添加到传递给 evaluate
请求的 context
参数的值集中。为确保向后兼容性,仅当调试适配器返回 supportsClipboardContext
功能时,客户端才允许传递新值。
语言服务器协议
语言服务器索引格式 规范 的新版本 (0.5.0) 已发布。该版本支持使用 Moniker 链接跨项目转储的引用结果。此外,还发布了 LSP 客户端 (6.2.0-next.2) 和服务器 (6.2.0-next.2) 库的新版本。
建议的扩展 API
每个里程碑都带有新的建议 API,扩展作者可以试用它们。与往常一样,我们渴望您的反馈。这是您试用建议的 API 必须执行的操作
- 您必须使用 Insiders,因为建议的 API 经常更改。
- 您的扩展的
package.json
文件中必须有这一行:"enableProposedApi": true
。 - 将最新版本的 vscode.proposed.d.ts 文件复制到你项目的源代码位置。
请注意,你无法发布使用建议 API 的扩展。下个版本中可能会有重大更改,我们绝不希望破坏现有扩展。
终端链接处理器
这个新的 API 允许扩展拦截和处理在终端中点击的链接。
window.registerTerminalLinkHandler({
handleLink((terminal, link) => {
if (link === 'https://vscode.js.cn') {
window.showInformationMessage('Handled');
return true;
}
return false;
});
});
贡献于终端环境
这个新的 API 允许扩展在终端启动时更改环境变量。
const collection = window.getEnvironmentVariableCollection(true);
const separator = process.platform === 'win32' ? ';' : ':';
collection.prepend('PATH', `/foo${separator}`);
collection.replace('JAVA_HOME', '/bar');
这些集合是扩展和工作区特定的,VS Code 处理多个扩展之间冲突的方式。它们可以选择性地跨窗口重新加载进行持久化,并且已采取措施确保以这种方式完成,即在窗口加载后立即创建的终端不会阻塞扩展主机启动,而是使用最后已知的版本。这些持久化的集合可以通过处置集合或创建新的非持久化集合来移除,或者在卸载扩展时移除。
计划是通过某种指示器向用户显示这些环境修改,该指示器允许更新“过时的”终端环境,但这仍在进行中。你可以在 issue #46696 中关注讨论。
浏览器支持
远程指示器
当在浏览器中使用 VS Code 时,现在有一个远程指示器。这让你知道你连接到的远程环境,并允许扩展添加与远程相关的其他命令。通过此更改,在桌面中打开 链接已从状态栏中移除,并将移动到远程选择器中。
注意: VS Code 目前不支持从浏览器连接到不同的远程环境 - 例如 SSH、容器或 WSL。
导航链接
一个新的菜单位置允许在浏览器中运行的扩展向左上角的汉堡菜单贡献链接。
工程
VS Code 编译为 ES6
VS Code 已完全采用 ES6。感谢 TypeScript,我们长期以来一直在使用 ES6 语法,但我们现在假设目标运行时也支持 ES6。这允许我们使用 ES6 “全局变量”,例如 Strings#endsWith
,并允许使用新的语言特性,例如生成器函数和符号。
使用 GitHub Actions 自动化问题分类
在此迭代中,我们将现有的分类自动化从使用 GitHub Apps 迁移到 GitHub Actions。这带来了一些好处,例如在 vscode repo 中获取日志,以及开发速度的提高。我们还添加了几个新的自动化,例如一个 Action,当修复程序被拉入 VS Code Insiders 时,它会通知问题作者,使作者能够快速验证修复程序是否有效。
我们使用的全套 Actions 在 MIT 许可下发布在 GitHub 上。
文档和扩展
Python
有两个新的 Python 教程
- 在容器中使用 Python - 学习如何在 Docker 容器中构建 Python 应用程序。
- 用于数据科学的 Python - 使用 Python 数据科学库创建机器学习模型。
C++
C++ 扩展教程 已被重写,并且有一个新的特定于 在 Linux 上使用 C++ 的教程。
Docker 扩展
Microsoft Docker 扩展的 1.0 版本现已可用。该扩展可以向你的项目添加 Docker 文件、构建和调试 Docker 镜像,并包含一个资源管理器,可以轻松启动、停止、检查和移除容器和镜像。
Azure 扩展
有两个新的扩展,用于直接从 VS Code 中处理 Azure 资产。
-
Azure 虚拟机 - 创建预配置 SSH 访问的 Ubuntu 虚拟机,以便你可以使用 Remote-SSH 扩展连接到它们。
-
Azure 资源组 - 查看你的所有 Azure 资源,并在 Azure 视图中快速导航到它们。
值得注意的修复
- 75932: Debug failed to load: Process picker failed (your 131072x1 screen size is bogus, expect trouble)
- 84271: Add "x" to remove a file from recently opened (quick pick)
- 89658: No debug adapter found
- 92381: "Add folder to workspace" prompt duplicates itself if you add and then remove a folder from the workspace repeatedly
- 93344: Welcome view should scroll
- 93634: Progress: let window progress turn into silent notification progress
感谢
最后但同样重要的是,衷心感谢以下人士,他们帮助使 VS Code 变得更好!
对我们的问题跟踪的贡献
- John Murray (@gjsjohnmurray)
- Andrii Dieiev (@IllusionMH)
- ArturoDent (@ArturoDent)
- José Vilmar Estácio de Souza (@jvesouza)
- joanmarie (@joanmarie)
对 vscode
的贡献
- Andrew Branch (@andrewbranch): [typescript-language-features] 添加 importModuleSpecifierEnding 首选项 PR #90405
- Andy Barron (@AndyBarron): editor.codeActionsOnSave: 支持对象和数组配置 PR #92681
- Benny Neugebauer (@bennyn): 修复代理身份验证窗口选项的类型 PR #91954
- Benno (@blueworrybear): 更新 #91296 允许多个工作区根目录 PR #92082
- Charles Gagnon (@Charles-Gagnon): 随时显示警报输入框消息 PR #92531
- Gustavo Sampaio (@GustavoKatel): 使用键盘快捷键轻松选择代码镜头 PR #91232
- Huachao Mao (@Huachao): 修复单词 extension 的拼写错误 PR #93178
- Hyun Sick Moon (@hyun6): 修复拼写错误 PR #93291
- Ilia Pozdnyakov (@iliazeus)
- @jaqra: 修复搜索视图“切换搜索详细信息”的内边距 PR #91429
- Jean Pierre (@jeanp413)
- Jonas Dellinger (@JohnnyCrazy): 允许用户使标题区域中的滚动条更大 PR #92720
- @nrayburn-tech: 为 monaco 编辑器 automaticLayout 使用 ResizeObserver PR #93630
- Raul Piraces Alastuey (@piraces): 修复历史记录条目导航在调试控制台中进行额外导航的问题 PR #93125
- Robert Rossmann (@robertrossmann): 在设置编辑器的节标题中继承主题文本颜色 PR #93605
- Sharak (@SharakPL): WebView 宽度修复 PR #93085
- Tobias Hernstig (@thernstig): 将 .npmrc 文件关联添加为 ini-file PR #92397
- Matej Urbas (@urbas)
- Alvaro Videla (@videlalvaro)
- David Teller (@Yoric): 修复 #91913:从文件监视器中排除 /.hg/store/ PR #91941
我们的辅助功能社区提供了持续的反馈!仅举几例
- Florian Bejers (@zersiax)
- José Vilmar Estácio de Souza (@jvesouza)
- Andy Borka (@ajborka)
- Dickson Tan (@Neurrone)
- Joan Marie (@joanmarie)
- Pawel Lurbanski (@pawelurbanski)
- Bryan Duarte (@RedEyeDragon)
- Alex Hall (@mehgcap)
- Michał Zegan (@webczat)
- Nolan Darilek (@ndarilek)
- Alexander Epaneshnikov (@alex19EP)
- Marco Zehe (@MarcoZehe)
- Leonard de Ruijter (@leonardder)
- Ivan Fetch (@ivanfetch)
对 vscode-vsce
的贡献
- Bob Brown (@bobbrow): 将 console.warn 更改为 console.log 以显示信息性消息 PR #434
- James George (@jamesgeorge007)
对 language-server-protocol
的贡献
- Aleksey Kladov (@matklad): 添加指向节的链接 PR #942
对 vscode-languageserver-node
的贡献
- Remy Suen (@rcjsuen): 重述类型和修饰符描述 PR #588
- Tom Raviv (@tomrav): 修复 text-document 包 readme 中的 npm 徽章 PR #592
- Heejae Chang (@heejaechang):
对 vscode-generator-code
的贡献
- Sibiraj (@sibiraj-s): 移除已弃用的
useColors
mocha api PR #196
对 vscode-loader
的贡献
- Roberto Araujo (@Roberto-Araujo): 使用 head 代替 document.head PR #26
对 localization
的贡献
有超过 800 名 Cloud + AI Localization 社区成员正在使用 Microsoft 本地化社区平台 (MLCP),其中约有 170 名活跃贡献者为 Visual Studio Code 做出贡献。我们感谢你的贡献,无论是提供新的翻译、为翻译投票,还是建议流程改进。
这里是 贡献者 的快照。有关项目的详细信息,包括贡献者姓名列表,请访问项目站点 https://aka.ms/vscodeloc。
- 简体中文 (中国) Tingting Yi, Yizhi Gu, Charles Dong, Justin Liu, Joel Yang, Tony Xia, 朱知阳, meng shao, 普鲁文, paul cheung, 张锐, Yiting Zhu, Nong Zhichao, Liam Kennedy, 武 健, Zhao Liguo, 宁 倬, Bochen Wang, 一斤瓜子, 顺 谭, 云 何, Yun Liu, yungkei fan.
- 繁體中文 (台灣) 船長, Winnie Lin, 予 恆.
- 捷克语 David Knieradl.
- 丹麦语 (丹麦) Javad Shafique, Lasse Stilvang.
- 英语 (英国) Martin Littlecott, Oren Recht, Faris Ansari.
- 芬兰语 (芬兰) Teemu Sirkiä.
- 法语 (法国) Antoine Griffard, Thierry DEMAN-BARCELÒ, Rodolphe NOEL, Nathan Bonnemains.
- 希伯来语 (以色列) Chayim Refael Friedman, Asaf Amitai.
- 印尼语 (印尼) Gerry Surya, Laurensius Dede Suhardiman.
- 意大利语 (意大利) Alessandro Alpi, Riccardo Cappello.
- 日语 (日本) Ikko Ashimine, Aya Tokura, Takayuki Fuwa, ちゃん きさらぎ, 住吉 貴志, Koichi Makino, Yoshihisa Ozaki, TENMYO Masakazu.
- 韩语 (韩国) Kyunghee Ko, June Heo.
- 挪威语 (挪威) Torbjørn Viem Ness.
- 波兰语 (波兰) Makabeus Orban, Kacper Łakomski.
- 葡萄牙语 (巴西) Alessandro Trovato, Marcelo Fernandes, Arthur Lima, Luciana de Melo, Luiz Gustavo Nunes.
- 葡萄牙语 (葡萄牙) Pedro Filipe.
- 俄语 (俄罗斯) Andrey Veselov, Vadim Svitkin, Минаков Антон.
- 西班牙语 (西班牙,国际排序) Sifredo Da Silva, Ariel Costas Guerrero, David Roa, Abdón Rodríguez P., Luis Manuel, Carlos A. Echeverri V.
- 瑞典语 (瑞典) Per Ragnar Edin.
- 泰米尔语 (印度) krishnakoumar c.
- 土耳其语 (土耳其) Umut Can Alparslan, Mehmet Yönügül.
- 乌克兰语 (乌克兰) Nikita Potapenko.
- 越南语 (越南) Hieu Nguyen Trung.