6

デフォルトのライブ テンプレートlogmと同様に、 Timber loggerのライブ テンプレートを作成したいと考えています。Groovy スクリプトを使用してメソッド パラメーターを収集し、コンマで区切ります。例えば:

public int func(int a, float b, Object c, String d) {
    logm
}

次のコードを生成します。

public int func(int a, float b, Object c, String d) {
    Log.d(TAG, "func() called with: a = [" + a + "], b = [" + b + "], c = [" + c + "], d = [" + d + "]");
}

パラメータは次のコードで収集されます。

def params = _2.collect {it + ' = [" + ' + it + ' + "]'}.join(', ');
return '"' + _1 + '() called' + (params.empty  ? '' : ' with: ' + params) + '"'

//Where _1 and _2 - default IDEA methods, in this case 
//_1 - methodName(), which eturns the name of the embracing method (where the template is expanded).
//_2 - methodParameters(), which returns the list of parameters of the embracing method (where the template is expanded).

問題は、Timber メソッドがパラメーターの型形式を必要とすることです。次に例を示します。

int a = 5;
String s = new String("test");
boolean b = false;

Timber.d("%d, %s, %b", a, s, b);

したがって、メソッド パラメーターの型を決定する必要があります。

4

1 に答える 1