2018 年 3 月(版本 1.22)
更新 1.22.2:此更新解决了这些 问题。
下载:Windows | Mac | Linux 64 位:.tar.gz .deb .rpm | Linux 32 位:.tar.gz .deb .rpm
欢迎使用 2018 年 3 月发布的 Visual Studio Code。此版本包含许多重要更新,我们希望您会喜欢,一些主要亮点包括
- 语法感知代码折叠 - 为 CSS、HTML、JSON 和 Markdown 文件添加了改进的折叠功能。
- 跨文件错误、警告和引用导航 - 在您的工作区快速移动。
- 新的提示建议 - 使在编辑器中轻松发现建议的修复或重构。
- 转换为 ES6 重构 - 新的代码操作,用于转换为 ES6 类和模块。
- 自动附加到进程 - 自动将调试器附加到正在运行的 Node.js 进程。
- 日志点 - 在不更改源代码或重新启动调试会话的情况下注入日志记录。
- 更好的大型文件支持 - 更快的语法高亮显示,并可轻松为非常大的文件增加内存。
- 终端中的多行链接 - 路径和 URL 可以跨行显示在集成终端中。
- Emmet 包裹预览 - Emmet 的包裹缩写功能的实时预览。
- Windows 上的改进更新 - 在后台自动更新,减少停机时间。
- 预览:组织 JS/TS 导入 - 删除未使用的导入并对剩余的导入进行排序。
如果您想在线阅读这些发行说明,请访问 更新,网址为 code.visualstudio.com。
您还可以查看此 1.22 版本的 亮点视频,该视频来自云开发者倡导者 Brian Clark。
发行说明按以下与 VS Code 关注领域相关的部分进行排列。以下是一些进一步的更新
- 编辑器 - Emmet 性能和智能匹配改进,新的代码段日期变量。
- 工作区 - Windows 上更流畅的滚动,在搜索和替换期间自动保存。
- 调试 - 改进的 Node.js 进程选择器,launch.json 中的 postDebugTask。
- 任务 - 更好的命令和参数引用以及转义支持。
- 语言 - 更轻松的 JSDoc 中的 IntelliSense,CSS 路径完成。
- 扩展开发 - 长时间运行的操作,取消操作,将相关信息添加到诊断信息中。
内部人员:想要尽快看到新功能?您可以下载每晚的 内部人员 构建,并在新功能可用时立即试用。
编辑器
语法感知折叠
现在,HTML、JSON、Markdown、CSS、LESS 和 SCSS 中的折叠范围默认情况下是根据语言的语法计算的,不再依赖于格式良好的缩进。
TypeScript 和 JavaScript 的支持也可用,可以通过设置 "typescript.experimental.syntaxFolding": true
启用。
如果您希望为以上一种(或全部)语言切换回基于缩进的折叠,请使用
"[html]": {
"editor.foldingStrategy": "indentation"
},
提示:了解如何在 Markdown 文件中折叠标题区域 中使用此功能。
针对扩展程序的新的 API 已提出,以便其他语言也可以提供其语法感知折叠提供程序。
跨文件的错误和引用导航
在此版本中,通过 F8(转到下一个问题)导航错误和警告时,会考虑所有报告的错误。它不会在单个文件中循环,而是会带您到下一个包含错误的文件并返回。
类似地,有一个新命令用于导航到引用搜索结果。在符号上触发查找所有引用,然后使用 F4 和 ⇧F4(Windows、Linux Shift+F4) 访问每个引用。这对于在引用符号的所有位置进行编辑非常有用,因为您的手指无需离开键盘。
编辑器中的提示
扩展程序 API 现在支持创建“提示”诊断信息。它们不是错误或警告,而是关于如何改进某些内容的建议,例如,通过运行某个重构操作。
我们使用省略号 ...
在问题单词的开头下方呈现提示诊断信息。
对于扩展程序作者来说,始终包含带有代码操作的提示是一个好习惯,因为提示诊断信息可以帮助宣传代码操作。但是,一些用户可能不希望在编辑器中显示提示,因此还包括禁用它们的选项。
提示:在此版本中,我们为 JavaScript/TypeScript 重构 添加了几个提示。
错误和警告中的相关信息
扩展程序 API 现在支持将 相关信息 添加到诊断信息中,这将在显示诊断信息的所有位置显示:悬停时、错误窥视窗口以及问题面板。
在下面的示例中,您可以看到相关信息指出第一次使用两次分配变量的位置
更轻松地打开大型文件
以前,在编辑器中打开大型文件(~2GB+)会提示您使用标志 --max-memory=NEWSIZE
从命令行重新启动。为了减少这种摩擦,当您尝试打开需要比应用程序当前允许使用的内存更多的文件时,会弹出一个新的通知,让您快速重新启动,从而为应用程序提供更多可用的内存。重新启动后可用的最大内存可以通过新的设置 files.maxMemoryForLargeFilesMB
配置,默认为 4096
(4GB)。
语法高亮显示优化
在此版本中,我们将在文件打开后立即对视窗进行语法高亮显示,这基于视窗中内容的范围。这将导致更快的着色,如您在用户使用转到定义命令打开新文件时所见。
左侧:VS Code 1.21 右侧:VS Code 1.22
大型文件的查找和替换改进
我们在上一个版本中发布了新的文本缓冲区实现(阅读我们的 博客文章 以了解更多信息),并且我们继续对大型文件的查找和替换进行优化。
可配置的保存时格式化超时
VS Code 可以在将文件保存到磁盘之前运行格式化程序,因此速度至关重要,因为速度慢的扩展程序会减慢保存速度。出于这个原因,VS Code 对保存非常严格,并在 750 毫秒后取消保存时格式化请求。对于某些扩展程序(尤其是在处理大型文件时),这还不够时间,因此我们添加了一个新的设置 "editor.formatOnSaveTimeout"
来配置超时时间。如果语言扩展程序知道格式化需要更多时间,则可以将其修改为默认的 特定于语言的设置。
为了监视保存操作,状态栏现在有一个进度指示器。
更多代码段变量
有新的代码段变量用于引用当前日期和时间。除了数字(例如 28/3/2018)之外,您现在还可以使用诸如“28 日”之类的名称。新的变量是
${CURRENT_DAY_NAME}
- 星期几的名称(“星期一”)。${CURRENT_DAY_NAME_SHORT}
- 星期几的简称(“周一”)。${CURRENT_MONTH_NAME}
- 月份的完整名称(“七月”)。${CURRENT_MONTH_NAME_SHORT}
- 月份的简称(“七月”)。
Emmet
使用缩写包裹预览
使用Emmet:使用缩写包裹或Emmet:使用缩写包裹单个行命令时,您现在可以看到包裹文本的外观预览。
更快的缩写扩展
现在,在大型 CSS/SCSS/Less 文件中扩展 Emmet 缩写速度要快得多。这是通过解析光标周围的小区域而不是整个文件来实现的,以便确定当前位置是否适合扩展 Emmet 缩写。
更智能的代码片段匹配
样式表中的 Emmet 缩写会使用 预定义代码片段 进行模糊匹配,以提供最接近的匹配结果。可以通过更改 emmet.preferences
中的 css.fuzzySearchMinScore
设置来控制模糊匹配的准确性。css.fuzzySearchMinScore
设置代码片段需要达到的最小分数才能被视为匹配。提高分数会导致匹配结果更少但更准确。默认值为 0.3,可以提供 0 到 1 之间的任何值。
"emmet.preferences": {
"css.fuzzySearchMinScore": 0.3
}
工作区
Windows 上的自动后台更新
我们一直在为 Windows 上的 Insider 用户推出自动后台更新。我们已决定在 3 月份版本中为所有人启用此功能。
现在,持续时间最长的更新过程可以在后台运行,让你可以继续工作。准备就绪后,它会通知你应用最终更新,这是一个时间更短的步骤。这意味着在更新到最新版本的 VS Code 时,你可以更长时间地继续工作!
如果想恢复旧的行为或新的更新流程在你的机器上存在问题,可以使用 update.enableWindowsBackgroundUpdates
配置设置来禁用此功能。
Windows:滚动延迟的解决方法
我们收到了关于某些设备上的 Windows 滚动非常滞后且不流畅的报告(有关详细信息,请参阅 问题 13612)。为了解决流畅滚动的问题,可以将新的设置 window.smoothScrollingWorkaround
设置为 true
。由于这是一种解决方法,并且在从任务栏还原窗口时会导致闪烁,因此默认情况下不启用此设置。启用此设置后,你应该不会看到其他副作用。
在没有参数的情况下启动 VS Code 时打开空白窗口
引入了一个新的设置 window.openWithoutArgumentsInNewWindow
来控制在没有参数的情况下启动 VS Code 是否应聚焦上次活动的实例或打开一个新的空白窗口。在 Windows 和 Linux 上,默认情况下启用此设置,以更好地匹配平台行为。启用此设置后,双击桌面上的 VS Code 图标或从命令行运行 VS Code 而不带参数将打开一个新的空白窗口。在 Windows 上,当鼠标中键单击或 Shift+单击任务栏图标时,也是如此。通过明确将 window.openWithoutArgumentsInNewWindow
设置为 off
来禁用此行为。
在搜索和替换时自动保存
替换所有搜索结果时,不再需要全部保存和全部关闭。替换操作现在将替换并保存更改。
搜索包含/排除模式
搜索视图中包含和排除模式的框已合并为一个框。功能完全相同,只是排除模式必须以 !
为前缀。例如,!*.js
将跳过搜索扩展名为 .js 的文件。
树:支持水平滚动
有一个新的全局设置 workbench.tree.horizontalScrolling
,它为工作台中的一些树形小部件启用水平滚动。使用它可以提高对宽树形元素(如文件资源管理器中的深度文件系统层次结构)的可读性。
集成终端
更好地支持多行链接
跨越多行的路径和 URL 现在将作为链接工作。
实现过程中仍然存在一些问题,尤其是在调整窗口大小时。在实现 重排 后,这些问题将得到解决。
命令跟踪
终端现在具有“命令跟踪”功能,它试图猜测何时运行命令,并允许在命令之间轻松导航和选择。
此功能在 macOS 上具有以下默认键绑定
- 滚动到上一个命令:Cmd+Up*
- 滚动到下一个命令:Cmd+Down*
- 选择上一个命令:Cmd+Shift+Up
- 选择下一个命令:Cmd+Shift+Down
* 注意:向上/向下滚动一行已移至 Cmd+Alt+PgUp/Cmd+Alt+PgDown
在 Windows 和 Linux 上,可以通过将以下内容添加到 keybindings.json
文件中来配置这些命令的 自定义键绑定
{ "key": "ctrl+down", "command": "workbench.action.terminal.scrollToNextCommand",
"when": "terminalFocus" },
{ "key": "ctrl+up", "command": "workbench.action.terminal.scrollToPreviousCommand",
"when": "terminalFocus" },
{ "key": "ctrl+shift+down", "command": "workbench.action.terminal.selectToNextCommand",
"when": "terminalFocus" },
{ "key": "ctrl+shift+up", "command": "workbench.action.terminal.selectToPreviousCommand",
"when": "terminalFocus" },
更自然的滚动
终端应用程序内的滚动现在会感觉更自然,因为现在会考虑定义按像素、行或页面滚动方式的操作系统滚动设置。
在将 VS Code 用作 Git 编辑器后重新聚焦终端
在将 VS Code 用作 Git 编辑器并将 Git 从集成终端触发时,完成消息后,焦点现在将返回到终端。
调试
日志点
此里程碑包含我们针对日志点的第一项工作。日志点是断点的变体,它不会“中断”到调试器,而是将消息记录到控制台。日志点对于在调试无法停止的生产服务器时注入日志记录特别有用。
日志点由“菱形”图标表示。日志消息是纯文本,但可以包含要在花括号('{}')中计算的表达式。
与普通断点一样,日志点可以启用或禁用,也可以通过条件和/或命中次数进行控制。
目前,VS Code 的内置 Node.js 调试器支持日志点,但我们预计其他调试扩展很快也会支持日志点。
launch.json 中的 postDebugTask
我们在 launch.json
中添加了 postDebugTask
支持。此任务在调试会话结束后运行。与 preLaunchTask
相似,你可以通过名称引用 tasks.json
中的任务。以下是一个使用 postDebugTask
的启动配置示例
{
"name": "Attach to node server",
"type": "node",
"request": "attach",
"port": 8008,
"preLaunchTask": "Start Server",
"postDebugTask": "Stop Server"
}
Node 调试
自动附加到 Node.js 进程
VS Code 的 Node.js 调试器已添加了新自动附加功能的第一个版本。如果启用,Node 调试器会自动附加到从 VS Code 的集成终端以调试模式启动的 Node.js 进程。
要启用此功能,可以使用切换自动附加操作,或者如果 Node 调试器已激活,则可以使用自动附加状态栏项。
进程是否处于“调试模式”是通过分析程序参数来确定的。目前,我们检测模式 --inspect
、--inspect-brk
、--inspect-port
、--debug
、--debug-brk
、--debug-port
(所有模式都可选择后跟“=”和端口号)。
请注意,此功能(目前)不适用于“tmux”之类的终端多路复用器(启动的进程不是 VS Code 集成终端的子进程)。
改进的进程选择器
在之前的版本中,Node.js 进程的进程选择器仅作为可在启动配置中使用的“交互式变量”提供。
在此版本中,我们将选择器作为附加到 Node 进程操作提供,该操作无需启动配置即可使用。
为了使选择器和新操作更实用,我们现在支持通过调试端口附加到 Node.js 进程(除了通过进程 ID 附加之外)。
除了 Node.js 进程外,选择器现在还显示所有使用各种形式的 --debug
或 --inspect
参数启动的程序。这使得可以附加到 Electron 或 VS Code 的辅助进程。
选择器中列出的各个进程项除了进程 ID 外,还显示调试端口和检测到的协议。
任务
改进的参数引号
任务已更新,以便用户可以更好地控制在 bash 或 PowerShell 等 shell 中执行时,如何对参数和命令本身进行引号。类型为 shell
的任务现在支持单独提供命令及其参数。以下是一个列出名为 folder with spaces
的文件夹的目录的任务示例(注意名称中的空格)。
{
"label": "dir",
"type": "shell",
"command": "dir",
"args": ["folder with spaces"]
}
由于 shell 任务单独指定了参数,因此 VS Code 知道它应该将参数作为单个参数传递给“dir”命令,并根据使用的 shell 对参数进行引号。对于 cmd.exe
,VS Code 使用 "
,对于 PowerShell 使用 '
,对于 Linux 和 macOS 下的 shell 使用 '
。如果你想控制参数的引号方式,参数可以是指定值和引号样式的文字。例如
{
"label": "dir",
"type": "shell",
"command": "dir",
"args": [
{
"value": "folder with spaces",
"quoting": "escape"
}
]
}
这将使用 shell 的转义字符对参数中的空格进行转义,PowerShell 下的转义字符是反引号,bash 下的转义字符是 \
。如果使用的 shell 不支持字符转义,则使用强引号。
除了转义外,还支持以下值
- strong:使用 shell 的强引号机制,该机制会抑制字符串内的所有计算。在 PowerShell 和 Linux 和 macOS 下的 shell 中,使用单引号 (
'
)。对于 cmd.exe,使用"
。 - weak:使用 shell 的弱引号机制,该机制仍然会计算字符串内的表达式(例如,环境变量)。在 PowerShell 和 Linux 和 macOS 下的 shell 中,使用双引号 (
"
)。cmd.exe 不支持弱引号,因此 VS Code 也使用"
。
如果命令本身包含空格,VS Code 默认也会对命令进行强引号。与参数一样,用户可以使用相同的文字样式来控制命令的引号。
请注意,仍然支持在 command
属性中使用整个命令行的旧样式。
任务 API 中添加了相同的支持,因此任务提供者也可以完全控制引号和转义。
语言
按标题级别折叠 Markdown
现在可以按标题折叠 Markdown 文档
折叠标题会折叠该标题下所有内容和子标题。
TypeScript 2.8
VS Code 现在附带 TypeScript 2.8。此更新带来了对一些很酷的 新语言功能 的支持,以及许多重要的错误修复和工具改进。
改进的 JSDoc 中的快速建议
您知道 VS Code 为 JSDoc 类型提供了 IntelliSense 吗?此功能是在多个版本之前添加的,但您可能没有意识到它,因为 IntelliSense 只有在您手动调用它时才会显示。在 VS Code 1.22 中,快速建议现在在 JSDoc 类型中默认启用。只需开始输入即可启动 IntelliSense。
JavaScript 和 TypeScript 的建议代码操作
我们还改进了 JavaScript 和 TypeScript 建议代码操作的可发现性。这些是建议的更改,可以帮助您快速改进或清理源代码。它们使用灯泡小部件显示,但与快速修复不同,它们不会解决源代码中的特定错误或警告。示例建议代码操作包括:将 ES5 类转换为 ES6 类,将 CommonJS 模块转换为 ES6 模块。
建议代码操作现在在编辑器中用 ...
表示
将光标移到 ...
上,然后单击灯泡或按 ⌘.(Windows、Linux Ctrl+.) 以显示可用的代码操作
我们计划继续添加更多建议。如果您有任何想看到的建议,请告诉我们。
建议代码操作在 JavaScript 和 TypeScript 中默认启用。您可以通过设置以下选项来禁用它们:"typescript.suggestionActions.enabled": false
或 "javascript.suggestionActions.enabled": false
CSS 路径完成
除了 HTML 之外,路径完成现在也适用于 CSS
扩展开发
将长时间运行的操作显示为具有取消支持的通知
我们添加了一个新的 API,用于在通知中心显示长时间运行的操作,并可以选择性地提供取消支持。将长时间运行的操作显示在这里的好处是
- 多个操作可以同时报告进度。
- 您可以显示操作进度。
- 用户可以选择取消操作。
使用新的进度位置 ProgressLocation.Notification
调用 window.withProgress
。将 cancellable
设置为 true
以显示取消按钮,并在回调中的提供的 CancellationToken
上检查取消。要显示进度,请在报告进度时利用 increment
值。有关使用此新 API 的扩展,请参阅 进度示例。
支持相关的诊断信息
我们添加了一个 API,用于提供诊断相关的的信息 - DiagnosticRelatedInformation
。想象一下编译器错误的示例,因为变量名在作用域内被重复使用。实际错误可能是“不允许重复定义符号'Foo'”,它会指向非法声明。通过在诊断中包含相关信息,您还可以指向符号'Foo' 的第一个声明,使错误更容易理解和修复。
处置 CancellationTokenSource
不再将令牌设置为已取消状态
以前,对 CancellationTokenSource
调用 dispose()
会将令牌设置为已取消并触发取消事件。我们更改了行为,以便能够在不取消令牌的情况下处置令牌。如果您依赖于令牌的取消,请调用 cancel()
方法。
简单编辑器不会传递给扩展
使用编辑器(如调试 REPL 输入)的输入不再作为编辑器传递给扩展。这意味着,当用户将焦点放在调试 REPL 上时,onDidChangeActiveTextEditor
不会触发,onDidChangeTextDocument
也不会触发。此更改的原因是 REPL 输入将编辑器用作实现细节,扩展不应该收到此通知,因为它不是“真正的编辑器”。
自定义视图
树视图
您现在可以使用新的 TreeView
API 对自定义视图执行操作。可以通过提供 viewId
和 TreeDataProvider
来使用新的 API createTreeView
访问此 API。
const customView = vscode.window.createTreeView<string>('customView', {
treeDataProvider: new CustomViewDataProvider<string>()
});
注意:现有的 registerTreeDataProvider
API 仍然支持为视图贡献数据。您可以使用 registerTreeDataProvider
或 createTreeView
来贡献 TreeDataProvider
,但不能同时使用。
显示
目前,TreeView
公开了 reveal
方法,用于在视图中显示和选择项目。
customView.reveal('element');
默认情况下,要显示的项目将被选中。为了不选择项目,请将 select
选项设置为 false
。例如
customView.reveal('element', { select: false });
您可以在 此处 找到更多 TreeView
示例。
注意:要启用 reveal
API,贡献的 TreeDataProvider
必须实现 getParent
方法。
新的主题颜色
有两种新的“提示”诊断颜色
editorHint.foreground
:编辑器中提示的前景色。editorHint.border
:编辑器中提示的边框颜色。
编辑器可见范围
编辑器可见范围 API 现在已提升至稳定版。
export interface TextEditor {
/**
* The current visible ranges in the editor (vertically).
* This accounts only for vertical scrolling, and not for horizontal scrolling.
*/
readonly visibleRanges: Range[];
}
export namespace window {
/**
* An [event](#_Event) which fires when the selection in an editor has changed.
*/
export const onDidChangeTextEditorVisibleRanges: Event<TextEditorVisibleRangesChangeEvent>;
}
调试适配器协议
日志点支持
新引入的日志点在调试适配器协议中作为 SourceBreakpoint
上的新属性 logMessage
以及新功能 supportsLogPoints
显示。支持日志点的调试适配器会为 supportsLogPoints
功能返回 true
,并且不会为非空 logMessage
属性“中断”(停止),而是改为记录消息。大括号 ('{...}') 中的表达式将被求值,结果将替换 logMessage
中的 '{...}'。
initialize
请求的新 clientName
属性
前端可以使用 initialize
请求上的新的可选属性 clientName
将前端的可读名称传递给调试适配器。
新的 terminateThreads
请求
前端可以使用新的 terminateThreads
请求来终止一个或多个线程。相应的 supportsTerminateThreadsRequest
功能表示调试适配器支持该请求。
新的 setExpression
请求
新的 setExpression
请求可用于为可赋值表达式(也称为“左值”)分配值。相应的 supportsSetExpression
功能表示调试适配器支持该请求。
stopped
事件上的新的 preserveFocusHint
stopped
事件上的真值 preserveFocusHint
表示前端应在停止事件时不更改焦点。
多选快速选择
我们在快速选择 API 中添加了一个选项,该选项使返回值成为一个选定项目列表,并使用新的 UI 允许用户选择任意数量的项目
请参阅 QuickPickOptions.canPickMany
选项和 QuickPickItem.picked
标志,了解如何将它们与现有的 window.showQuickPick
API 函数一起使用。
拟议的扩展 API
在本里程碑中,我们添加了一些新的建议扩展 API。我们计划在对它们有足够信心后,在将来的里程碑中将这些 API 添加到稳定版。我们欢迎您提供有关它们在您的扩展中如何工作的反馈。
注意:这些 API 仍然是建议性的,因此要使用它们,您必须通过在
package.json
中添加"enableProposedApi": true
来选择加入,并且您必须将 vscode.proposed.d.ts 复制到您的扩展项目中。另外请注意,您不能发布使用enableProposedApi
属性的扩展到 Marketplace。
折叠提供程序 API
为了使扩展能够提供语言感知的折叠范围,建议使用新的提供程序 API
export namespace languages {
/**
* Register a folding provider.
*
* Multiple folding can be registered for a language. In that case providers are sorted
* by their [score](#_languages.match) and the best-matching provider is used. Failure
* of the selected provider will cause a failure of the whole operation.
*
* @param selector A selector that defines the documents this provider is applicable to.
* @param provider A folding provider.
* @return A [disposable](#_Disposable) that unregisters this provider when being disposed.
*/
export function registerFoldingProvider(
selector: DocumentSelector,
provider: FoldingProvider
): Disposable;
}
请参阅 此处 的完整 API。
建议在 此处 将等效 API 作为协议扩展添加到语言服务器协议。欢迎提供反馈!
任务 API
现在有一个新的任务 API,它支持
- 查询系统中所有现有任务。
- 以编程方式执行任务。
- 终止正在运行的任务。
- 监听任务开始和结束事件。
建议的 API 可以 在此处 找到
新的 API 还支持在没有通过任务提供程序事先返回任务的情况下执行任务。以下示例执行一个简单的 echo
任务。
let task = new vscode.Task(
{
type: 'myCustomTask'
},
'echo',
'myExtension',
new vscode.ShellExecution('echo', ['Hello World'])
);
vscode.workspace.executeTask(task);
可维护性
您现在可以从 VS Code 中对扩展提交问题。问题报告器现在包含一个下拉菜单,让您选择是报告 VS Code 本身的错误还是扩展的错误。如果扩展在 GitHub 上有存储库,则类似的问题搜索和“在 GitHub 上预览”提交按钮将使用该存储库。
预览功能
预览功能尚未准备好发布,但功能足够强大,可以供您使用。我们欢迎您在开发过程中提供早期反馈。
整理 JavaScript 和 TypeScript 的导入
新的“整理导入”命令()将删除未使用的导入,并对剩余的导入进行排序
该命令适用于 JavaScript 和 TypeScript 的 ES6 模块。
Electron 2.0 探索
在本里程碑中,我们探索了将 Electron 2.0.0 捆绑到 VS Code 中。这是一个主要的 Electron 版本,附带了 Chrome 61 和 Node.js 8.x(与我们当前版本的 Chrome 58 和 Node.js 7.x 相比,这是一个巨大的进步)。我们计划在 4 月初将更新推送到我们的 Insiders 用户,以收集更多反馈。如果您有兴趣帮忙,请确保安装 VS Code Insiders。
显著更改
- 13905:Windows:在任务栏图标上单击鼠标中键不会打开新窗口
- 35675:字体渲染在 Linux 上看起来很丑陋
- 36307:实验性文件观察程序 - 在“循环”符号链接上出现高 CPU 占用
- 42401:更智能地对输出通道进行分组
- 42402:添加选项以从通道内部显示日志
- 43813:更新后扩展不完整
- 44411:从无法解析的变量的启动中退出
- 44554:允许拖放多个根文件夹
- 45872:在安装本地化包后,提示用户更改 UI 的语言
- 45972:资源管理器:减少 isEqualOrParent 的调用次数
感谢
最后但并非最不重要的是,衷心感谢以下帮助使 VS Code 变得更好的各位
对 vscode
的贡献
- Julian Tu (@AiryShift):修复了 #46075 PR #46227
- @amalik12:添加了 Mac 特定的文本以用于链接跟随工具提示 PR #44885
- 朝歌 (@amtlib-dot-dll)
- Andreas Offenhaeuser (@anoff):Markdown 安全策略以允许本地 HTTP 内容 PR #46473
- @Arnie97: 更新 ini 语言的文件扩展名 PR #45729
- Aliaksandr Ushakou (@aushakou): 修复 #43465 PR #44006
- Robin Bartholdson (@buyology): 使 formatOnSave 的超时时间可配置 PR #43702
- Juan Camilo Giraldo Chaverra (@camilogiraldo): 针对有依赖关系的扩展提供更好的卸载对话框。 PR #45929
- Cherry Wang (@chryw)
- Christian Oliff (@coliff): HTTPS 链接 PR #46849
- Mikhail Bodrov (@Connormiha): 简化检查 lang.mimetypes PR #42932
- Daniel Frankcom (@danielfrankcom)
- Darius Keeley (@Dari-K): 使用 sizing-shrink 和 close-button-left/off 将标签淡出隐藏,直到文本溢出 PR #45815
- Dominik Ivosevic (@DominikDitoIvosevic): 添加对带空格的路径链接的支持 PR #43733
- Fathy Boundjadj (@fathyb): 将 getWorker 添加到 MonacoEnvironment PR #46032
- Mihai Balaceanu (@gizm0bill): 使用 box-shadow CSS 渲染引导,修复 #46027 PR #46029
- Jackson Kearl (@JacksonKearl)
- Jean Pierre (@jeanp413): 修复 #46106 PR #46309
- JYX (@jjyyxx): 避免访问未定义/为空值的 vsWorker PR #46012
- Ievgen Andrushchak (@killerDJO): 搜索本地 Typescript 语言服务插件 PR #45858
- Dominic Valenciana (@Kiricon): 为快速修复小部件单击添加焦点 PR #44073
- Kumar Harsh (@kumarharsh): fix(feedback): 在反馈表单中使用 Button 小部件。 关闭 #46490 PR #46503
- Matheus Salmi (@mathsalmi): 修复 php 语法更新脚本 PR #44171
- Mika Andrianarijaona (@mikaoelitiana): 将 cursorColumnSelectUp 的默认键绑定更改为 ctrl+shift+… PR #41471
- Mark Marron (@mrkmarron): 更改以在启动时间旅行时防止 fakeFireContinued PR #46441
- Bruno Ribeiro (@nikonso): 将部分暂存操作添加到差异编辑器上下文菜单 PR #43941
- Ori Ashual (@oriash93)
- Pradeep Murugesan (@pradeepmurugesan): 添加了建议中第一个和最后一个选择的键绑定。 PR #45881
- Roman Salvador (@rsalvador)
- Shobhit Chittora (@shobhitchittora)
- Tobias Kahlert (@SrTobi): 水平模式下的居中布局 PR #45671
- Steve Desmond (@stevedesmond-ca): 在 env 脚本中正确设置 electron 版本 PR #45696
- Alexander (@usernamehw)
- Waldir Pimenta (@waldyrious): 更改状态栏中缩进操作的标签 PR #37515
- Zim Kalinowski (@zikalino): 确保 yml 扩展名是 yaml 文件的默认扩展名 PR #45756
对 vscode-extension-vscode
的贡献
对 vscode-nls
的贡献
- Ruben Bridgewater (@BridgeAR): 使用同步 fs.mkdir PR #17
对 language-server-protocol
的贡献
- Igor Matuszewski (@Xanewok): 将消息参数类型更改为匹配 JSON-RPC 规范 PR #373
对 vscode-css-languageservice
的贡献
- Avi Vahl (@AviVahl): 修复 esm 模式下的函数调用 PR #74
对 vscode-html-languageservice
的贡献
- Sibiraj (@Sibiraj-S): 添加 AngularJS
ng-strict-di
标签 PR #25
对 node-jsonc-parser
的贡献
- @sqs: 允许在数组中使用尾随逗号 PR #6
- Huachao Mao (@sqs):
对 vscode-generator-code
的贡献
- Alessandro Fragnani (@alefragnani): 添加 Keymap 扩展模板 PR #110
- Nikita Shiryakov (@nikselite): 删除不必要的空格 PR #106
对 vscode-languageserver-node
的贡献
- Matt Acosta (@mattacosta): 错别字修正 PR #327
对 vscode-loader
的贡献
- Geoffrey Gilmore (@ggilmore): 支持在运行时加载作用域模块 PR #10
对 vscode-azurecli
的贡献
- Derek Bekoe (@derekbekoe): 修复 Homebrew 上的 PYTHONPATH PR #31
对 vscode-azure-account
的贡献
- Sheng Chen (@jdneo): 在 promise race 中添加超时 PR #46
对 vscode-chrome-debug
的贡献
- AJ Richardson (@aj-r): 修复 Windows 上的 chrome 会话恢复提示 PR #606
- Chance An (@changsi-an)
- @digeff
- Chris Wells (@msft-cwells)
- Raghav Katyal (@rakatyal)
对 vscode-chrome-debug-core
的贡献
- Chance An (@changsi-an)
- @digeff
- Raghav Katyal (@rakatyal): 清除上下文以避免发送多个删除事件… PR #318
对 vscode-node-debug2
的贡献
- @digeff
- Chris Wells (@msft-cwells)
- Raghav Katyal (@rakatyal): 尊重从 Pinezorro 传递的区域设置 PR #180
对 vscode-recipes
的贡献
- @bladedeyna: 更新 README.md 以匹配当前 launch.json PR #90
- @dvlsg: docs: 调试部分中的拼写 PR #75
- Liran Tal (@lirantal): docs(README): 修复拼写错误 PR #88
- Marek Kaczkowski (@marekkaczkowski): 调试-jest-测试 在 Windows 上的 "Jest 当前文件" PR #89
对 localization
的贡献
本月是我们在 Transifex 上为 VS Code 社区本地化开放一周年纪念日,时间是 2017 年 4 月 10 日。
- Transifex VS Code 项目 团队中有超过 800 名成员,每月大约有 100 名活跃贡献者。
- 通过社区贡献,我们已成功为国际用户发布了 9 种核心语言的每月更新。
- 此外,还有 4 种语言由社区成员完全本地化并发布为 Language Pack VS Code 扩展。更多语言即将推出。
- 向 VS Code 社区本地化贡献者致敬!!!
以下是本版本贡献者的快照。有关该项目(包括贡献者姓名列表)的详细信息,请访问项目网站 https://aka.ms/vscodeloc。
- 法语: Antoine Griffard, Adrien Clerbois, Smrman.
- 意大利语: Alessandro Alpi, Piero Azi, Aldo Donetti, Simone Chiaretta, Emilie Rollandin, Francesco Mugnai.
- 德语: Dejan Dinic, Jakob von der Haar, Carsten Kneip, Jakob, Ettore Atalan.
- 西班牙语: Alberto Poblacion, José M. Aguilar, David Silva, Alejandro M, Andy Gonzalez, AlanThinks, David Triana, Santiago Porras Rodríguez, Carlos Mendible, Jorge Serrano Pérez.
- 日语: Shunya Tajima, Yuichi Nukiyama, Hiroyuki Mori, Takashi Takebayashi, Seiji Momoto, yoshioms, Yuki Ueda, 小島 富治雄, Satoshi Kajiura.
- 简体中文: Joel Yang.
- 繁体中文: Duran Hsieh, Winnie Lin, Poy Chang, balduran, Will 保哥.
- 韩语: ChangJoon Lee, Ian Y. Choi.
- 俄语: Ivan, Andrei Makarov.
- 保加利亚语: Любомир Василев.
- 匈牙利语: Tar Dániel.
- 葡萄牙语(巴西): Roberto Fonseca, Matheus Palu, Rodrigo Crespi, Danilo Dantas, Douglas Ivatiuk Martim, Alessandro Fragnani, Kayky de Brito dos Santos.
- 葡萄牙语(葡萄牙): Diogo Barros, Ruben Mateus, António Lourenço, João Mata, Gustavo Silva.
- 土耳其语: Adem Coşkuner, Ömer Büyükçelik, Mustafa Turhan, Tuğrul Kaşıkcı.
- 波斯尼亚语: Bahrudin Hrnjica, Muharem Basanovic, Ismar Bašanović, Almir Vuk.
- 捷克语: Michal Vondracek, Vít Staniček, Filip Vlček, Vojtěch Habarta, Ferdinand Prantl.
- 荷兰语: Maurits Kammer, Gerald Versluis, Marco van den Hout.
- 芬兰语: Feetu Nyrhinen, Petri Niinimäki.
- 希腊语: Dimitris Trachiotis.
- 印度尼西亚语: Joseph Aditya P G, Najih Azkalhaq, Adrian M. R., Wildan Mubarok, G-RiNe Project, Lundy Orlando, Azhe-kun, Febrian Setianto, Riwut Libinuko, Laurensius Dede Suhardiman, Mulia Arifandi Nasution, Herman Prawiro.
- 拉脱维亚语: Pēteris Kļaviņš, Simone Chiaretta, kozete, Lafriks.
- 立陶宛语: Martynas Jusys.
- 波兰语: Patryk Brejdak, Joanna Skurzyńska, Paweł Sołtysiak, KarbonKitty.
- 塞尔维亚语: Марко М. Костић, Nikola Radovanović.
- 瑞典语: Joakim Olsson, Kalle Wallin, Johan Hedén.
- 泰语: Sirisak Lueangsaksri, Phongphan Bunlom, ภูมิไผท จันทรศรีวงศ์.
- 乌克兰语: Андрій Іванченко, R.M., Max Plotitsyn, Svitlana Galianova.
- 越南语: Hung Nguyen.