[3.4.0-map-sdk] code style
This commit is contained in:
@@ -4,9 +4,9 @@ build:
|
||||
config:
|
||||
validation: true
|
||||
warningsAsErrors: false
|
||||
checkExhaustiveness: false
|
||||
# checkExhaustiveness: false
|
||||
# when writing own rules with new properties, exclude the property path e.g.: 'my_rule_set,.*>.*>[my_property]'
|
||||
excludes: ''
|
||||
excludes: 'custom-checks.*'
|
||||
|
||||
processors:
|
||||
active: true
|
||||
@@ -49,24 +49,24 @@ comments:
|
||||
AbsentOrWrongFileLicense: #报告每个没有所需许可证标头的Kotlin源文件
|
||||
active: false
|
||||
licenseTemplateFile: 'license.template'
|
||||
licenseTemplateIsRegex: false
|
||||
# licenseTemplateIsRegex: false
|
||||
CommentOverPrivateFunction: #报告private函数的注释和文档
|
||||
active: false
|
||||
CommentOverPrivateProperty: #报告私有属性的注释和文档
|
||||
active: false
|
||||
DeprecatedBlockTag: #报告注释中使用@deprecated块标记,可以使用@ReplaceWith annotations
|
||||
active: false
|
||||
# DeprecatedBlockTag: #报告注释中使用@deprecated块标记,可以使用@ReplaceWith annotations
|
||||
# active: false
|
||||
EndOfSentenceFormat: #验证KDoc注释的第一句话的结尾
|
||||
active: false
|
||||
endOfSentenceFormat: '([.?!][ \t\n\r\f<])|([.?!:]$)'
|
||||
KDocReferencesNonPublicProperty: #报告任何引用类的非公共属性的KDoc注释
|
||||
active: false
|
||||
# KDocReferencesNonPublicProperty: #报告任何引用类的非公共属性的KDoc注释
|
||||
# active: false
|
||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
||||
OutdatedDocumentation: #报告任何具有与声明签名不匹配的KDoc的类、函数或构造函数
|
||||
active: false
|
||||
matchTypeParameters: true
|
||||
matchDeclarationsOrder: true
|
||||
allowParamOnConstructorProperties: false
|
||||
# OutdatedDocumentation: #报告任何具有与声明签名不匹配的KDoc的类、函数或构造函数
|
||||
# active: false
|
||||
# matchTypeParameters: true
|
||||
# matchDeclarationsOrder: true
|
||||
# allowParamOnConstructorProperties: false
|
||||
UndocumentedPublicClass: #报告没有所需文档的公共类、对象和接口
|
||||
active: false
|
||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
||||
@@ -74,101 +74,101 @@ comments:
|
||||
searchInInnerClass: true
|
||||
searchInInnerObject: true
|
||||
searchInInnerInterface: true
|
||||
searchInProtectedClass: false
|
||||
# searchInProtectedClass: false
|
||||
UndocumentedPublicFunction: #报告任何没有所需文档的公共方法
|
||||
active: false
|
||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
||||
searchProtectedFunction: false
|
||||
# searchProtectedFunction: false
|
||||
UndocumentedPublicProperty: #报告任何没有所需文档的公共字段
|
||||
active: false
|
||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
||||
searchProtectedProperty: false
|
||||
# searchProtectedProperty: false
|
||||
|
||||
complexity:
|
||||
active: true
|
||||
CognitiveComplexMethod: #报告复杂方法
|
||||
active: false
|
||||
allowedComplexity: 15
|
||||
# CognitiveComplexMethod: #报告复杂方法
|
||||
# active: false
|
||||
# allowedComplexity: 15
|
||||
ComplexCondition: #报告复杂条件
|
||||
active: false
|
||||
allowedConditions: 4
|
||||
# allowedConditions: 4
|
||||
ComplexInterface: #包含太多函数和/或属性的复杂接口表明该接口一次处理太多事情。接口应该遵循单一责任原则,以鼓励该接口的实现不要同时处理太多事情
|
||||
active: false
|
||||
allowedDefinitions: 10
|
||||
# allowedDefinitions: 10
|
||||
includeStaticDeclarations: false
|
||||
includePrivateDeclarations: false
|
||||
ignoreOverloaded: false
|
||||
# ignoreOverloaded: false
|
||||
|
||||
#该规则使用McCabe的循环复杂性(MCC)度量来测量函数源代码中线性独立路径的数量{https://www.ndepend.com/docs/code-metrics#CC}
|
||||
CyclomaticComplexMethod: #复杂的方法很难理解和阅读。复杂方法的副作用可能并不明显。更喜欢把复杂的方法分解成更小的方法,这样更容易理解。较小的方法也可以命名得更清晰,从而提高代码的可读性。
|
||||
active: true
|
||||
allowedComplexity: 14
|
||||
ignoreSingleWhenExpression: false
|
||||
ignoreSimpleWhenEntries: false
|
||||
ignoreNestingFunctions: false
|
||||
ignoreLocalFunctions: false
|
||||
nestingFunctions:
|
||||
- 'also'
|
||||
- 'apply'
|
||||
- 'forEach'
|
||||
- 'isNotNull'
|
||||
- 'ifNull'
|
||||
- 'let'
|
||||
- 'run'
|
||||
- 'use'
|
||||
- 'with'
|
||||
# CyclomaticComplexMethod: #复杂的方法很难理解和阅读。复杂方法的副作用可能并不明显。更喜欢把复杂的方法分解成更小的方法,这样更容易理解。较小的方法也可以命名得更清晰,从而提高代码的可读性。
|
||||
# active: true
|
||||
# allowedComplexity: 14
|
||||
# ignoreSingleWhenExpression: false
|
||||
# ignoreSimpleWhenEntries: false
|
||||
# ignoreNestingFunctions: false
|
||||
# ignoreLocalFunctions: false
|
||||
# nestingFunctions:
|
||||
# - 'also'
|
||||
# - 'apply'
|
||||
# - 'forEach'
|
||||
# - 'isNotNull'
|
||||
# - 'ifNull'
|
||||
# - 'let'
|
||||
# - 'run'
|
||||
# - 'use'
|
||||
# - 'with'
|
||||
LabeledExpression: #报告已标记的表达式
|
||||
active: false
|
||||
ignoredLabels: []
|
||||
LargeClass: #报告大型类
|
||||
active: true
|
||||
allowedLines: 600
|
||||
# allowedLines: 600
|
||||
LongMethod: #报告大方法
|
||||
active: true
|
||||
allowedLines: 60
|
||||
# allowedLines: 60
|
||||
LongParameterList: #报告参数超过特定阈值的函数和构造函数。
|
||||
active: true
|
||||
allowedFunctionParameters: 6
|
||||
allowedConstructorParameters: 15
|
||||
# allowedFunctionParameters: 6
|
||||
# allowedConstructorParameters: 15
|
||||
ignoreDefaultParameters: false
|
||||
ignoreDataClasses: true
|
||||
ignoreAnnotatedParameter: []
|
||||
# ignoreAnnotatedParameter: []
|
||||
MethodOverloading: #报告经常重载的方法
|
||||
active: false
|
||||
allowedOverloads: 6
|
||||
# allowedOverloads: 6
|
||||
NamedArguments: #报告参数超过某个阈值且全部未命名的函数调用。参数过多的调用更难理解,因此命名参数会有所帮助。
|
||||
active: false
|
||||
allowedArguments: 3
|
||||
ignoreArgumentsMatchingNames: false
|
||||
# allowedArguments: 3
|
||||
# ignoreArgumentsMatchingNames: false
|
||||
NestedBlockDepth: #报告函数中嵌套深度过大
|
||||
active: true
|
||||
allowedDepth: 4
|
||||
NestedScopeFunctions: #避免嵌套作用域函数
|
||||
active: false
|
||||
allowedDepth: 1
|
||||
functions:
|
||||
- 'kotlin.apply'
|
||||
- 'kotlin.run'
|
||||
- 'kotlin.with'
|
||||
- 'kotlin.let'
|
||||
- 'kotlin.also'
|
||||
# allowedDepth: 4
|
||||
# NestedScopeFunctions: #避免嵌套作用域函数
|
||||
# active: false
|
||||
# allowedDepth: 1
|
||||
# functions:
|
||||
# - 'kotlin.apply'
|
||||
# - 'kotlin.run'
|
||||
# - 'kotlin.with'
|
||||
# - 'kotlin.let'
|
||||
# - 'kotlin.also'
|
||||
ReplaceSafeCallChainWithRun: #不可为null的类型上的安全调用链是冗余的,可以通过将冗余的安全调用封装在run{}块中来删除 {xxx?.run}
|
||||
active: false
|
||||
StringLiteralDuplication: #规则检测并报告重复的字符串文字
|
||||
active: false
|
||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
||||
allowedDuplications: 2
|
||||
# allowedDuplications: 2
|
||||
ignoreAnnotation: true
|
||||
allowedWithLengthLessThan: 5
|
||||
# allowedWithLengthLessThan: 5
|
||||
ignoreStringsRegex: '$^'
|
||||
TooManyFunctions: #此规则报告包含过多函数的文件、类、接口、对象和枚举。每个元素可以配置有不同的阈值。
|
||||
active: true
|
||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
||||
allowedFunctionsPerFile: 11
|
||||
allowedFunctionsPerClass: 11
|
||||
allowedFunctionsPerInterface: 11
|
||||
allowedFunctionsPerObject: 11
|
||||
allowedFunctionsPerEnum: 11
|
||||
# allowedFunctionsPerFile: 11
|
||||
# allowedFunctionsPerClass: 11
|
||||
# allowedFunctionsPerInterface: 11
|
||||
# allowedFunctionsPerObject: 11
|
||||
# allowedFunctionsPerEnum: 11
|
||||
ignoreDeprecated: false
|
||||
ignorePrivate: false
|
||||
ignoreOverridden: false
|
||||
@@ -178,20 +178,20 @@ coroutines:
|
||||
active: true
|
||||
GlobalCoroutineUsage:
|
||||
active: false
|
||||
InjectDispatcher: #始终使用依赖项注入来注入调度器,以便于测试
|
||||
active: true
|
||||
dispatcherNames:
|
||||
- 'IO'
|
||||
- 'Default'
|
||||
- 'Unconfined'
|
||||
# InjectDispatcher: #始终使用依赖项注入来注入调度器,以便于测试
|
||||
# active: true
|
||||
# dispatcherNames:
|
||||
# - 'IO'
|
||||
# - 'Default'
|
||||
# - 'Unconfined'
|
||||
RedundantSuspendModifier: #suspend修饰符只能在需要的地方使用,否则该函数只能从其他挂起函数中使用。这不必要地限制了函数的使用,应该通过删除不需要的suspend修饰符来避免
|
||||
active: true
|
||||
SleepInsteadOfDelay: #报告Thread.sleep在挂起函数和协同程序块中的使用情况。由于协程的轻量级性质,一个线程可以同时包含多个协程,因此如果一个协程调用thread.sleep,它可能会停止执行不相关的协程,并导致不可预测的行为。
|
||||
active: true
|
||||
SuspendFunSwallowedCancellation: #不应在runCatching的lambda块内部调用suspend函数
|
||||
active: false
|
||||
SuspendFunWithCoroutineScopeReceiver: #将CoroutineScope用作接收器的挂起函数不应标记为挂起。
|
||||
active: false
|
||||
# SleepInsteadOfDelay: #报告Thread.sleep在挂起函数和协同程序块中的使用情况。由于协程的轻量级性质,一个线程可以同时包含多个协程,因此如果一个协程调用thread.sleep,它可能会停止执行不相关的协程,并导致不可预测的行为。
|
||||
# active: true
|
||||
# SuspendFunSwallowedCancellation: #不应在runCatching的lambda块内部调用suspend函数
|
||||
# active: false
|
||||
# SuspendFunWithCoroutineScopeReceiver: #将CoroutineScope用作接收器的挂起函数不应标记为挂起。
|
||||
# active: false
|
||||
SuspendFunWithFlowReturnType: #从kotlin.coroutines.Flow返回Flow的函数不应标记为挂起,简单地调用一个返回Flow的函数的行为不应该有任何副作用。只有当针对返回的Flow开始收集时,才应该实际完成工作。
|
||||
active: true
|
||||
|
||||
@@ -220,8 +220,8 @@ empty-blocks:
|
||||
active: true
|
||||
EmptyInitBlock: #报告为空的init块。空代码块没有任何作用,应该删除
|
||||
active: true
|
||||
EmptyKotlinFile: #报告为空的kotlin文件。空代码块没有任何作用,应该删除
|
||||
active: true
|
||||
# EmptyKotlinFile: #报告为空的kotlin文件。空代码块没有任何作用,应该删除
|
||||
# active: true
|
||||
EmptySecondaryConstructor: #报告为空的辅助构造函数。空代码块没有任何作用,应该删除
|
||||
active: true
|
||||
EmptyTryBlock: #报告为空的try块。空代码块没有任何作用,应该删除
|
||||
@@ -245,8 +245,8 @@ exceptions:
|
||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
||||
NotImplementedDeclaration: #此规则报告引发的所有NotImplementedError类型的异常。它还报告所有TODO(..)函数。这表明功能仍在开发中,无法正常工作。这两种声明都只能作为临时声明,不应放入生产环境中
|
||||
active: false
|
||||
ObjectExtendsThrowable: #避免抛出单例Throwable
|
||||
active: false
|
||||
# ObjectExtendsThrowable: #避免抛出单例Throwable
|
||||
# active: false
|
||||
PrintStackTrace: #打印堆栈
|
||||
active: true
|
||||
RethrowCaughtException: #重新抛出异常
|
||||
@@ -304,9 +304,9 @@ exceptions:
|
||||
|
||||
naming:
|
||||
active: true
|
||||
BooleanPropertyNaming:
|
||||
active: false
|
||||
allowedPattern: '^(is|has|are)'
|
||||
# BooleanPropertyNaming:
|
||||
# active: false
|
||||
# allowedPattern: '^(is|has|are)'
|
||||
ClassNaming:
|
||||
active: true
|
||||
classPattern: '[A-Z][a-zA-Z0-9]*'
|
||||
@@ -321,12 +321,12 @@ naming:
|
||||
ForbiddenClassName:
|
||||
active: false
|
||||
forbiddenName: []
|
||||
FunctionNameMaxLength:
|
||||
active: false
|
||||
maximumFunctionNameLength: 30
|
||||
FunctionNameMinLength:
|
||||
active: false
|
||||
minimumFunctionNameLength: 3
|
||||
# FunctionNameMaxLength:
|
||||
# active: false
|
||||
# maximumFunctionNameLength: 30
|
||||
# FunctionNameMinLength:
|
||||
# active: false
|
||||
# minimumFunctionNameLength: 3
|
||||
FunctionNaming:
|
||||
active: true
|
||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
||||
@@ -339,29 +339,29 @@ naming:
|
||||
InvalidPackageDeclaration:
|
||||
active: true
|
||||
rootPackage: ''
|
||||
requireRootInDeclaration: false
|
||||
LambdaParameterNaming:
|
||||
active: false
|
||||
parameterPattern: '[a-z][A-Za-z0-9]*|_'
|
||||
# requireRootInDeclaration: false
|
||||
# LambdaParameterNaming:
|
||||
# active: false
|
||||
# parameterPattern: '[a-z][A-Za-z0-9]*|_'
|
||||
MatchingDeclarationName:
|
||||
active: true
|
||||
mustBeFirst: true
|
||||
multiplatformTargets:
|
||||
- 'ios'
|
||||
- 'android'
|
||||
- 'js'
|
||||
- 'jvm'
|
||||
- 'native'
|
||||
- 'iosArm64'
|
||||
- 'iosX64'
|
||||
- 'macosX64'
|
||||
- 'mingwX64'
|
||||
- 'linuxX64'
|
||||
# multiplatformTargets:
|
||||
# - 'ios'
|
||||
# - 'android'
|
||||
# - 'js'
|
||||
# - 'jvm'
|
||||
# - 'native'
|
||||
# - 'iosArm64'
|
||||
# - 'iosX64'
|
||||
# - 'macosX64'
|
||||
# - 'mingwX64'
|
||||
# - 'linuxX64'
|
||||
MemberNameEqualsClassName:
|
||||
active: true
|
||||
ignoreOverridden: true
|
||||
NoNameShadowing:
|
||||
active: true
|
||||
# NoNameShadowing:
|
||||
# active: true
|
||||
NonBooleanPropertyPrefixedWithIs:
|
||||
active: false
|
||||
ObjectPropertyNaming:
|
||||
@@ -393,58 +393,58 @@ performance:
|
||||
active: true
|
||||
ArrayPrimitive: #使用Array<Primitive>会导致隐含拳击和性能打击。更喜欢使用Kotlin专用的数组实例
|
||||
active: true
|
||||
CouldBeSequence: #由于每个调用都会创建一个新的列表,因此长链的收集操作将带来性能损失。请考虑使用序列
|
||||
active: false
|
||||
allowedOperations: 2
|
||||
# CouldBeSequence: #由于每个调用都会创建一个新的列表,因此长链的收集操作将带来性能损失。请考虑使用序列
|
||||
# active: false
|
||||
# allowedOperations: 2
|
||||
ForEachOnRange: #在一个范围内使用forEach可能会产生巨大的性能成本。因此,在大多数情况下,应该使用简单的for循环 (for example: {(1..10).forEach})
|
||||
active: true
|
||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
||||
SpreadOperator: #在大多数情况下,使用排列运算符会导致在调用方法之前创建数组的完整副本。这会带来非常高的性能损失
|
||||
active: true
|
||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
||||
UnnecessaryPartOfBinaryExpression: #仅在表达式仅使用以下运算符之一||或&&的情况下验证二进制表达式
|
||||
active: false
|
||||
# UnnecessaryPartOfBinaryExpression: #仅在表达式仅使用以下运算符之一||或&&的情况下验证二进制表达式
|
||||
# active: false
|
||||
UnnecessaryTemporaryInstantiation: #将基元类型转换为字符串时,请避免使用临时对象。与直接使用基元类型相比,这会降低性能。若要解决此问题,请删除包装类型
|
||||
active: true
|
||||
|
||||
#潜在错误规则集提供了检测潜在错误的规则。
|
||||
potential-bugs:
|
||||
active: true
|
||||
AvoidReferentialEquality: #检查平等
|
||||
active: true
|
||||
forbiddenTypePatterns:
|
||||
- 'kotlin.String'
|
||||
CastNullableToNonNullableType: #可空强转null
|
||||
active: false
|
||||
ignorePlatformTypes: true
|
||||
CastToNullableType: #将不安全的强制转换报告为可为null的类型。作为字符串?未填充,可能被误用为安全类型转换(如?字符串)
|
||||
active: false
|
||||
CharArrayToStringCall:
|
||||
active: false
|
||||
# AvoidReferentialEquality: #检查平等
|
||||
# active: true
|
||||
# forbiddenTypePatterns:
|
||||
# - 'kotlin.String'
|
||||
# CastNullableToNonNullableType: #可空强转null
|
||||
# active: false
|
||||
# ignorePlatformTypes: true
|
||||
# CastToNullableType: #将不安全的强制转换报告为可为null的类型。作为字符串?未填充,可能被误用为安全类型转换(如?字符串)
|
||||
# active: false
|
||||
# CharArrayToStringCall:
|
||||
# active: false
|
||||
Deprecation:
|
||||
active: false
|
||||
DontDowncastCollectionTypes: #检查集合向下类型转换,建议方法转换({list as MutableList} convert : {list.toMutableList()})
|
||||
active: false
|
||||
DoubleMutabilityForCollection: #MutableState可变var,不可变建议val
|
||||
active: true
|
||||
mutableTypes:
|
||||
- 'kotlin.collections.MutableList'
|
||||
- 'kotlin.collections.MutableMap'
|
||||
- 'kotlin.collections.MutableSet'
|
||||
- 'java.util.ArrayList'
|
||||
- 'java.util.LinkedHashSet'
|
||||
- 'java.util.HashSet'
|
||||
- 'java.util.LinkedHashMap'
|
||||
- 'java.util.HashMap'
|
||||
ElseCaseInsteadOfExhaustiveWhen: #当表达式包含else大小写时,即使它们有一组详尽的大小写,该规则也会报告
|
||||
active: false
|
||||
ignoredSubjectTypes: []
|
||||
# DontDowncastCollectionTypes: #检查集合向下类型转换,建议方法转换({list as MutableList} convert : {list.toMutableList()})
|
||||
# active: false
|
||||
# DoubleMutabilityForCollection: #MutableState可变var,不可变建议val
|
||||
# active: true
|
||||
# mutableTypes:
|
||||
# - 'kotlin.collections.MutableList'
|
||||
# - 'kotlin.collections.MutableMap'
|
||||
# - 'kotlin.collections.MutableSet'
|
||||
# - 'java.util.ArrayList'
|
||||
# - 'java.util.LinkedHashSet'
|
||||
# - 'java.util.HashSet'
|
||||
# - 'java.util.LinkedHashMap'
|
||||
# - 'java.util.HashMap'
|
||||
# ElseCaseInsteadOfExhaustiveWhen: #当表达式包含else大小写时,即使它们有一组详尽的大小写,该规则也会报告
|
||||
# active: false
|
||||
# ignoredSubjectTypes: []
|
||||
EqualsAlwaysReturnsTrueOrFalse: #报告始终返回true或false的equals()方法。
|
||||
active: true
|
||||
EqualsWithHashCodeExist: #当一个类重写equals()方法时,它也应该重写hashCode()方法
|
||||
active: true
|
||||
ExitOutsideMain: #报告主函数之外使用System.exit()、Runtime.exit()、Runtime.holt()和Kotlin的exitProcess()时的使用情况
|
||||
active: false
|
||||
# ExitOutsideMain: #报告主函数之外使用System.exit()、Runtime.exit()、Runtime.holt()和Kotlin的exitProcess()时的使用情况
|
||||
# active: false
|
||||
ExplicitGarbageCollectionCall: #报告所有显式触发垃圾回收器的调用。代码应该独立于垃圾收集器工作,并且不应该要求在某些时间点触发GC。
|
||||
active: true
|
||||
HasPlatformType: #必须在公共API中显式声明平台类型,以防止出现意外错误
|
||||
@@ -452,21 +452,21 @@ potential-bugs:
|
||||
|
||||
#此规则对使用@CheckReturnValue或@CheckResult注释的函数返回值但未以任何方式使用该值的实例发出警告Kotlin编译器通常不会对这种情况发出警告,所以这就是该规则背后的基本原理。
|
||||
IgnoredReturnValue:
|
||||
active: true
|
||||
restrictToConfig: true
|
||||
active: false
|
||||
# restrictToConfig: true
|
||||
returnValueAnnotations:
|
||||
- 'CheckResult'
|
||||
- '*.CheckResult'
|
||||
- 'CheckReturnValue'
|
||||
- '*.CheckReturnValue'
|
||||
ignoreReturnValueAnnotations:
|
||||
- 'CanIgnoreReturnValue'
|
||||
- '*.CanIgnoreReturnValue'
|
||||
returnValueTypes:
|
||||
- 'kotlin.sequences.Sequence'
|
||||
- 'kotlinx.coroutines.flow.*Flow'
|
||||
- 'java.util.stream.*Stream'
|
||||
ignoreFunctionCall: []
|
||||
# ignoreReturnValueAnnotations:
|
||||
# - 'CanIgnoreReturnValue'
|
||||
# - '*.CanIgnoreReturnValue'
|
||||
# returnValueTypes:
|
||||
# - 'kotlin.sequences.Sequence'
|
||||
# - 'kotlinx.coroutines.flow.*Flow'
|
||||
# - 'java.util.stream.*Stream'
|
||||
# ignoreFunctionCall: []
|
||||
ImplicitDefaultLocale: #格式化字符串或执行大小写转换时,更喜欢显式传递[java.util.Locale],而不是使用隐式默认值
|
||||
active: false
|
||||
ImplicitUnitReturnType: #使用表达式语句的函数具有隐式返回类型
|
||||
@@ -484,25 +484,25 @@ potential-bugs:
|
||||
ignoreOnClassesPattern: ''
|
||||
MapGetWithNotNullAssertionOperator: #使用非null断言运算符报告对map访问方法map[]或map.get()的调用!!。这可能会导致NullPointerException
|
||||
active: true
|
||||
MissingPackageDeclaration: #当缺少包声明时报告
|
||||
active: false
|
||||
excludes: ['**/*.kts']
|
||||
NullCheckOnMutableProperty: #报告对可变属性的null检查,因为这些属性的值可以在执行if语句后更改,从而使null检查无效
|
||||
active: false
|
||||
# MissingPackageDeclaration: #当缺少包声明时报告
|
||||
# active: false
|
||||
# excludes: ['**/*.kts']
|
||||
# NullCheckOnMutableProperty: #报告对可变属性的null检查,因为这些属性的值可以在执行if语句后更改,从而使null检查无效
|
||||
# active: false
|
||||
NullableToStringCall: #使用可能返回字符串“null”的可为null的接收器报告toString()调用
|
||||
active: false
|
||||
PropertyUsedBeforeDeclaration: #报告在声明之前使用的属性
|
||||
active: false
|
||||
# PropertyUsedBeforeDeclaration: #报告在声明之前使用的属性
|
||||
# active: false
|
||||
UnconditionalJumpStatementInLoop: #报告包含跳转语句的循环,这些语句在任何条件下都会跳转
|
||||
active: false
|
||||
UnnecessaryNotNullCheck: #使用requireNotNull或checkNotNull报告用户可以删除的不必要的非null检查。
|
||||
active: false
|
||||
# UnnecessaryNotNullCheck: #使用requireNotNull或checkNotNull报告用户可以删除的不必要的非null检查。
|
||||
# active: false
|
||||
UnnecessaryNotNullOperator: #报告用户可以删除的不必要的非null运算符用法(!!)
|
||||
active: true
|
||||
UnnecessarySafeCall: #报告用户可以删除的不必要的非null运算符用法(?)
|
||||
active: true
|
||||
UnreachableCatchBlock: #报告无法访问的捕获块。如果在上面的块中已经捕获到异常,则捕获块可能无法访问(Exception or Throwable)catch顺序
|
||||
active: true
|
||||
# UnreachableCatchBlock: #报告无法访问的捕获块。如果在上面的块中已经捕获到异常,则捕获块可能无法访问(Exception or Throwable)catch顺序
|
||||
# active: true
|
||||
UnreachableCode: #报告无法访问的代码。代码可能无法访问,因为它位于return、throw、continue或break表达式后面
|
||||
active: true
|
||||
UnsafeCallOnNullableType: #报告对可为null的类型的不安全调用
|
||||
@@ -510,8 +510,8 @@ potential-bugs:
|
||||
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**']
|
||||
UnsafeCast: #报告不安全的强制转换
|
||||
active: true
|
||||
UnusedUnaryOperator: #检测未使用的一元运算符
|
||||
active: true
|
||||
# UnusedUnaryOperator: #检测未使用的一元运算符
|
||||
# active: true
|
||||
UselessPostfixExpression: #报告未使用因而不必要的后缀表达式(++,--)
|
||||
active: true
|
||||
WrongEqualsTypeParameter: #报告接受错误类型参数的equals()方法
|
||||
@@ -520,25 +520,25 @@ potential-bugs:
|
||||
#{link https://detekt.dev/docs/rules/style#explicititlambdaparameter}
|
||||
style:
|
||||
active: true
|
||||
AbstractClassCanBeConcreteClass:
|
||||
active: true
|
||||
AbstractClassCanBeInterface:
|
||||
active: true
|
||||
AlsoCouldBeApply:
|
||||
active: false
|
||||
BracesOnIfStatements:
|
||||
active: false
|
||||
singleLine: 'never'
|
||||
multiLine: 'always'
|
||||
BracesOnWhenStatements:
|
||||
active: false
|
||||
singleLine: 'necessary'
|
||||
multiLine: 'consistent'
|
||||
CanBeNonNullable:
|
||||
active: false
|
||||
CascadingCallWrapping:
|
||||
active: false
|
||||
includeElvis: true
|
||||
# AbstractClassCanBeConcreteClass:
|
||||
# active: true
|
||||
# AbstractClassCanBeInterface:
|
||||
# active: true
|
||||
# AlsoCouldBeApply:
|
||||
# active: false
|
||||
# BracesOnIfStatements:
|
||||
# active: false
|
||||
# singleLine: 'never'
|
||||
# multiLine: 'always'
|
||||
# BracesOnWhenStatements:
|
||||
# active: false
|
||||
# singleLine: 'necessary'
|
||||
# multiLine: 'consistent'
|
||||
# CanBeNonNullable:
|
||||
# active: false
|
||||
# CascadingCallWrapping:
|
||||
# active: false
|
||||
# includeElvis: true
|
||||
ClassOrdering:
|
||||
active: false
|
||||
CollapsibleIfStatements:
|
||||
@@ -547,22 +547,22 @@ style:
|
||||
active: false
|
||||
conversionFunctionPrefix:
|
||||
- 'to'
|
||||
allowOperators: false
|
||||
# allowOperators: false
|
||||
DataClassShouldBeImmutable:
|
||||
active: false
|
||||
DestructuringDeclarationWithTooManyEntries:
|
||||
active: false
|
||||
maxDestructuringEntries: 3
|
||||
DoubleNegativeLambda:
|
||||
active: false
|
||||
negativeFunctions:
|
||||
- reason: 'Use `takeIf` instead.'
|
||||
value: 'takeUnless'
|
||||
- reason: 'Use `all` instead.'
|
||||
value: 'none'
|
||||
negativeFunctionNameParts:
|
||||
- 'not'
|
||||
- 'non'
|
||||
# DestructuringDeclarationWithTooManyEntries:
|
||||
# active: false
|
||||
# maxDestructuringEntries: 3
|
||||
# DoubleNegativeLambda:
|
||||
# active: false
|
||||
# negativeFunctions:
|
||||
# - reason: 'Use `takeIf` instead.'
|
||||
# value: 'takeUnless'
|
||||
# - reason: 'Use `all` instead.'
|
||||
# value: 'none'
|
||||
# negativeFunctionNameParts:
|
||||
# - 'not'
|
||||
# - 'non'
|
||||
EqualsNullCall:
|
||||
active: true
|
||||
EqualsOnSignatureLine:
|
||||
@@ -574,32 +574,32 @@ style:
|
||||
ExpressionBodySyntax:
|
||||
active: false
|
||||
includeLineWrapping: false
|
||||
ForbiddenAnnotation:
|
||||
active: false
|
||||
annotations:
|
||||
- reason: 'it is a java annotation. Use `Suppress` instead.'
|
||||
value: 'java.lang.SuppressWarnings'
|
||||
- reason: 'it is a java annotation. Use `kotlin.Deprecated` instead.'
|
||||
value: 'java.lang.Deprecated'
|
||||
- reason: 'it is a java annotation. Use `kotlin.annotation.MustBeDocumented` instead.'
|
||||
value: 'java.lang.annotation.Documented'
|
||||
- reason: 'it is a java annotation. Use `kotlin.annotation.Target` instead.'
|
||||
value: 'java.lang.annotation.Target'
|
||||
- reason: 'it is a java annotation. Use `kotlin.annotation.Retention` instead.'
|
||||
value: 'java.lang.annotation.Retention'
|
||||
- reason: 'it is a java annotation. Use `kotlin.annotation.Repeatable` instead.'
|
||||
value: 'java.lang.annotation.Repeatable'
|
||||
- reason: 'Kotlin does not support @Inherited annotation, see https://youtrack.jetbrains.com/issue/KT-22265'
|
||||
value: 'java.lang.annotation.Inherited'
|
||||
# ForbiddenAnnotation:
|
||||
# active: false
|
||||
# annotations:
|
||||
# - reason: 'it is a java annotation. Use `Suppress` instead.'
|
||||
# value: 'java.lang.SuppressWarnings'
|
||||
# - reason: 'it is a java annotation. Use `kotlin.Deprecated` instead.'
|
||||
# value: 'java.lang.Deprecated'
|
||||
# - reason: 'it is a java annotation. Use `kotlin.annotation.MustBeDocumented` instead.'
|
||||
# value: 'java.lang.annotation.Documented'
|
||||
# - reason: 'it is a java annotation. Use `kotlin.annotation.Target` instead.'
|
||||
# value: 'java.lang.annotation.Target'
|
||||
# - reason: 'it is a java annotation. Use `kotlin.annotation.Retention` instead.'
|
||||
# value: 'java.lang.annotation.Retention'
|
||||
# - reason: 'it is a java annotation. Use `kotlin.annotation.Repeatable` instead.'
|
||||
# value: 'java.lang.annotation.Repeatable'
|
||||
# - reason: 'Kotlin does not support @Inherited annotation, see https://youtrack.jetbrains.com/issue/KT-22265'
|
||||
# value: 'java.lang.annotation.Inherited'
|
||||
ForbiddenComment:
|
||||
active: false
|
||||
comments:
|
||||
- reason: 'Forbidden FIXME todo marker in comment, please fix the problem.'
|
||||
value: 'FIXME:'
|
||||
- reason: 'Forbidden STOPSHIP todo marker in comment, please address the problem before shipping the code.'
|
||||
value: 'STOPSHIP:'
|
||||
- reason: 'Forbidden TODO todo marker in comment, please do the changes.'
|
||||
value: 'TODO:'
|
||||
# comments:
|
||||
# - reason: 'Forbidden FIXME todo marker in comment, please fix the problem.'
|
||||
# value: 'FIXME:'
|
||||
# - reason: 'Forbidden STOPSHIP todo marker in comment, please address the problem before shipping the code.'
|
||||
# value: 'STOPSHIP:'
|
||||
# - reason: 'Forbidden TODO todo marker in comment, please do the changes.'
|
||||
# value: 'TODO:'
|
||||
allowedPatterns: ''
|
||||
ForbiddenImport:
|
||||
active: false
|
||||
@@ -612,9 +612,9 @@ style:
|
||||
value: 'kotlin.io.print'
|
||||
- reason: 'println does not allow you to configure the output stream. Use a logger instead.'
|
||||
value: 'kotlin.io.println'
|
||||
ForbiddenSuppress:
|
||||
active: false
|
||||
rules: []
|
||||
# ForbiddenSuppress:
|
||||
# active: false
|
||||
# rules: []
|
||||
ForbiddenVoid:
|
||||
active: true
|
||||
ignoreOverridden: false
|
||||
@@ -622,7 +622,7 @@ style:
|
||||
FunctionOnlyReturningConstant:
|
||||
active: true
|
||||
ignoreOverridableFunction: true
|
||||
ignoreActualFunction: true
|
||||
# ignoreActualFunction: true
|
||||
excludedFunctions: []
|
||||
LoopWithTooManyJumpStatements:
|
||||
active: true
|
||||
@@ -644,41 +644,41 @@ style:
|
||||
ignoreNamedArgument: true
|
||||
ignoreEnums: false
|
||||
ignoreRanges: false
|
||||
ignoreExtensionFunctions: true
|
||||
# ignoreExtensionFunctions: true
|
||||
MandatoryBracesLoops:
|
||||
active: false
|
||||
MaxChainedCallsOnSameLine:
|
||||
active: false
|
||||
maxChainedCalls: 5
|
||||
# MaxChainedCallsOnSameLine:
|
||||
# active: false
|
||||
# maxChainedCalls: 5
|
||||
MaxLineLength:
|
||||
active: true
|
||||
maxLineLength: 120
|
||||
excludePackageStatements: true
|
||||
excludeImportStatements: true
|
||||
excludeCommentStatements: false
|
||||
excludeRawStrings: true
|
||||
MayBeConstant:
|
||||
active: true
|
||||
# excludeRawStrings: true
|
||||
# MayBeConstant:
|
||||
# active: true
|
||||
ModifierOrder:
|
||||
active: true
|
||||
MultilineLambdaItParameter:
|
||||
active: false
|
||||
MultilineRawStringIndentation:
|
||||
active: false
|
||||
indentSize: 4
|
||||
trimmingMethods:
|
||||
- 'trimIndent'
|
||||
- 'trimMargin'
|
||||
# MultilineLambdaItParameter:
|
||||
# active: false
|
||||
# MultilineRawStringIndentation:
|
||||
# active: false
|
||||
# indentSize: 4
|
||||
# trimmingMethods:
|
||||
# - 'trimIndent'
|
||||
# - 'trimMargin'
|
||||
NestedClassesVisibility: #嵌套类从父类继承其可见性,通常用于实现嵌套在其中的类的本地功能。这些嵌套类的可见性不能高于其父类
|
||||
active: true
|
||||
NewLineAtEndOfFile:
|
||||
active: true
|
||||
NoTabs:
|
||||
active: false
|
||||
NullableBooleanCheck:
|
||||
active: false
|
||||
ObjectLiteralToLambda: #除了实现单个方法之外什么都不做的匿名对象可以用作lambda。
|
||||
active: true
|
||||
# NullableBooleanCheck:
|
||||
# active: false
|
||||
# ObjectLiteralToLambda: #除了实现单个方法之外什么都不做的匿名对象可以用作lambda。
|
||||
# active: true
|
||||
OptionalAbstractKeyword:
|
||||
active: true
|
||||
OptionalUnit:
|
||||
@@ -687,8 +687,8 @@ style:
|
||||
active: false
|
||||
ProtectedMemberInFinalClass:
|
||||
active: true
|
||||
RangeUntilInsteadOfRangeTo:
|
||||
active: false
|
||||
# RangeUntilInsteadOfRangeTo:
|
||||
# active: false
|
||||
RedundantExplicitType:
|
||||
active: false
|
||||
RedundantHigherOrderMapUsage:
|
||||
@@ -707,61 +707,61 @@ style:
|
||||
active: true
|
||||
SerialVersionUIDInSerializableClass:
|
||||
active: true
|
||||
SpacingAfterPackageDeclaration:
|
||||
active: false
|
||||
StringShouldBeRawString:
|
||||
active: false
|
||||
maxEscapedCharacterCount: 2
|
||||
ignoredCharacters: []
|
||||
# SpacingAfterPackageDeclaration:
|
||||
# active: false
|
||||
# StringShouldBeRawString:
|
||||
# active: false
|
||||
# maxEscapedCharacterCount: 2
|
||||
# ignoredCharacters: []
|
||||
ThrowsCount: #限制函数中抛出语句的数量,函数应该有明确的throw语句
|
||||
active: true
|
||||
max: 2
|
||||
excludeGuardClauses: false
|
||||
# excludeGuardClauses: false
|
||||
TrailingWhitespace:
|
||||
active: false
|
||||
TrimMultilineRawString:
|
||||
active: false
|
||||
trimmingMethods:
|
||||
- 'trimIndent'
|
||||
- 'trimMargin'
|
||||
# TrimMultilineRawString:
|
||||
# active: false
|
||||
# trimmingMethods:
|
||||
# - 'trimIndent'
|
||||
# - 'trimMargin'
|
||||
UnderscoresInNumericLiterals:
|
||||
active: false
|
||||
acceptableLength: 4
|
||||
allowNonStandardGrouping: false
|
||||
# acceptableLength: 4
|
||||
# allowNonStandardGrouping: false
|
||||
UnnecessaryAnnotationUseSiteTarget:
|
||||
active: false
|
||||
UnnecessaryApply:
|
||||
active: true
|
||||
UnnecessaryBackticks:
|
||||
active: false
|
||||
UnnecessaryBracesAroundTrailingLambda:
|
||||
active: false
|
||||
UnnecessaryFilter:
|
||||
active: true
|
||||
# UnnecessaryBackticks:
|
||||
# active: false
|
||||
# UnnecessaryBracesAroundTrailingLambda:
|
||||
# active: false
|
||||
# UnnecessaryFilter:
|
||||
# active: true
|
||||
UnnecessaryInheritance: #此规则报告不必要的超类型
|
||||
active: true
|
||||
UnnecessaryInnerClass:
|
||||
active: false
|
||||
# UnnecessaryInnerClass:
|
||||
# active: false
|
||||
UnnecessaryLet:
|
||||
active: false
|
||||
UnnecessaryParentheses:
|
||||
active: false
|
||||
allowForUnclearPrecedence: false
|
||||
UnusedImport:
|
||||
active: false
|
||||
UnusedParameter:
|
||||
active: true
|
||||
allowedNames: 'ignored|expected'
|
||||
# allowForUnclearPrecedence: false
|
||||
# UnusedImport:
|
||||
# active: false
|
||||
# UnusedParameter:
|
||||
# active: true
|
||||
# allowedNames: 'ignored|expected'
|
||||
UnusedPrivateClass:
|
||||
active: true
|
||||
UnusedPrivateMember:
|
||||
active: true
|
||||
allowedNames: ''
|
||||
UnusedPrivateProperty:
|
||||
active: true
|
||||
allowedNames: '_|ignored|expected|serialVersionUID'
|
||||
UseAnyOrNoneInsteadOfFind:
|
||||
active: true
|
||||
# UnusedPrivateProperty:
|
||||
# active: true
|
||||
# allowedNames: '_|ignored|expected|serialVersionUID'
|
||||
# UseAnyOrNoneInsteadOfFind:
|
||||
# active: true
|
||||
UseArrayLiteralsInAnnotations:
|
||||
active: true
|
||||
UseCheckNotNull:
|
||||
@@ -777,26 +777,26 @@ style:
|
||||
active: false
|
||||
UseIfInsteadOfWhen:
|
||||
active: false
|
||||
ignoreWhenContainingVariableDeclaration: false
|
||||
UseIsNullOrEmpty:
|
||||
active: true
|
||||
UseLet:
|
||||
active: false
|
||||
UseOrEmpty:
|
||||
active: true
|
||||
# ignoreWhenContainingVariableDeclaration: false
|
||||
# UseIsNullOrEmpty:
|
||||
# active: true
|
||||
# UseLet:
|
||||
# active: false
|
||||
# UseOrEmpty:
|
||||
# active: true
|
||||
UseRequire:
|
||||
active: true
|
||||
UseRequireNotNull:
|
||||
active: true
|
||||
UseSumOfInsteadOfFlatMapSize:
|
||||
active: false
|
||||
# UseSumOfInsteadOfFlatMapSize:
|
||||
# active: false
|
||||
UselessCallOnNotNull:
|
||||
active: true
|
||||
UtilityClassWithPublicConstructor:
|
||||
active: true
|
||||
VarCouldBeVal:
|
||||
active: true
|
||||
ignoreLateinitVar: false
|
||||
# ignoreLateinitVar: false
|
||||
WildcardImport:
|
||||
active: true
|
||||
excludeImports:
|
||||
|
||||
Reference in New Issue
Block a user