Live Template no funciona en Kotlin

Espero que hayas trabajado con Live Templates que viene dada por Android de forma pnetworkingeterminada.

Me gusta:

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

¿Cuál no está disponible en KOTLIN ?

¿No está disponible en Android Studio 3.0 Canary Version ?

    Sin embargo, no se agregó la plantilla de logging en la sección de templates de Kotlin Live en Android Studio.

    Configuración -> Editor -> Plantillas en vivo -> Kotlin para templates de kotlin .

    plantillas kotlin

    Configuración -> Editor -> Plantillas en vivo -> AndroidLog para AndroidLog templates

    Plantillas de AndroidLog .

    Por lo tanto, no puede get las mismas templates de AndroidLog en el código de Kotlin.

    Entonces, ahora la pregunta es ¿Cómo usar las mismas funciones de logging usando templates en Kotlin ?

    Resp .: Puedes agregar las mismas templates de logging (AndroidLog Templates) en la sección Kotlin Templates en el estudio de Android, como el ejemplo a continuación.

    Sección de plantillas de Kotlin

    ¡Entonces estará disponible en tu código de Kotlin!

    Kotlin loge

    Espero que de esta manera pueda get una ventaja de las templates de funciones de logging en Kotlin.

    Aquí está la guía paso a paso:

    En primer lugar , copie y pegue las templates de AndroidLog en Kotlin (simplemente selecciónelas y use CMD + C, CMD + V (o Ctrl + C, Ctrl + V)
    En segundo lugar , debe ajustarlos manualmente:

    1. logd (loge, logv y otros) Seleccione el elemento logd y presione "Editar variables" enter image description here

    Cambiar expresión a: kotlinMethodName () enter image description here Además, eliminar ; desde el final de la plantilla, ya que no lo necesita en Kotlin.

    Ahora su nombre de método se mostrará correctamente

    1. logt

    Este es un poco más complicado.
    Solución 1: TAG = nombre de class.

    Texto de la plantilla:

     private val TAG = "$className$" 

    Editar variables -> Expresión:

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

    Solución 2: TAG = nombre de file (se puede usar dentro de Companion)

    Texto de la plantilla:

     private const val TAG = "$className$" 

    o:

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

    Editar variables -> Expresión:

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

    No necesita copyr pegar nada como se menciona en las otras respuestas. Busque el text "Aplicable en *" en la sección Plantillas en vivo de Android Studio. Al hacer clic en el button "Cambiar", se muestra una list de todos los ámbitos. Elija Kotlin (o uno de sus nodos secundarios) y aplíquelo. Tenga en count que algunas declaraciones de Java no funcionarán en Kotlin (como las que usan palabras key estáticas). Es mejor crear una nueva plantilla para ellas, en lugar de editar la existente.

    enter image description here