2020 年 4 月(1.45 版本)
更新 1.45.1:此更新解决了这些 问题。
下载:Windows: x64 | Mac: Intel | Linux: deb rpm tarball snap
欢迎使用 Visual Studio Code 2020 年 4 月版。此版本中有许多更新,我们希望您会喜欢,其中一些主要亮点包括:
- 辅助功能改进 - 用于导航工作台的焦点命令、状态栏辅助功能。
- 使用鼠标滚轮切换编辑器选项卡 - 使用鼠标滚轮快速切换编辑器中的文件。
- 更快的语法高亮 - 编程语言着色速度提高高达 3 倍。
- 自定义语义颜色 - 通过用户设置更改语义标记颜色。
- GitHub 存储库的 GitHub 身份验证支持 - GitHub 存储库的自动 GitHub 身份验证。
- GitHub 问题集成 - 用于 GitHub 问题和用户的内联悬停和建议。
- 远程开发 - 容器配置建议、WSL 2 支持。
- JavaScript 调试器预览 - CPU 分析、改进的自动附加到 Node.js 进程。
- 新的 Docker Compose 主题 - 了解如何使用 Docker Compose 处理多个容器。
如果您想在线阅读这些发行说明,请访问 更新(位于 code.visualstudio.com 上)。
Insiders: 想尽快尝试新功能吗?您可以下载每晚的 Insiders 构建版,并尽快尝试最新的更新。如需了解最新的 Visual Studio Code 新闻、更新和内容,请在 Twitter 上关注我们 @code!
辅助功能
在本里程碑中,我们收到了来自社区的宝贵反馈,这帮助我们识别并解决了许多 辅助功能问题。
- 我们引入了焦点下一部分(F6)和焦点上一部分(⇧F6(Windows、Linux Shift+F6))命令,以便轻松在工作台中导航。
- 现在可以访问状态栏,并且在获得焦点时,屏幕阅读器可以读取其内容。
- 在工作台中的每个列表和小部件中引入了适当的 ARIA 标签,例如“打开的编辑器”、“面包屑”、“问题”视图等。
我们团队的首要任务之一是使 Visual Studio Code 成为更易于访问的产品,并改善每位用户的体验,因此我们创建了一个新的 Gitter 频道,用于 VS Code 辅助功能。我们鼓励用户加入并提供反馈、提出问题并分享辅助功能实践。
工作台
使用鼠标滚轮切换选项卡
当您使用鼠标滚轮滚动编辑器选项卡时,您当前无法切换选项卡,只能显示超出视图的选项卡。现在,借助新的设置 workbench.editor.scrollToSwitchTabs
,您可以更改此行为以切换活动的编辑器选项卡。
在以下情况下,当光标焦点位于编辑器选项卡区域时,如果用户滚动鼠标滚轮,则活动编辑器会更改。
注意:您也可以在滚动时按住 Shift
键以获得相反的行为(例如,即使 scrollToSwitchTabs
设置处于关闭状态,您也可以切换编辑器选项卡)。
自定义窗口标题分隔符
新的设置 window.titleSeparator
可让您更改窗口标题中使用的分隔符字符。默认情况下,使用短划线 '-'
。
为默认主题更新了侧边栏部分标题
我们更新了默认深色和浅色主题的侧边栏部分标题的样式。现在,我们使用透明背景,并为每个标题显示边框。
在下面,“打开的编辑器”部分标题没有背景颜色,“VSCODE”和“大纲”标题具有上边框。
编辑器
更快的语法高亮
VS Code 中的语法高亮是通过解释 Text Mate 语法来运行的。这些语法是使用正则表达式编写的,可以使用 oniguruma 正则表达式库进行评估。到目前为止,我们一直在使用两个不同的库来评估此类正则表达式,一个用于 VS Code 桌面(本机节点模块),另一个用于浏览器中的 VS Code(Web Assembly 二进制文件)。
我们现在编写了一个专用的 Web Assembly 绑定,该绑定针对我们的 TextMate 解释器的使用进行了优化。通过避免内部循环中的内存分配并采用几个月前添加到 oniguruma 的新 API,我们能够创建一个比以前的两种方法都快且为高亮显示常规编程文件提供高达 3 倍性能的变体。您可以查看 拉取请求 #95958,了解更多详细信息和测量结果。
语义标记样式
现在,您可以在用户设置中自定义语义主题规则。语义着色可用于 TypeScript 和 JavaScript,并且正在开发对 Java 和 C++ 的支持。默认情况下,它对内置主题启用,并正在被主题扩展采用。
editor.semanticTokenColorCustomizations
设置允许用户覆盖默认主题规则并自定义主题。
上面的设置更改了默认深色+主题。它为参数提供了一种新样式(斜体和新颜色),并为默认库中的所有符号(例如,Promise
、Map
及其属性)添加了下划线。
以下示例向所有主题添加了语义样式
"editor.semanticTokenColorCustomizations": {
"enabled": true, // enable semantic highlighting for all themes
"rules": {
// different color for all constants
"property.readonly": "#35166d",
// make all symbol declarations bold
"*.declaration": { "bold": true }
}
}
语义高亮指南中更详细地解释了语义标记的主题。
默认深色+主题中常量的新颜色
现在,“默认深色+”和“默认浅色+”主题以与可写变量不同的色调为常量着色。
在下面,请注意 htmlMode
和 range
常量的颜色与 result
变量不同。
默认深色+主题
默认浅色+主题
禁用持久撤销
在上个里程碑中,更改了撤销/重做堆栈,以便在您关闭文件并重新打开文件时保留该堆栈。并非所有人都想要这项新功能,因此现在有一个设置 files.restoreUndoStack
来禁用持久撤销。
集成终端
删除几个与提示相关的命令
已删除以下命令
workbench.action.terminal.deleteWordLeft
workbench.action.terminal.deleteWordRight
workbench.action.terminal.deleteToLineStart
workbench.action.terminal.moveToLineStart
workbench.action.terminal.moveToLineEnd
这些命令通过将特定的字符序列发送到终端来工作,这是根据终端使用的命令键绑定所做的尽力而为的猜测。这些命令的问题在于它们是一个封闭的盒子,您需要逐字搜索 vscode 代码库以弄清楚它们是如何工作的。它们已被 workbench.action.terminal.sendSequence
命令的自定义键绑定所取代,该命令以通用方式执行相同的操作。
这些是高级键盘快捷方式,无法通过“键盘快捷方式”UI 完全查看,因为它们包含参数,但您可以通过运行 首选项: 打开默认键盘快捷方式 (JSON) 命令来查看其 JSON 定义
支持在 PowerShell 中粘贴多行文本
多行粘贴在 PowerShell 中始终不起作用,因为 VS Code 始终以与键入文本完全相同的方式发送文本。如上所述,几个键绑定已交换为使用 workbench.action.terminal.sendSequence
命令,您可能已经注意到仅为 Windows 添加了一个新的键绑定
{ "key": "ctrl+v", "command": "workbench.action.terminal.sendSequence",
"when": "terminalFocus && !accessibilityModeEnabled && terminalShellType == 'pwsh'",
"args": {"text":"\u0016"} },
这个新的键绑定会将代表 Ctrl+V
的文本直接发送到 PowerShell,PowerShell 会被 PSReadLine 拾取并正确处理。
之前
之后
主题:蓝宝石 (Dim)
控制双击字词选择
新的 terminal.integrated.wordSeparators
设置允许您自定义在终端中双击时用于分隔字词的分隔符字符。
默认分隔符是
"terminal.integrated.wordSeparators": " ()[]{}',\"`─"
调试
自动调试配置
在 VS Code 中设置调试可能是一项艰巨的任务,因为用户必须创建一个新的调试配置(或至少修改一个模板以满足他们的需求)。为了继续简化调试体验,我们添加了一项新功能,该功能为调试扩展作者提供了一种分析当前项目并自动提供高质量调试配置的方法,而无需额外的用户配置。
与提供构建任务的方式类似,自动调试配置在“调试”视图的配置下拉列表和 选择并开始调试 快速选择中分组在相应的调试器(文件夹图标)下。选择调试器后,VS Code 会显示所有可用的自动配置。选择配置将启动新的调试会话。
以下屏幕截图显示了新 JavaScript 调试器(预览版)和我们的教育模拟调试的功能
可以通过在快速打开 (⌘P (Windows, Linux Ctrl+P)) 中输入 'debug ' (带空格),或者触发 调试: 选择并开始调试 命令来打开调试快速选择。
在下一个里程碑中,我们将添加 UI,以便可以轻松地将自动调试配置添加到 launch.json
中进行进一步配置。
任务
禁用更快的快速选择
在 1.44 版本中,我们通过更改布局并使其更快,改进了运行 任务: 运行任务 命令时显示的 任务选择器。 然而,更快的快速选择确实会使任务选择器根据您要运行的任务而深入两层。 如果您想要之前的 UI,现在可以使用 task.quickOpen.showAll
设置禁用更快的选择器。
运行前保存
以前,当运行任务时,所有未保存的编辑器都会被保存。 如果您不希望在运行任务时保存编辑器,现在可以使用 task.saveBeforeRun
配置该行为。
语言
TypeScript 状态栏条目增强
当您专注于 TypeScript 文件时,VS Code 会在状态栏中显示当前的 TypeScript 版本。
现在,单击版本会弹出适用于当前 TypeScript 项目的命令。
提示用户切换到工作区版本的 TypeScript
新的 typescript.enablePromptUseWorkspaceTsdk
设置会弹出一个提示,询问用户是否要切换到工作区版本的 TypeScript。
要启用提示,请将 "typescript.enablePromptUseWorkspaceTsdk": true
和 typescript.tsdk
作为您项目的工作区设置包含进来。
Markdown 链接到文件夹
Markdown 文件中的编辑器链接和 Markdown 预览中的链接现在可以指向文件夹。 单击这些链接中的一个将在 VS Code 的文件资源管理器中显示目标文件夹。
源代码管理
GitHub 存储库的 GitHub 身份验证
VS Code 现在针对 GitHub 存储库具有自动 GitHub 身份验证。 现在,您可以克隆、拉取、推送公共和私有存储库,而无需在系统中配置任何凭据管理器。 甚至在集成终端中调用的 Git 命令(例如 git push
)现在也会自动针对您的 GitHub 帐户进行身份验证。
您可以使用 git.githubAuthentication
设置禁用 GitHub 身份验证。 您还可以使用 git.terminalAuthentication
设置禁用终端身份验证集成。
隐藏 Git 提交输入框
新的设置 git.showCommitInput
允许您隐藏 Git 存储库的提交输入框。
内联差异现在可编辑
现在,当预览文件中的更改时,您可以在快速差异编辑器中进行编辑。
预览功能
预览功能尚未准备好发布,但功能已足够使用。 我们欢迎您在它们开发过程中提供早期反馈。
设置同步
在过去的几个月中,我们一直在努力支持跨机器同步 VS Code 首选项,此功能可在 Insiders 版本上进行预览。
现在,您可以使用 GitHub 帐户登录以同步 VS Code 首选项。
主题:具有自定义的 GitHub Sharp
现在还支持同步全局代码片段。
新的 JavaScript 调试器
本月,我们继续在新的 JavaScript 调试器上取得进展。 它默认安装在 Insiders 上,并且可以从 VS Code 稳定版的 市场 安装。 您可以通过启用 debug.javascript.usePreview
设置,开始将其与现有的启动配置一起使用。
以下是本月添加的一些新功能
性能分析支持
您可以通过单击调用堆栈视图中的新 性能分析 按钮,或使用 调试: 采集性能分析 命令,从 Node.js 或浏览器应用程序中捕获 CPU 性能分析。 完成后,您可以选择性能分析的运行时间:直到您停止它、持续一段时间或直到您达到另一个断点。
性能分析结束后,它会保存在您的工作区文件夹中并在 VS Code 中打开。 如果您正在运行我们的稳定版本,则需要安装我们的 可视化扩展才能查看它。 在 Insiders 上,该扩展已内置。 当您打开性能分析时,CodeLens 将添加到您的文件中,其中包含函数级别和某些“热”行的性能信息。 与许多其他工具中捕获的性能分析不同,记录的性能分析会感知 sourcemap。
主题:Earthsong,字体:Fira Code
自动附加集成
当 debug.javascript.usePreview
打开时,VS Code 的 自动附加 将使用 js-debug
提供的新方法,该方法允许所有终端的工作方式与调试终端类似。
与现有调试器相比,自动附加的改进
- 调试器会立即附加,从而使您可以在程序早期命中断点。
- 会自动调试子进程。
- 在自动附加期间,没有进程轮询开销。
从变量视图复制复杂值
以前,尝试从 VS Code 变量 视图复制复杂值(例如对象)通常会导致数据被截断或不完整。 VS Code 和 js-debug 中的更改使我们可以复制完整的值。
产品图标主题
Visual Studio Code 包含一组内置图标,这些图标在视图和编辑器中使用,但也可以在悬停、状态栏中以及由扩展使用。 这些图标是产品图标,而不是文件图标,后者显示在整个 UI 中的文件名旁边。
VS Code 附带的产品图标包含在 Codicon 图标字体中,并用于默认产品图标主题。 扩展现在可以提供新的产品图标主题,以重新定义这些图标并为 VS Code 提供新的外观。
产品图标主题 文档包含更多详细信息,并且有一个 产品图标主题示例。
跨所有打开的项目的 TypeScript/JavaScript 符号搜索
当使用 TypeScript 3.9+ 时,VS Code 的 工作区符号搜索 现在默认情况下包含所有打开的 JavaScript 和 TypeScript 项目的结果。 我们之前仅搜索当前活动文件的项目。
这由新的 "typescript.workspaceSymbols.scope"
设置控制。 要恢复到旧行为,请设置:"typescript.workspaceSymbols.scope": "currentProject"
。
改进了终端中的链接
终端中的链接已进行了全面改进,更换了支持系统,采用了更强大的实现,从而实现了
- 使用编辑器的链接检测来更好地进行 Web 和
file://
链接检测。 - 文件夹链接支持,在资源管理器中打开文件夹或打开新的 VS Code 窗口。
- 不同链接类型的不同链接操作,回退到搜索工作区的“字词”链接(基于
terminal.integrated.wordSeparators
设置)。 - 与编辑器类似的链接突出显示和悬停体验。
主题:Topaz (Dim)
已知问题列表可在此查询中找到。
动态视图图标和标题
在这个里程碑中,我们继续努力使布局更加灵活。 在工作台中移动视图允许您在活动栏中创建新图标或在面板中创建新选项卡。 为了更容易理解这些新创建的视图容器中包含的内容,我们更新了逻辑,使其更易于理解。
现在,当您有一个自定义容器时,我们将从第一个可见视图继承标题和图标。 这将允许您通过重新排列视图来更改它。 对于内置的或来自扩展的容器,我们将尝试尽可能地保留此图标。 下面,当一个新的视图放置在视图容器的顶部时,它的图标和标题会被更新。
最后,您现在可以一次移动所有包含视图的自定义容器。 下面的短视频显示将终端和输出视图组合拖动到活动栏中。
扩展贡献
远程开发
我们继续致力于 远程开发扩展,该扩展允许您使用容器、远程计算机或 适用于 Linux 的 Windows 子系统 (WSL) 作为功能齐全的开发环境。
1.45 中的功能亮点包括
- 开发容器:提供容器配置建议。
- 开发容器:WSL 2 Docker 和 Podman 引擎支持。
- 开发容器:用于本地和容器文件夹的新
devcontainer.json
变量。
您可以在 远程开发发行说明中了解新的扩展功能和错误修复。
GitHub Pull Requests 和 Issues
以前名为“GitHub Pull Requests”,GitHub Pull Requests 和 Issues 扩展已经让您在 VS Code 中管理和审查拉取请求一年多了。 现在,该扩展已扩展为包括对 GitHub Issues 的支持。
Issue 支持包括
- 针对 #- 引用的 issue 和 @- 提及的用户的悬停。
- 针对 issue 和用户的内联完成建议。
- 一个可以自定义查询的 Issues 视图。
- 一个开始处理 issue 的操作,它会创建一个分支并填充提交消息。
还有新的存储库支持
- 使用 远程源提供程序 克隆存储库。
- 将存储库发布到 GitHub。
下面的短视频演示了如何发布到 GitHub 上的新的私有存储库,其中可以选择在成功上传文件后在 GitHub 上浏览该存储库。
有关更多信息,您可以阅读最近的 GitHub Issues 集成 博客文章和 使用 GitHub 文档。
GitHub Issue Notebook
VS Code 团队正在致力于原生支持 Notebooks。目前最常用的 Notebooks 是 Jupyter Notebooks,在研究它们的过程中,我们开始探索构建一个公正且支持不同风格 Notebooks 的解决方案。
其中一个 Notebooks 是 GitHub Issue Notebooks 扩展,它允许你管理 issue 和 pull request 搜索,并将结果内联呈现。
此扩展仍在开发中,仅适用于 VS Code Insiders 版本,但你可以通过它亲身体验 Notebooks,并向我们提供反馈。
扩展创作
编辑器选项卡的新主题颜色
添加了新的颜色以进一步自定义工作台编辑器选项卡的主题
tab.unfocusedInactiveBackground
:未聚焦组中的非活动选项卡背景颜色tab.hoverForeground
:悬停时选项卡的前景色tab.unfocusedHoverForeground
:在未聚焦组中悬停时选项卡的前景色
编辑器标题边框的新主题颜色
现有颜色 editorGroupHeader.tabsBorder
已更改为在编辑器选项卡下方但在面包屑上方渲染边框。新的颜色 editorGroupHeader.border
允许你在编辑器组标题下方(例如,如果启用了面包屑,则在面包屑下方)渲染边框,以恢复 editorGroupHeader.tabsBorder
的先前行为。
弃用和归档 vscode NPM 模块
在 2019 年 6 月,我们鉴于 event-stream
事件,将 vscode 模块拆分为 @types/vscode
和 vscode-test
。如今,minimist 的安全警报导致仍依赖于 vscode
的扩展出现安全警报,vscode
依赖于 [email protected]
,因此依赖于 [email protected]
。不幸的是,[email protected]
不再接收更新,升级到新的 mocha
版本会破坏现有功能。
我们发布了一个新版本的 vscode
,其中删除了某些不必要的依赖项。我们还归档了 存储库,并在 NPM 上弃用了 vscode 模块。请 迁移到 @types/vscode
和 vscode-test
。
新的完成项类型
vscode.CompletionItemKind
中新增了两个条目,分别表示 issue 和用户。例如,这些可以用于在添加 TODO 标签时建议用户名。
使用 URI
我们添加了一个 vscode.Uri.joinPath
实用程序。它是一个工厂函数,通过将路径段与现有 URI 连接来创建新的 URI。可以将其视为 Node.js 的 path.join
实用程序,但用于 URI。
对于扩展,VS Code 通过 Extension.extensionUri
和 ExtensionContext.extensionUri
公开扩展的安装 URI。使用 join 实用程序,你现在可以为你的扩展资源创建 URI。
例如
const fileUri = vscode.Uri.joinPath(context.extensionUri, './file.png');
const bytes = await vscode.workspace.fs.readFile(fileUri);
调试/调用堆栈/上下文菜单内联组
VS Code 现在支持对 debug/callstack/context
菜单 inline
组的贡献。当用户将鼠标悬停在调试会话元素上时,添加到此组的命令将内联呈现在调用堆栈中。
新的调试主题颜色
新增了一些用于设置调试视图样式的颜色
debugView.exceptionLabelForeground
:当调试器在异常处中断时,在调用堆栈视图中显示的标签的前景色debugView.exceptionLabelBackground
:当调试器在异常处中断时,在调用堆栈视图中显示的标签的背景色debugView.stateLabelForeground
:调用堆栈视图中显示当前会话或线程状态的标签的前景色debugView.stateLabelBackground
:调用堆栈视图中显示当前会话或线程状态的标签的背景色debugView.valueChangedHighlight
:用于突出显示调试视图(例如,“变量”视图)中值更改的颜色debugTokenExpression.name
:调试视图(例如,“变量”或“监视”视图)中显示的令牌名称的前景色debugTokenExpression.value
:调试视图中显示的令牌值的前景色debugTokenExpression.string
:调试视图中字符串的前景色debugTokenExpression.boolean
:调试视图中布尔值的前景色debugTokenExpression.number
:调试视图中数字的前景色debugTokenExpression.error
:调试视图中表达式错误的前景色
源代码管理
打开资源命令的新 preserveFocus 参数
当调用 SourceControlResourceState.command
命令时,将传递一个额外的 preserveFocus: boolean
参数,这使扩展作者能够提供更好的用户体验。
输入文本 mimetype
源代码管理输入文本现在具有专用的 mimetype:text/x-scm-input
。
控制输入框可见性
扩展现在可以使用 SourceControlInputBox.visible
属性来控制每个存储库的源代码管理输入框的可见性。
Git
远程源提供程序
Git 扩展 API 现在允许其他扩展 提供远程源,以便参与 Git: 克隆 命令。
这是 GitHub Pull Requests and Issues 扩展的示例
凭据提供程序
扩展了 Git 扩展 API,以便扩展可以提供身份验证凭据,以便对在工作台和集成终端中针对 HTTPS Git 存储库调用的 Git 命令进行身份验证。
SignatureInformation.activeParameter
SignatureInformation
上的新 activeParameter
属性允许你单独为每个签名指定活动参数。如果提供此属性,则它将覆盖顶层 SignatureHelp.activeParameter
属性。
EventEmitter 的严格 null 修复
在 VS Code 1.44 及更低版本中,EventEmitter.fire
的参数是可选的
// Valid in VS Code 1.44
const emitter = new EventEmitter<number>();
emitter.event((x: number) => console.log(x));
// Calling fire with no argument was valid but resulted in the `x` above being `undefined`
emitter.fire();
这违反了 严格 null 检查,但不会导致编译错误。
在 VS Code 1.45 中,fire
现在需要一个参数。如果你仍然希望能够在源代码中使用不带参数的 .fire()
,请使用 new EventEmitter<void>
。
语言服务器协议
已开始进行 3.16 版本规范的工作。作为第一步,调用层次结构支持已移出建议状态。请注意,3.16 规范尚未最终确定,并且可能会根据反馈进行更改。
建议的扩展 API
每个里程碑都带有新的建议 API,扩展作者可以尝试它们。与往常一样,我们渴望收到你的反馈。这是你试用建议 API 必须执行的操作
- 你必须使用 Insiders 版本,因为建议的 API 经常更改。
- 你必须在扩展的
package.json
文件中包含此行:"enableProposedApi": true
。 - 将 vscode.proposed.d.ts 文件的最新版本复制到你项目的源位置。
请注意,你不能发布使用建议 API 的扩展。下一个版本可能会有重大更改,我们绝不希望破坏现有扩展。
贡献于终端环境
上个月引入了这个新的建议 API,以便扩展作者可以贡献于终端环境。本月主要是在该功能之上应用一些 UI 并进行完善。现在,当终端具有“过时”的环境时,会显示一个警告图标,其中显示一个包含详细解释内容和方便的“重新启动终端”操作的富悬停提示。当更改处于活动状态时,也会显示一个信息图标,但默认情况下禁用此图标。
动态提供调试配置
我们更新了调试扩展 API,以便为调试扩展作者提供一种根据工作区或项目中找到的信息动态添加调试配置的方法。这些调试配置会显示在 launch.json
中静态调试配置所在的相同 UI 位置。
在此版本中,动态调试配置会显示在“调试”视图的配置下拉列表中以及“选择并开始调试”快速选择中。在将来的版本中,我们正在考虑在“欢迎”视图中也显示它们。
新的 API 基于现有 DebugConfigurationProvider
的 provideDebugConfigurations
方法。在此版本之前,VS Code 调用 provideDebugConfigurations
以提供要复制到新创建的 launch.json
中的初始“静态”调试配置。借助新的 API,现在可以通过将值 DebugConfigurationProviderTriggerKind.Dynamic
传递给新的可选 triggerKind
参数,为“动态”情况通过 vscode.debug.registerDebugConfigurationProvider
注册 DebugConfigurationProvider
。通过此新注册,当所有调试配置的列表即将显示在 UI 中时,VS Code 将调用 provideDebugConfigurations
方法。
为了及时激活使用此新 API 的扩展,引入了一个新的激活事件 onDebugDynamicConfigurations:<debug type>
。<debug type>
是必需的,表示指定动态调试配置的调试器。
可以在 Mock Debug 中找到一个 使用示例。
二进制自定义编辑器 API
我们在此迭代中重做了二进制自定义编辑器的建议 API,以便为稳定化做好准备。提醒一下,自定义编辑器允许扩展提供自己的编辑器用户界面,而不是 VS Code 的普通文本编辑器。我们已经稳定了对 基于文本文件的自定义编辑器的支持。建议的 API 将自定义编辑器扩展到二进制文件格式,例如图像或十六进制转储。
我们希望你对此 API 提供反馈,以便我们希望在下一个迭代中完成它。查看 自定义编辑器扩展示例,以查看二进制文件的自定义编辑器示例实现。 自定义编辑器 API 文档现在也涵盖二进制文件的自定义编辑器。
请 告知我们 此 API 是否对你有效,或者你在实现自定义编辑器时是否遇到任何问题。
工程
原生迭代器
我们现在使用原生的 ES6 迭代器来提高性能。你可以在 问题 #94540 中找到更多详细信息。
编译守护程序
借助 deemon 实用程序,我们现在将自托管编译任务作为后台进程运行:即使重新启动 VS Code,它也会保持运行。
自动问题分类
在我们继续将问题分类流程转移到 GitHub Actions 的工作中,我们创建了用于自动问题分类的 Actions。这些 Actions 的工作原理是自动下载我们的所有 issue,并生成机器学习模型,以按计划将 issue 分类到功能区域。我们所有 Actions 的完整实现都在我们的 GitHub Triage Actions 存储库中。
新文档
Docker Compose
新增了一个关于 Docker Compose 的主题,解释了 Microsoft Docker 扩展 如何帮助你向项目中添加 Docker Compose 文件,以便轻松处理多个 Docker 容器。
Java 主题
Java 主题已更新,包括关于使用 Java 扩展 对 Java 源代码进行 代码检查 和 重构 的新主题。
GitHub
随着 GitHub 集成的扩展,新增了一个 使用 GitHub 主题,展示了如何在 VS Code 中使用 GitHub。
重要修复
- 46886: 无法调整调试侧边栏中“断点”部分的大小
- 85344: 在 VSCode 中点击链接时,Firefox 崩溃。
- 86425: 集成终端宽度太窄
- 90714: 将调试控制台字体大小设置应用于输入字段
- 90734: Windows Terminal 作为外部终端不会在工作区目录中启动
- 93973: [SSH] 在侧边栏中自动显示不起作用
- 94574: 居中布局:显示差异编辑器时使用完整宽度
- 94982: Bash 调试无法从 1.44.0 版本开始启动
- 95108: serverReadyAction debugWithChrome 突然停止工作
- 95319: getWordRangeAtPosition 可能会冻结扩展主机
感谢
最后但同样重要的是,非常感谢以下人员为使 VS Code 更加出色所做的贡献!
对我们问题跟踪的贡献
- John Murray (@gjsjohnmurray)
- Andrii Dieiev (@IllusionMH)
- Simon Chan (@yume-chan)
- ArturoDent (@ArturoDent)
- Alexander (@usernamehw)
- Marco Zehe (@MarcoZehe)
- joanmarie (@joanmarie)
- José Vilmar Estácio de Souza (@jvesouza)
- Michał Zegan (@webczat)
对 vscode
的贡献
- Andrew Casey (@amcasey)
- Anthony Van de Gejuchte (@avdg): 不要让 git 使用分页器 PR #95549
- Richard Willis (@badsyntax): 更新 vscode.d.ts - 修复 Pseudoterminal.onDidClose 的代码注释块 PR #96206
- @bkis: 修复 git 扩展配置描述中的拼写错误 PR #94993
- @bolinfest: 确保 @rematch 和 nextEmbedded 可以在 Monarch 语法中一起使用 PR #95742
- Borja Zarco (@bzarco): 在有条件地解析某些变量时,除了
folderUri
外,还使用argument
。PR #95483 - Christos Pappas (@ChrisPapp)
- Connor Skees (@connorskees)
- Edgar Cumbreras (@cumbreras): 功能:#94285 在运行任务之前保存的选项 PR #94466
- Duncan Walter (@DuncanWalter): TS:添加设置,以提示用户有关工作区 tsdk 的信息 PR #95566
- Dusty Pomerleau (@dustypomerleau): 将所有
wordHighligher
实例更改为wordHighlighter
PR #95830 - Evan Krause (@evangrayk): 节流状态栏微调动画以节省 CPU PR #96096
- Jonathan Fleckenstein (@fleck): 删除重复的 git.pullFrom 命令 PR #95780
- Phil Marshall (@flurmbo): 添加 git.showCommitInput 配置选项 (#_79074) PR #81982
- Gaurav Makhecha (@gauravmak): 拼写修正 PR #94687
- @Git-Lior: bugfix - 当存在多个修饰符时,typescript 代码补全无法识别属性修饰符 PR #94165
- John Murray (@gjsjohnmurray): 修复 #95510 “在侧边栏中显示”被区分大小写的文件系统混淆… PR #95555
- Gustavo Cassel (@GustavoASC): 开发了设置,可在“查找”小组件中从文档的开头或结尾循环搜索 PR #92243
- Ilia Pozdnyakov (@iliazeus)
- Andrii Dieiev (@IllusionMH)
- Jean Pierre (@jeanp413)
- 修复单击问题筛选器输入框会使问题面板折叠的问题 PR #96203
- 修复命令
scm.mainPane.focus
不会聚焦源代码控制提供程序视图 PR #96515 - 修复将调试控制台字体大小设置应用于输入字段的问题 PR #91261
- 修复 scm 视图中“未跟踪的更改”组下缺少 git 文件夹操作的问题 PR #91872
- 在 MarkersView 构建时更新 markersViewModel PR #95653
- 改进调试视图下拉列表轮廓 PR #95935
- 修复重命名预览“按文件分组更改”视图不显示引用类型图标信息的问题 PR #94968
- 修复编辑器首次打开时,“运行”和“调试”始终灰显的问题 PR #94853
- jedwards (@jheiv): 在“终端:清除”命令面板操作后聚焦终端 PR #92100
- Jon Bockhorst (@jmbockhorst)
- John Blackbourn (@johnbillion): 默认情况下将
.gitignore_global
视为忽略文件。PR #96080 - Kodai Nakamura (@kdnk): 添加用于聚焦查询编辑器小组件的操作 PR #94799
- Lenny Anders (@lennyanders): 在拖动元素时向 backdrop-filter 添加过渡效果 PR #95217
- Lukas Spieß (@lumaxis): 将 keytar 更新到最新的公共版本 PR #95351
- Yaşar Yıldız (@MonoLizard): 修复 #90734 为新的 Windows Terminal 添加起始目录参数 PR #90773
- Marvin Heilemann (@muuvmuuv): 功能:添加窗口标题分隔符属性 PR #94371
- @NickDebug: 添加了缺失的单词 PR #95043
- Richard Townsend (@richard-townsend-arm): 添加 gulp 目标,修复 Windows on Arm 的构建。PR #85326
- Robert Rossmann (@robertrossmann)
- Dmitry Sharshakov (@sh7dm): 在时间线中正确显示未来事件 PR #94459
- Tobias (@Shegox): 更新自动化问题管理操作存储库的链接 PR #96568
- Josh Smith (@smithjosh115): 问题 #93589:将“renameShorthandProperties”设置重命名为“useAliasesForRenames” PR #94480
- Thomas Weingartner (@Thoemmeli): 修复“相对链接的 Markdown 预览从路径中删除 ‘host’”的问题 PR #95092
- Tyler James Leonhardt (@TylerLeonhardt): 添加 PowerShell 字符串自动关闭配对 PR #95245
- Alexander (@usernamehw): 在操作系统中显示文件应该适用于特殊文件(如 settings.json)… PR #95193
- Christopher Makarem (@x24git): 防止 CodeLens CSS 选择器名称无效 PR #95005
- @xisui-MSFT: 在 launch.json、workspace.json 或 .code-workspace 中添加配置字段(如果不存在)PR #95488
对 vscode-json-languageservice
的贡献
- Alex Kreidler (@alexkreidler): 添加基本覆盖率信息 PR #54
- Anantha Kumaran (@ananthakumaran): 添加对 textDocument/definition 的支持 PR #50
对 vscode-html-languageservice
的贡献
- Liam Newman (@bitwiseman): 将 js-beautify 更新至 1.11.0 版本 PR #82
对 language-server-protocol
的贡献
- Sam McCall (@sam-mccall): 使 didSave 服务器能力名称保持一致 PR #958
- Sora Morimoto (@imbsky): 修复 lsif-util 的链接 PR #971
对 debug-adapter-protocol
的贡献
- Nick Battle (@nickbattle): 将 VDMJ-LSP 添加到适配器列表 PR #109
对 vscode-generator-code
的贡献
- Neeraj Kashyap (@nkashy1): 更新注释掉的 myExtension 导入 PR #199
对 vscode-textmate
的贡献
- Yan Pashkovsky (@Yanpas): 添加语法性能警告 PR #128
对 vscode-vsce
的贡献
- Ilia Pozdnyakov (@iliazeus): 打印失败的 prepublish 脚本的输出 PR #442
对 localization
的贡献
有超过 800 名 Cloud + AI Localization 社区成员使用 Microsoft Localization Community Platform (MLCP),其中有大约 170 名活跃贡献者为 Visual Studio Code 做出贡献。我们感谢您的贡献,无论是提供新的翻译、对翻译进行投票还是提出流程改进建议。
以下是 贡献者 的快照。有关该项目的详细信息,包括贡献者姓名列表,请访问项目站点 https://aka.ms/vscodeloc。
- 中文(简体,中国) 易婷婷, 顾益之, 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, 予 恆, TingWen Su.
- 捷克语 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.
- 匈牙利语 Bucsai László.
- 印度尼西亚语(印度尼西亚) 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, Karol Szapsza.
- 葡萄牙语(巴西) Alessandro Trovato, Marcelo Fernandes, Arthur Lima, Luciana de Melo, Luiz Gustavo Nunes.
- 葡萄牙语(葡萄牙) Pedro Filipe, António Pereira.
- 俄语(俄罗斯) Andrey Veselov, Vadim Svitkin, Минаков Антон.
- 西班牙语(西班牙,国际排序) Sifredo Da Silva, Ariel Costas Guerrero, David Roa, Abdón Rodríguez P., Luis Manuel, Carlos A. Echeverri V, A. Jesus Flores A., Ricardo Estrada Rdez, Alfonso Jesus Flores.
- 瑞典语(瑞典) Per Ragnar Edin.
- 泰米尔语(印度) krishnakoumar c.
- 土耳其语(土耳其) Umut Can Alparslan, Mehmet Yönügül.
- 乌克兰语(乌克兰) Nikita Potapenko, igor oleynik.
- 越南语(越南) Hieu Nguyen Trung, LN Quang.