Visual Studio Code v1.17
Visual Studio Code v1.17发布
欢迎来到2017年9月发行的Visual Studio代码。在这个版本中有一些重要的更新,我们希望你会喜欢,一些关键的亮点包括:
- macOS Touch Bar支持 - Touch Bar操作,用于导航和调试。
- 源代码折叠改进 - 折叠区域标记和离线语言块。
- 集成终端性能 - 终端渲染速度高达45倍。
- 自动导入建议 - 编码时请参阅模块和路径导入建议。
- 调试显示源位置 - 轻松从Debug Console导航到源代码。
- 正则表达式和格式字符串更好的着色 - 有助于解析和识别错误。
- 改进了多个SCM支持 - 新UI可以查看多个源代码管理库中的更改。
- 新的在线文档 - Java语言,“提示和技巧”和调试配方主题。
- 预览:多根工作区 - 工作区更新时无重新加载,可用任务的组合视图。
- 扩展作者的多根指南 - 帮助扩展程序为多根工作区做好准备。
新的Visual Studio代码标志
我们更新了VS代码标识和颜色,橙色为稳定版本,绿色为内部人士。
| 发布 | 稳定 | 业内人士 |
|---|---|---|
| macOS / Linux | ![]() |
![]() |
| 视窗 | ![]() |
![]() |
注意:根据您的平台,由于应用程序图标的操作系统缓存,您可能仍然会看到早期的徽标。
更好 - 等待支持
VS代码可以--wait从命令行的参数开始,直到打开的实例关闭。在这个里程碑中,我们使这个功能更加强大,当所有的编辑器被关闭时也会终止调用进程。因此,您现在可以使用--wait已经打开的实例,从而使其体验更快。

注意:默认情况下,我们现在将重用任何已打开的实例。为了避免这种情况,请将-n参数添加到命令行。
文件编码的新功能
现在可以配置每种语言的设置files.encoding以及files.autoGuessEncoding设置。VS代码现在也支持CP 850和CP 865编码。
编辑
折叠区域
折叠现在支持区域标记。标记由语言配置中的语言定义。
以下语言当前具有定义的标记:
- TypeScript / JavaScript: //#region和//#endregion and //region和//endregion
- C#:#region和#endregion
- C / C ++:#pragma region和#pragma endregion
- F#://#region和//#endregion
- Powershell:#region和#endregion
- VB:#Region和#End Region

每种语言也有标记可用的片段。键入'#'并调用代码完成以查看它们。
要为您的语言配置区域标记,请与语言扩展提供商联系。
折叠在离线语言中
在符合代码块偏离规则的语言中,空行属于下一个折叠区域。

该设置在语言配置中进行配置,并为以下语言启用:
Python,Yaml,Pug,Markdown,Clojure,CoffeeScript,FSharp。
片段选择器
“ 插入代码段”命令显示的代码段选择器下拉列表显示了两组用户代码段和扩展程序代码片段。用户定义的片段列在顶部,以便您快速访问您最喜爱的片段。

代码片段转换
VS代码片段引擎现在支持变量转换。变换可以在插入变量之前更改变量的值。格式是var_name/regular_expression/format_string/options。下面的示例是一个代码片段,它创建一个公共Java类,其名称源自文件名。
"Public Class": {
"prefix": "pclass",
"body": [
"public class ${1:${TM_FILENAME/(.*)\\.java/${1:/capitalize}/}} {",
"\tpublic $1 (${2:params}) {",
"\t\t$0",
"\t}",
"}"
],
"description": "New public class"
}
新的部分是这样的:${TM_FILENAME/(.*)\\.java/${1:/capitalize}/}这是它的作用:
- 解决价值TM_FILENAME,例如myClass.java。
- 例如,使用正则表达式/(.*)\\.java为.java结束之前的所有内容创建匹配的组myClass。
- 取第一个匹配组的值,确保以大写字母(/capitalize)开始,然后插入它(MyClass)。
要了解更多信息,请查看我们的代码段语法,以查看您可以做什么,然后获得创造性。
灯泡改进
- 新editor.lightbulb.enabled设置在编辑器中启用或禁用“代码操作”灯泡。默认值为true。
- “代码操作”菜单现在默认选择第一个条目,使其更容易运行。
Emmet偏好
我们将继续在Emmet 2.0中增加更多Emmet偏好设置的支持。除了我们在上一个版本中添加的首选项,我们现在有:
- bem.elementSeparator
- bem.modifierSeparator
- filter.commentBefore
- filter.commentTrigger
- filter.commentAfter
filter.commentAfterEmmet 2.0中的首选项格式不同,简单。
例如,而不是旧的格式
"emmet.preferences": {
"filter.commentAfter": "\n<!-- /<%= attr('id', '#') %><%= attr('class', '.') %> -->"
}
你会用
"emmet.preferences": {
"filter.commentAfter": "\n<!-- /[#ID][.CLASS] -->"
}
集成终端
新的渲染引擎
集成终端现在正在使用一种新的基于画布的渲染引擎,根据情况,渲染速度提高约5到45倍。这种改变减少了输入延迟,功耗,并显着增加了终端的帧速率。

您可以在我们最近的博客文章中更详细地阅读。
调试
调试控制台消息显示源位置
调试控制台中的输出消息现在可以选择在右侧显示始发源位置:

单击此源将在编辑器中打开源文件。
注意:以下调试器已经支持此功能:
我们期望更多的调试扩展可以很快地采用这个功能
任务
我们向任务添加了多文件夹支持。如果已创建具有多个文件夹的工作空间,则会收集所有使用任务版本“2.0.0”的工作区文件夹的任务,并将其显示在相应的“运行”命令中。启动配置还可以将任务从同一工作空间文件夹引用为预启动任务。

