0

我在我的应用程序中添加了detekt,它抱怨我的包名称约定。

我使用了snake_cased 包和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$0-9]*$'
    constantPattern: '^([A-Z_]*|serialVersionUID)$'
    methodPattern: '^[a-z$][a-zA-Z$0-9]*$'
    classPattern: '[A-Za-z$][a-zA-Z_.$]*'
    enumEntryPattern: '^[A-Z$][a-zA-Z_$]*$'

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

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

4

1 回答 1

1

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

例如:

NamingConventionViolation:
    active: true
    variablePattern: '^(_)?[a-z$][a-zA-Z$0-9]*$'
    constantPattern: '^([A-Z_]*|serialVersionUID)$'
    methodPattern: '^[a-z$][a-zA-Z$0-9]*$'
    classPattern: '[A-Za-z$][a-zA-Z_.$]*'
    enumEntryPattern: '^[A-Z$][a-zA-Z_$]*$'
    packagePattern: '[a-zA-Z_$]*'
于 2017-08-23T18:46:06.763 回答