2017-08-23 6 views
0

私はdetektを私のアプリに追加しました。私のパッケージ名の規則について不平を言っています。detekt snake caseパッケージ

私は、パッケージ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_$]*$' 

私が変更デフォルトのクラスパターンは小文字で始まりクラス名に_を入れる可能性を追加するパターン私はdetektが名前だけでなくFQNを検証していることを理解しました。

私の質問は、どのようにしてdetektがパッケージ名に使用するパターンを設定できますか?

+0

こんにちは、これはかなりクールと思われます。あなたはそのようなパターンをどこで定義しますか? (私はそれもほしい :) )。それはいくつかのコードスタイルのプラグインですか? – guenhter

+0

@guenhterはい、これは統計分析用のグラデルプラグインです:https://github.com/arturbosch/detekt :) – jonathanrz

答えて

1

NamingConventionViolationルールのpackagePatternパラメータを使用して、パッケージ名に独自のパターンを設定できます。

例えば:

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_$]*' 
+0

あなたはちょうどパッケージ名からドットを見逃しました。更新された正規表現は次のとおりです:packagePattern: '[a-zA-Z _ $] *' – jonathanrz