web-dev-qa-db-ja.com

Kotlinでライブテンプレートが機能しない

Androidでデフォルトで提供されるライブテンプレートを使用したことを願っています。

お気に入り:

Generate debug log statement: "logd"+TAB
Generate error log statement: "loge"+TAB
Generate info log statement: "logi"+TAB
Generate TAG declaration: "logt"+TAB
Generate parameter logging: "logm"+TAB
Generate method return log: "logr"+TAB

enter image description here

[〜#〜] kotlin [〜#〜]で利用できないものはどれですか?

Android Studio 3.0 Canary Versionでは利用できませんか?

30
Pratik Butani

ただし、Android Studio。のKotlin Liveテンプレートセクション)にはログテンプレートが追加されていません。

設定->エディタ->ライブテンプレート-> Kotlinkotlinテンプレート用。

kotlin templates

設定->エディタ->ライブテンプレート-> AndroidLogAndroidLogテンプレート用

AndroidLog templates

したがって、同じAndroidLogテンプレートをKotlinコードで取得することはできません。

だから今質問Kotlinでテンプレートを使用して同じログ関数を使用する方法ですか?

Ans:同じログテンプレート(AndroidLogテンプレート)をKotlinテンプレートセクションAndroid studio以下の例のように。

Kotlin Templates section

次に、Kotlinコードで使用できるようになります!

Kotlin loge

このようにして、Kotlinのログ関数テンプレートを活用できることを願っています。

17
pRaNaY

手順は次のとおりです。

まず、AndroidLogテンプレートをコピーしてKotlinに貼り付けます(テンプレートを選択して、CMD + C、CMD + V(またはCtrl + C、Ctrl + Vを使用するだけです)。
2番目に、手動で調整する必要があります:

  1. logd(loge、logvなど)logdアイテムを選択し、[変数の編集] enter image description here

式を次のように変更します。kotlinMethodName() enter image description here

また、; Kotlinでは必要ないため、テンプレートの最後から。

これでメソッド名が正しく表示されます

  1. logt

これは少しトリッキーです。
ソリューション1:タグ=クラス名。

テンプレートテキスト:

private val TAG = "$className$"

変数を編集->式:

groovyScript("_1.take(Math.min(23, _1.length()));", kotlinClassName())

ソリューション2:タグ=ファイル名(コンパニオン内で使用できます)

テンプレートテキスト:

private const val TAG = "$className$"

または:

companion object {
    private const val TAG = "$className$"
}

変数を編集->式:

groovyScript("_1.take(Math.min(23, _1.length()));", fileNameWithoutExtension())
22
Leo Droidcoder

他の回答に記載されているように、何もコピーして貼り付ける必要はありません。 Live Templatesセクションの "Applicable in *"テキストを見つけますAndroid Studio-[変更]ボタンをクリックすると、すべてのスコープのリストが表示されます。Kotlin(またはその子ノードの1つ)を選択して適用します。JavaはKotlinでは機能しません(staticキーワードを使用するものと同様)-既存のテンプレートを編集するのではなく、それらの新しいテンプレートを作成することをお勧めします。

enter image description here

11
Jaguar

ここ は、Android-Kotlinのすべてのテンプレートを含むリポジトリです。

リポジトリをダウンロードして templates ディレクトリをコピーし、Android Studio configフォルダに貼り付けます。

Android Studioの設定フォルダは、

Windows: C:\Users\%userName%\.AndroidStudio<version>\config\templates
Linux: ~AndroidStudio<version>/config/templates
macOS: ~/Library/Preferences/AndroidStudio<version>/templates
4
Max

これは、@ pRaNaY @Leoおよび@Jaguarによるすべての適切な回答と、TAGフリーおよび変数対応の使用のボーナスの組み合わせです(入力する必要はありません) 「$ {}」)

テンプレートテキスト:Android.util.Log.d( "$ className $"、 "$ methodName $ $$$ contents $")

適用対象:Kotlin:トップレベル、ステートメント、クラス、式

変数式はドロップダウンメニューにあります

ここでは全体像を見ることができます

0
underoid

Logtの場合、上記の2つの答えは機能しますが、「define」を「class」として追加する必要があります

enter image description here

0
Falgee