FCon7折倒计时最后一周:日程已上线70%!查看详情>>> 了解详情
写点什么

Visual Studio 现可使用 EditorConfig

  • 2017-01-15
  • 本文字数:1056 字

    阅读完需:约 3 分钟

Visual Studio 2017 的首个候选发布版(VS2017RC)中提供了支持 EditorConfig 标准的特性。秉承该标准可使开发人员一次性地定义一种编码风格,即可轻易地在不同的编辑器中使用该风格。另一显著优点是对于在 EditorConfig 文件中定义的风格,可由源代码控制系统进行保存,这避免了特定编辑器的对话框或配置中的风格丢失。VS2017 将支持对多种语言使用 EditorConfig 功能,包括 C#、Visual Basic、C++、JavaScript、F#和 TypeScript。

正如 Microsoft 的 Kasey Uhlenhuth 所介绍的,EditorConfig 的优点之一在于它是一种定义用于全解决方案范围内的宽泛标准,并额外提供了可用于特定项目或目录定义标准的 EditorConfig 文件。文件中可添加对编码样式(Code Formatting)规则和编码风格(Code Style)规则的定义。当前 VS20177RC 支持下列五种样式规则:

  1. indent_style
  2. indent_size
  3. tab_width
  4. end_of_line
  5. charset

当前尚不支持另两个广为使用的规则,即“trim_trailing_whitespace”和“insert_final_newline”。同样也可定义编码风格规则,并且在该机制得以实现后,可以根据严重程度(none/suggestion/warning/error)中断构建过程(当前 VS2017 中构建会继续进行)。按照 Microsoft 的说法,VS2017 RTM 版可能并将会更新 Visual Studio 中对 EditorConfig 支持的特性,目的在于通过更新过程提供完全符合规范的 EditorConfig 特性。

对于已有的源码树,为使开发人员按个人喜好定义的各种编码样式和编码风格规则生效,需要关闭并重新打开文件,或是去改变 EditorConfig 文件。Uhlenhuth 给出了一些用于快速应用规则的快捷键。

  • 更新编辑器中的单个文件:“Format Document”菜单,快捷键“CTRL-K, D”;
  • 应用更新到整个项目 / 解决方案中的所有文件:“Quick Actions”菜单,快捷键“CTRL-+”。

注意当存在 EditorConfig 文件时,文件规则将覆盖 Visual Studio 的“Tools | Options”菜单使用的快捷键定义。Mads Kristensen 实现了开源插件“EditorConfig Language Service”,使得在VS2017 中编辑EditorConfig 文件时可以利用上编辑器所提供的便利。当前得需要VS2017RC 才能使用编码样式与编码风格功能,但将该功能与构建系统集成的NuGet 软件包正在开发中。

(本文于2017 年1 月10 日更新,添加了语言支持和未来可用更新的信息。)

查看英文原文: Putting EditorConfig to Work in Visual Studio


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-01-15 18:002851
用户头像

发布了 227 篇内容, 共 69.7 次阅读, 收获喜欢 26 次。

关注

评论

发布
暂无评论
发现更多内容

年关将至

luojiahu

week10-总结

J

还不清楚Lambda的底层原理?一文帮你搞懂

后台技术汇

28天写作

产品训练营-第六课笔记

Geek_娴子

浅谈JavaScript常见的循环方式

devpoint

foreach for for...of

架构师训练营第10周课后作业

万有引力

外企时代已经过去?

李忠良

28天写作

创业失败启示录|茶之玄学

阿萌

28天写作 创业失败启示录 青城

小产品、连接和生态

孙苏勇

产品 产品定位

同城快递架构设计

Mars

CSS(九)——盒子的浮动与定位

程序员的时光

程序员 七日更 28天写作

项目管理知识标准体系

Ian哥

28天写作

机器学习笔记之:虽然还没明白到底是在干嘛,但竟然还觉得挺有意思的!

Nydia

怀着期待开启美好的一天「幻想短篇 23/28」

道伟

28天写作

【计算机内功修炼】八:函数运行时在内存中是什么样子?

码农的荒岛求生

高并发 内存 高性能 内存管理 运行时栈帧

LeetCode题解:433. 最小基因变化,BFS+生成所有可能新基因再匹配,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

mPaas上线应用检测

阿里云金融线TAM SRE专家服务团队

ios android RPC

NullPointerException 的处理新方式,Java14 真的太香了!

xcbeyond

Java java 14 新特性 28天写作

如何做到超预期供应

熊斌

28天写作

发布 Go Modules

Rayjun

go modules Go 语言

阿里架构师集一生内力编撰的笔记,到底有什么干货?

Java架构师迁哥

开发质量提升系列:表字段名称引发的血案

罗小龙

代码规范 28天写作

我的电脑嘲讽我!

IT蜗壳-Tango

七日更

《学会写作》学习笔记之如何选题

JiangX

28天写作

碎碎念之「创造力可能是新的生产力」

Justin

创意 28天写作 创造性思维

管事情的过程,如何聚焦并决策高价值的事?

一笑

管理 优先级队列 28天写作

【Vue2】文本无缝滚动

德育处主任

Vue 大前端 28天写作

week10-homework

J

管理笔记[2]:独裁者X与民主统治者Y

L3C老司机

28天瞎写的第二百三十三天:唯工具论的错误

树上

28天写作

GameStop: 究竟发生了什么?

lidaobing

28天写作 逼空

  • 扫码添加小助手
    领取最新资料包
Visual Studio现可使用EditorConfig_.NET_Jeff Martin_InfoQ精选文章