Live模板不能在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 

在这里输入图像说明

它在KOTLIN中不可用?

Android Studio 3.0 Canary版本中不可用吗?

而Android Studio中的Kotlin Live模板部分没有添加日志模板。

设置 – >编辑 – >实时模板 – > Kotlinkotlin模板。

kotlin模板

设置 – >编辑 – >实时模板 – > AndroidLog AndroidLog模板

AndroidLog模板

所以你不能在Kotlin代码中获得相同的AndroidLog模板。

所以现在问题如何使用Kotlin中的模板使用相同的日志function

回答:您可以在Android studio的Kotlin模板部分添加相同的日志模板(AndroidLog模板),如下例所示。

Kotlin模板部分

那么它将在您的Kotlin代码中可用!

Kotlin loge

我希望通过这种方式,您可以在Kotlin中获得Log函数模板的优势。

以下是一步一步的指导:

首先 ,将AndroidLog模板复制粘贴到Kotlin(只需选择它们并使用CMD + C,CMD + V(或Ctrl + C,Ctrl + V)
其次 ,你必须手动调整它们:

  1. logd(loge,logv等)选择logd项目,然后按“编辑variables” 在这里输入图像说明

将expression式更改为:kotlinMethodName() 在这里输入图像说明 另外,删除; 从模板的末尾开始,因为在Kotlin中不需要它。

现在您的方法名称将正确显示

  1. logt

这一个有点棘手。
解决方案1:TAG =类名称。

模板文本:

 private val TAG = "$className$" 

编辑variables – >expression式:

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

解决方案2:TAG =文件名 (可以在Companion里面使用)

模板文本:

 private const val TAG = "$className$" 

要么:

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

编辑variables – >expression式:

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

其他答案中提到的你不需要复制粘贴任何东西。 在Android Studio的“ 实时模板”部分find“适用于*”文本 – 单击“更改”按钮可以列出所有范围。 选择Kotlin(或其中一个子节点)并应用。 请注意,Java中的某些语句在Kotlin中将不起作用(如使用static关键字的语句) – 最好为这些语句创建一个新的模板,而不是编辑现有的模板。

在这里输入图像说明

这是包含Android-Kotlin所有模板的存储库。

所有你需要做的是下载版本库,复制模板目录并粘贴到你的Android Studio配置文件夹中。

你的Android Studio的配置文件夹可以在这里find

 Windows: C:\Users\%userName%\.AndroidStudio\config\templates Linux: ~AndroidStudio/config/templates macOS: ~/Library/Preferences/AndroidStudio/templates