logd快捷方式在Intellij中与Kotlin不兼容

时间:2017-06-15 00:47:33

标签: intellij-idea kotlin

使用'logt','logd','loge'等快捷方式在Intellij中记录Java非常简单。但我搬到Kotlin,我注意到那些快捷方式不再适用了。我不知道它是否与我的配置有关,但如果没有,我该如何解决这个问题?

4 个答案:

答案 0 :(得分:11)

您应该创建单独的模板以使其正常工作 以下是分步指南:

首先,将AndroidLog模板复制并粘贴到Kotlin(只需选择它们并使用CMD + C,CMD + V(或Ctrl + C,Ctrl + V) 其次,您必须手动调整它们:  1. 登录(和其他人) 选择已登录项,然后按"编辑变量" enter image description here

将表达式更改为:kotlinMethodName() enter image description here

此外,请从模板末尾删除;,因为您在Kotlin中不需要它。

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

  1. <强> logt 这个有点棘手。 解决方案1 ​​TAG =班级名称。

    • 模板文字:

    private val TAG =&#34; $ className $&#34;

    • 编辑变量 - &gt;表达:

    groovyScript(&#34; _1.take(Math.min(23,_1.length()));&#34;,kotlinClassName())

  2. 解决方案2 TAG =文件名(可在Companion中使用)

    • 模板文字:

      私人常规标签=&#34; $ className $

    或:

    companion object {
         private const val TAG = "$className$"
    }
    
    • 编辑变量 - &gt;表达:

      groovyScript(&#34; _1.take(Math.min(23,_1.length()));&#34;,fileNameWithoutExtension())

    编辑19.02.19

    此外,它可能对某人有用 为了避免创建TAG变量,您可以使用类名作为变量,例如:

    Log.d("BaseActivity", "onCreate: ") 
    

    BaseActivity是班级名称。

    模板现在看起来像是:

    android.util.Log.d("$CLASS_NAME$", "$METHOD_NAME$: $content$")
    

    CLASS_NAME变量在哪里:

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

答案 1 :(得分:4)

These are provided in IntelliJ as a Live Template configuration for AndroidLog (found in Preferences -> Editor -> Live Templates), and are applicable specifically to Java code: AndroidLog Live Template config

There isn't anything broken in your configuration, but if you want to make these Live Templates available for Kotlin you will need to add new Live Template for AndroidLog and make them applicable to Kotlin code.

https://www.jetbrains.com/help/idea/2017.1/creating-and-editing-live-templates.html

There's an open feature request to have them added as defaults here: https://youtrack.jetbrains.com/issue/KT-10464

答案 2 :(得分:0)

在适用的选项中更改模板的范围。

enter image description here

答案 3 :(得分:0)

在Android Studio 4.0中,有一个新的 AndroidLogKotlin 块。您可以在那里实现@LeoDroidcoder的解决方案。