Gulp,Grunt,Jake和npm的任务自动检测现在也支持多根工作区。此外,增强了任务贡献API,以支持不同工作空间文件夹的贡献任务。
请注意,多文件夹支持仍然需要内部人员构建。
语言
TypeScript 2.5.3
VS代码现在包括TypeScript 2.5.3。此更新带来了一些重要的修复和改进,重点是提取方法重构。
在JavaScript和TypeScript中导入路径快速建议
自VS代码1.9以来,JavaScript和TypeScript为IntelliSense提供了导入路径。但是,您可能不知道此功能,因为它需要在键入导入时手动触发IntelliSense。使用VS代码1.17,我们会在您开始键入import或require路径时立即自动显示模块和路径建议:

自动检测TypeScript手表构建任务
现在,TypeScript会自动为tsconfig.json项目中的文件创建监视任务,以及正常的构建任务:

JavaScript和TypeScript IntelliSense现在支持Markdown
JavaScript和TypeScript的建议和参数提示现在可以呈现Markdown内容。

Visual Studio Code v1.17的更多相关文章
- Ubuntu 14.04 下使用微软的跨平台轻量级开发神器 Visual Studio Code
因为 Visual Studio Code 不断更新,官方最新 v1.32 的 .deb 包已经不能用于 Ubuntu 14.04 直接安装了. 下载 v1.31 的 deb 包安装即可:https: ...
- 使用Visual Studio Code搭建TypeScript开发环境
使用Visual Studio Code搭建TypeScript开发环境 1.TypeScript是干什么的 ? TypeScript是由微软Anders Hejlsberg(安德斯·海尔斯伯格,也是 ...
- crossplatform---Nodejs in Visual Studio Code 10.IISNode
1.开始 Nodejs in Visual Studio Code 08.IIS : http://www.cnblogs.com/mengkzhaoyun/p/5410185.html 参考此篇内容 ...
- C# on Visual Studio Code
installation Download .NET Core SDK installer and install it. https://www.microsoft.com/net/download ...
- Nodejs in Visual Studio Code 10.IISNode
1.开始 Nodejs in Visual Studio Code 08.IIS : http://www.cnblogs.com/mengkzhaoyun/p/5410185.html 参考此篇内容 ...
- Visual Studio Code使用typings拓展自动补全功能
转自:http://blog.csdn.net/liyijun4114/article/details/51658087 参考来源: 官方介绍: https://code.visualstudio.c ...
- Visual Studio Code中配置GO开发环境
在Visual Studio Code中配置GO开发环境 一.GO语言安装 详情查看:GO语言下载.安装.配置 二.GoLang插件介绍 对于Visual Studio Code开发工具,有一款优秀的 ...
- 【实验手册】使用Visual Studio Code 开发.NET Core应用程序
.NET Core with Visual Studio Code 目录 概述... 2 先决条件... 2 练习1: 安装和配置.NET Core以及Visual Studio Code 扩展... ...
- 开发者说 | 使用Visual Studio Code编译、调试Apollo项目
转载地址:https://mp.weixin.qq.com/s?__biz=MzI1NjkxOTMyNQ==&mid=2247484266&idx=1&sn=d6bcd4842 ...
随机推荐
- EnableViewState 属性
原文发布时间为:2009-10-25 -- 来源于本人的百度文章 [由搬家工具导入] 指示是否在页请求之间保持视图状态。如果要保持视图状态,则为 true;否则为 false。默认值为 true。 自 ...
- quartz的配置
Quartz.Net中的概念:计划者(IScheduler).工作(IJob).触发器(Trigger).给计划者一个工作,让他在Trigger(什么条件下做这件事)触发的条件下执行这个工作 将要定时 ...
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---53
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- Java平台下的gitignore文件
*.bak*.txt*.vm.gitignore#svn.svn/# built application files*.apk*.ap_ # files for the dex VM*.dex # J ...
- 安卓全屏状态下键盘充满屏幕留不出ui控件的解决办法附edittext和键盘的属性
1.我们先看看常用和不常用的属性值(Edittext) android:inputType参数类型说明 android:inputType="none"--输入普通字符 andro ...
- Codeforces Gym100971 K.Palindromization-回文串 (IX Samara Regional Intercollegiate Programming Contest Russia, Samara, March 13)
这个题就是从字符串中删除一个字符,然后剩下的是回文串. 我写的代码虽然长得好看,但是循环里面的比较条件容易想错,太智障了... 一开始写的是计数比较,但是有的时候下标相同的也比较了,为了简单一些,直接 ...
- NULL和唯一约束UNIQUE的对应关系
NULL和唯一约束UNIQUE的对应关系 在数据库中,NULL表示列值为空.唯一约束UNIQUE规定指定列的值必须是唯一的,值和值之间都不能相同.这个时候,就出现一个问题,NULL和NULL算是相 ...
- PHP message: PHP Fatal error: require(): Failed opening required
PHP message: PHP Warning: require(/data/wwwroot/blog.sgfoot.com/bootstrap/autoload.php): failed to o ...
- devicemapper: Error running deviceCreate (ActivateDevice) dm_task_run failed
在一台新机子上面,docker处理完lvs数据卷之后,启动docker服务时,出现了启动失败,失败信息如下: [root@hxin221 ~]# systemctl status docker ● d ...
- cordova 中de.sitewaerts.cordova.documentviewer 插件 看pdf图片缩略图与实际图片不一致
//if (document == nil) // Unarchive failed so create a new ReaderDocument object //{ document = [[Re ...



