固执己见的代码格式化程序Prettier最近发布了它的第二个主要迭代
固执己见的代码格式化程序Prettier最近发布了它的第二个主要迭代。 前端2.0增加了对类型脚本3.8的支持。 新的Pretier还致力于提供更好的默认值、更好的CLI和更好的启发式方法。
现在,Pretier支持Type脚本3.8版本中包含的新语法,包括纯类型的导入和导出、ECMAScript私有字段和导出*作为ns语法。
新的只输入和导出类型脚本语法使开发人员能够导入用于类型注释和声明的声明:
类型脚本3.8新支持阶段3ECMAScript的私有字段建议。 私有字段是类定义中标识符前加#的字段:
新的Pretier还修复了几个与Type脚本相关的格式边缘案例,涉及复杂类型、注释和其他。 改进的Type脚本语法支持正受到开发人员的积极欢迎。 例如,一个推特用户说:
当事情与你的工作相一致时,这是令人惊奇的:)。 就像这个星期五,我们正在讨论什么时候将Pretier升级到类型脚本3.8,这里是:)。 太棒了
前端2.0更改了尾随Comma、箭头Parens和Line选项结束的默认值。 随着Pretier2.0,尾随逗号成为默认,如ECMAScript5所允许的。 前者的默认是由于希望保留到IE8浏览器的兼容性。 新的默认值可以通过配置带有{“尾随Comma”:“无”}的Pretier恢复到以前的值。
Pretier箭头Parens配置选项现在默认为总是。 由此产生的格式变化如下:
看似微小的变化将更好地为类型脚本开发人员服务,因为包装箭头函数参数可以更容易地添加类型注释。 此外,包装括号涵盖曼努埃尔·比赫在Twitter上总结的许多其他常见模式如下:
线配置选项的前端现在默认为lf。 在前面的默认情况下,Pretier保留了给定文件中已经存在的行尾的任何风味。 在不同操作系统上有贡献者的git存储库中,这在某些情况下导致了大的gitdiff结果,并使文件的逐行历史记录(git责备)更难探索。
Prettier2.0的CLI现在试图将glob解析为文字文件名,然后将它们视为globs。 更改的目的是解决Windows和Linux文件名之间的差异,后者几乎可以包含任何字符。
新的CLI语法最后扩展了目录,包括.,从而允许开发人员编写更漂亮的-写。 格式化当前目录及其子目录中所有受支持的文件。
Pretier2.0包括改进的方法链断裂启发式。 新的启发式是基于链中调用参数的复杂性。 以下代码格式为Pretier1.19:
现格式如下:
此外,Pretier改进了其启发式处理JS Doc类型转换。 由于Type脚本可能使用JS Doc类型获取类型信息(例如,当使用选项运行时-检查Js),重新格式化JS Doc有时会导致bug报告。 新的启发式方法如下:
新的Pretier还带来了大量的变化,改进了对杂项文件格式的处理,如Flow、CSS、Vue、Angular、GraphQL、Markdown等。
Pretier是一个独立的代码格式化程序,它删除了原始样式,并确保输出的代码符合一致的样式。 通过将Java脚本(和其他受支持的语言)解析成抽象语法树(AST)和打印回AST来保证一致性。 虽然Prettier是可配置的,但它拒绝添加配置选项,因为它的主要目标是结束开发人员之间关于代码样式的参数。