web-dev-qa-db-fra.com

Live Template ne fonctionne pas à Kotlin

J'espère que vous avez travaillé avec Live Templates qui est donné par Android par défaut.

Comme:

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

Lequel n'est pas disponible dans KOTLIN?

N'est-il pas disponible dans Android Studio 3.0 Canary Version?

19
Pratik Butani

Modèle de journal non ajouté dans la section des modèles Kotlin Live dans Android Studio.

Paramètres -> Éditeur -> Modèles en direct -> Modèles Kotlin pour kotlin.

 kotlin templates

Paramètres -> Éditeur -> Modèles en direct -> Modèles AndroidLog pour AndroidLog

 AndroidLog templates .

Vous ne pouvez donc pas obtenir les mêmes modèles AndroidLog dans le code Kotlin.

Alors maintenant, Question est Comment utiliser les mêmes fonctions de journalisation à l'aide de modèles dans Kotlin?

Ans: Vous pouvez ajouter les mêmes modèles de journal (Modèles AndroidLog) dans la section Modèles Kotlin du studio Android, comme dans l'exemple ci-dessous.

 Kotlin Templates section

Ensuite, il sera disponible dans votre code Kotlin!

 Kotlin loge

J'espère que de cette manière, vous pourrez obtenir un avantage des modèles de fonctions de journalisation dans Kotlin. 

13
pRaNaY

Voici le guide étape par étape:

Firstly, copier et coller des modèles AndroidLog sur Kotlin (il suffit de les sélectionner et d'utiliser CMD + C, CMD + V (ou Ctrl + C, Ctrl + V)
Deuxièmement, vous devez les ajuster manuellement: 

  1. logd (loge, logv et autres) Sélectionnez l'élément logd et appuyez sur "Editer les variables"  enter image description here

Remplacez l'expression par: kotlinMethodName ()  enter image description here

En outre, supprimez ; à la fin du modèle, car vous n'en avez pas besoin dans Kotlin.

Maintenant, le nom de votre méthode sera affiché correctement

  1. logt

Celui-ci est un peu plus compliqué.
Solution 1: TAG = nom de la classe.

Modèle de texte:

private val TAG = "$className$"

Editer les variables -> Expression:

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

Solution 2: TAG = nom du fichier (peut être utilisé dans Companion)

Modèle de texte:

private const val TAG = "$className$"

ou:

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

Editer les variables -> Expression:

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

Vous n'avez pas besoin de copier-coller comme indiqué dans les autres réponses. Recherchez le texte "Applicable in *" dans la section Live Templates d'Android Studio - en cliquant sur le bouton "Modifier", vous obtenez une liste de toutes les portées. Choisissez Kotlin (ou l'un de ses nœuds enfants) et appliquez-le. Notez que certaines instructions de Java ne fonctionneront pas dans Kotlin (comme celles qui utilisent un mot clé statique) - Il est préférable de créer un nouveau modèle pour celles-ci plutôt que de modifier le modèle existant.

 enter image description here

7
Jaguar

Ici est le référentiel qui contient tous les modèles pour Android-Kotlin.

Pour ce faire, il vous suffit de télécharger le référentiel, de copier le répertoire templates et de le coller dans votre dossier de configuration Android Studio.

Le dossier de configuration de votre Android Studio est disponible à l'adresse suivante:

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

Ceci est la combinaison de toutes les bonnes réponses de @pRaNaY @Leo et @Jaguar avec bonus d'utilisation sans balise et variable (pas besoin de taper "$ {}")

Texte du modèle: Android.util.Log.d ("$ className $", "$ methodName $ $$$ content $")

Applicable dans Kotlin: niveau supérieur, instruction, classe, expression

expressions variables peuvent être trouvés dans le menu déroulant

ici vous pouvez voir toute l'image

0
underoid

Pour vous connecter, les deux réponses ci-dessus fonctionnent, mais vous devez également ajouter "définir" comme "classe"

 enter image description here

0
Falgee