首页 > 解决方案 > Scalafmt 包名检查器

问题描述

我在 scalariform 中找到了一个很好的规则来检查包名称,如下所示:

<check enabled="true" class="org.scalastyle.scalariform.PackageNamesChecker" level="warning">
 <parameters>
  <parameter name="regex">^[a-z][A-Za-z]*$</parameter>
 </parameters>
</check>

但是,我在文档中找不到 scalafmt 的相应规则。有没有类似的东西?

标签: scalacode-formattingrulespackage-namescalariform

解决方案


据我所知,Scalafmt只是一个代码格式化程序,这意味着它不会标记样式错误,而是根据您设置的预定义规则重新格式化您的代码(例如,在括号后添加新行,对齐 case 语句, ETC)。它的目标只是格式化代码,使其在开发人员之间看起来一致。

另一方面,Scalastyle(带有 Scalariform)被定义为:

Scalastyle 检查您的 Scala 代码并指出它的潜在问题。

因此,它定义了“检查”规则,就像您在问题中显示的那样,以警告您您的代码不遵守这些规则这一事实。但它不会根据这些规则重写/重新格式化您的代码。它更像是一个 linting 工具,而不是一个代码格式化程序。此外,它的范围更广,因为它提供了比格式化更多的规则:例如,它可以检查您是否使用nullwith NullChecker

请注意,您可以同时使用两者(这通常是一个很好的做法),只要您不定义相互矛盾的规则!


推荐阅读