Scalastyle Scala代码风格检测

记录下Scalastyle规则,方便查询。内容比较多,使用Ctrl + F 输入需要查询的检查器进行搜索查询。

目录

介绍

规则

使用示例

Maven集成Scalastyle

Spark的Scalastyle-config.xml


介绍

Scalastyle 是专门针对Scala代码开发的轻巧的code style检测工具,类似于Java代码检查工具Checkstyle、Findbugs等。可以在Maven中集成到项目中,方便代码风格的检测。

最下面附上了Spark2.4.3的 Scalastyle 配置代码,可以借鉴。

Scalastyle常用关键字 //scalastyle:on//scalastyle:off,如:

//scalastyle:on println
	if (args.length < 2) {
	  println("Usage:")
	  println("DRIVER_MEMORY=[mem] spark-submit " +
		"com.github.ehiggs.spark.terasort.TeraGen " +
		"spark-terasort-1.0-SNAPSHOT-with-dependencies.jar " +
		"[output-size] [output-directory]")
	  println(" ")
	  println("Example:")
	  println("DRIVER_MEMORY=50g spark-submit " +
		"com.github.ehiggs.spark.terasort.TeraGen " +
		"spark-terasort-1.0-SNAPSHOT-with-dependencies.jar " +
		"100G file:///scratch/username/terasort_in")
	  System.exit(0)
	}
//scalastyle:off println

规则

官网说明:已实现的规则 

目前已实现规则有69条

检查器 解释
org.scalastyle.file.FileLengthChecker 检查文件中的行数
org.scalastyle.file.FileLineLengthChecker 检查一行中的字符数
org.scalastyle.file.FileTabChecker 检查文件中是否有标签
org.scalastyle.file.HeaderMatchesChecker 检查每个文件的前几行与文本匹配
org.scalastyle.file.IndentationChecker 检查行是否由Tab的倍数缩进
org.scalastyle.file.NewLineAtEofChecker 检查文件是否以换行符结尾
org.scalastyle.file.NoNewLineAtEofChecker 检查文件不是以换行符结尾
org.scalastyle.file.RegexChecker 检查正则表达式是否匹配
org.scalastyle.file.WhitespaceEndOfLineChecker 检查行尾没有空格
org.scalastyle.scalariform.BlockImportChecker 检查导入块是否使用
org.scalastyle.scalariform.ClassNamesChecker 检查类名是否与正则表达式匹配
org.scalastyle.scalariform.ClassTypeParameterChecker 检查类的类型参数与正则表达式匹配
org.scalastyle.scalariform.CovariantEqualsChecker 检查类和对象在没有覆盖的情况下定义了相等(java.lang.object)
org.scalastyle.scalariform.CyclomaticComplexityChecker 检查方法的参数复杂度是否超过设定值
org.scalastyle.scalariform.DeprecatedJavaChecker 检查应该用Scala @deprecated代替Java @Deprecated
org.scalastyle.scalariform.DisallowSpaceAfterTokenChecker 检查某些既定标记后不允许使用空格
org.scalastyle.scalariform.DisallowSpaceBeforeTokenChecker 检查某些既定标记前不允许使用空格
org.scalastyle.scalariform.EmptyClassChecker 检查类或抽象类没有成员,则可以省略大括号
org.scalastyle.scalariform.EmptyInterpolatedStringChecker 检查是否有对字符串插入空值
org.scalastyle.scalariform.EnsureSingleSpaceAfterTokenChecker 检查某些既定标记后是否有空间
org.scalastyle.scalariform.EnsureSingleSpaceBeforeTokenChecker 检查某些既定标记前是否有空间
org.scalastyle.scalariform.EqualsHashCodeChecker 检查如果一个类实现了或等于Hash,那它应该实现另一个类
org.scalastyle.scalariform.FieldNamesChecker 检查字段名是否与正则表达式匹配
org.scalastyle.scalariform.ForBraceChecker 检查for是否使用大括号
org.scalastyle.scalariform.IfBraceChecker 检查if是否使用大括号
org.scalastyle.scalariform.IllegalImportsChecker 检查类没有导入某些类
org.scalastyle.scalariform.ImportGroupingChecker 检查导入是否分组
org.scalastyle.scalariform.ImportOrderChecker 检查是否根据样式配置对导入进行分组和排序
org.scalastyle.scalariform.LowercasePatternMatchChecker 检查case语句模式匹配是否为小写,因为这可能导致混淆
org.scalastyle.scalariform.MagicNumberChecker 检查魔数是否使用var定义
org.scalastyle.scalariform.MethodArgumentNamesChecker 检查方法参数名是否与正则表达式匹配
org.scalastyle.scalariform.MethodLengthChecker 检查方法不超过最大长度
org.scalastyle.scalariform.MethodNamesChecker 检查方法名是否与正则表达式匹配
org.scalastyle.scalariform.MultipleStringLiteralsChecker 检查字符串文字没有多次出现
org.scalastyle.scalariform.NamedArgumentChecker 检查参数是否命名
org.scalastyle.scalariform.NoCloneChecker 检查类和对象没有定义clone()方法
org.scalastyle.scalariform.NoFinalizeChecker 检查类和对象是否定义了Finish()方法
org.scalastyle.scalariform.NoWhitespaceAfterLeftBracketChecker 检查左括号‘[’后没有空格
org.scalastyle.scalariform.NoWhitespaceBeforeLeftBracketChecker 检查左括号‘[’之前没有空格
org.scalastyle.scalariform.NoWhitespaceBeforeRightBracketChecker 检查右括号“]”之前没有空格
org.scalastyle.scalariform.NonASCIICharacterChecker 检查是否使用非ASCII字符(Unicode字符)
org.scalastyle.scalariform.NotImplementedErrorUsage 检查代码是否有 ??? 操作符
org.scalastyle.scalariform.NullChecker 检查是否使用NULL
org.scalastyle.scalariform.NumberOfMethodsInTypeChecker 检查一个类/特性/对象是否申明太多的方法
org.scalastyle.scalariform.NumberOfTypesChecker 检查文件中声明的类型是否过多
org.scalastyle.scalariform.ObjectNamesChecker 检查对象名称是否与正则表达式匹配
org.scalastyle.scalariform.OverrideJavaChecker 检查java@重写是否被使用
org.scalastyle.scalariform.PackageNamesChecker 检查包名是否与正则表达式匹配
org.scalastyle.scalariform.PackageObjectNamesChecker 检查包对象名是否与正则表达式匹配
org.scalastyle.scalariform.ParameterNumberChecker 检查方法的参数个数是否超过设置数量
org.scalastyle.scalariform.PatternMatchAlignChecker 检查模式匹配箭头对齐
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

訾零

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值