detekt蛇箱包

detekt snake case package

我将 detekt 添加到我的应用程序,但它抱怨我的包命名约定。

我使用包 snake_cased 和 class CamelCased。

例如:

package com.my_package

class MyClass

detekt 的输出如下:

NamingConventionViolation - [MyClass.kt] at com/my_package/MyClass.kt:1:1

我的命名约定配置如下:

NamingConventionViolation:
    active: true
    variablePattern: '^(_)?[a-z$][a-zA-Z[=12=]-9]*$'
    constantPattern: '^([A-Z_]*|serialVersionUID)$'
    methodPattern: '^[a-z$][a-zA-Z[=12=]-9]*$'
    classPattern: '[A-Za-z$][a-zA-Z_.$]*'
    enumEntryPattern: '^[A-Z$][a-zA-Z_$]*$'

我更改了默认的 class 模式以增加以小写字母开头并在 class 名称中包含 _ 的可能性,因为我知道 detekt 正在验证 FQN 而不仅仅是名称。

所以,我的问题是:如何设置 detekt 用于包名称的模式?

您可以使用 NamingConventionViolation 规则中的 packagePattern 参数设置您自己的包名称模式。

例如:

NamingConventionViolation:
    active: true
    variablePattern: '^(_)?[a-z$][a-zA-Z[=10=]-9]*$'
    constantPattern: '^([A-Z_]*|serialVersionUID)$'
    methodPattern: '^[a-z$][a-zA-Z[=10=]-9]*$'
    classPattern: '[A-Za-z$][a-zA-Z_.$]*'
    enumEntryPattern: '^[A-Z$][a-zA-Z_$]*$'
    packagePattern: '[a-zA-Z_$]*'