webentwicklung-frage-antwort-db.com.de

Live-Vorlage funktioniert nicht in Kotlin

Ich hoffe, Sie haben mit Live-Vorlagen gearbeitet, die standardmäßig von Android bereitgestellt werden.

Mögen:

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

Welches ist nicht in KOTLIN verfügbar?

Ist es nicht in Android Studio 3.0 Canary Version verfügbar?

19
Pratik Butani

Noch keine Protokollvorlage im Abschnitt Kotlin Live-Vorlagen in Android Studio hinzugefügt.

Einstellungen -> Editor -> Live-Vorlagen -> Kotlin für kotlin -Vorlagen.

 kotlin templates

Einstellungen -> Editor -> Live-Vorlagen -> AndroidLog für AndroidLog -Vorlagen

 AndroidLog templates .

Sie können also nicht die gleichen AndroidLog-Vorlagen im Kotlin-Code erhalten.

Nun ist also Question _ ​​Wie verwende ich die gleichen Protokollfunktionen unter Verwendung von Vorlagen in Kotlin?

Ans: Sie können im Abschnitt Kotlin-Vorlagen im Android Studio die gleichen Protokollvorlagen (AndroidLog-Vorlagen) hinzufügen (siehe unten).

 Kotlin Templates section

Dann wird es in Ihrem Kotlin-Code verfügbar sein!

 Kotlin loge

Ich hoffe, auf diese Weise können Sie die Protokollfunktionsvorlagen in Kotlin nutzen. 

13
pRaNaY

Hier ist die Schritt-für-Schritt-Anleitung:

Zuerst, AndroidLog-Vorlagen kopieren und in Kotlin einfügen (einfach auswählen und CMD + C, CMD + V (oder Strg + C, Strg + V) verwenden.
Zweitens, Sie müssen sie manuell anpassen: 

  1. logd (loge, logv und andere) Wählen Sie den Logd-Eintrag und drücken Sie "Variablen bearbeiten"  enter image description here

Ändern Sie den Ausdruck in: kotlinMethodName ()  enter image description here

Entfernen Sie auch ; vom Ende der Vorlage, da Sie ihn in Kotlin nicht benötigen.

Nun wird Ihr Methodenname korrekt angezeigt

  1. logt

Dieser ist etwas kniffliger.
Lösung 1: TAG = Klassenname.

Vorlagentext:

private val TAG = "$className$"

Variablen bearbeiten -> Ausdruck:

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

Lösung 2: TAG = Dateiname (kann in Companion verwendet werden)

Vorlagentext:

private const val TAG = "$className$"

oder:

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

Variablen bearbeiten -> Ausdruck:

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

Sie müssen nichts kopieren, wie in den anderen Antworten erwähnt. Suchen Sie den Text "Applicable in *" im Abschnitt Live Templates in Android Studio. Klicken Sie auf die Schaltfläche "Ändern", um eine Liste aller Bereiche anzuzeigen. Wählen Sie Kotlin (oder einen seiner untergeordneten Knoten) aus und wenden Sie sich an. Beachten Sie, dass einige Anweisungen von Java in Kotlin nicht funktionieren (wie diejenigen, die das statische Schlüsselwort verwenden). Es ist besser, eine neue Vorlage für diese zu erstellen, anstatt die vorhandene zu bearbeiten.

 enter image description here

7
Jaguar

Hier ist das Repository, das alle Vorlagen für Android-Kotlin enthält.

Dazu müssen Sie lediglich das Repository herunterladen, das Verzeichnis templates kopieren und in Ihren Android Studio-Konfigurationsordner einfügen.

Den Konfigurationsordner für Ihr Android Studio finden Sie unter

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

Dies ist die Kombination aller guten Antworten von @pRaNaY @Leo und @Jaguar mit bonus der TAG-freien und variablenbereiten Verwendung (keine Eingabe von "$ {}")

Vorlagentext: Android.util.Log.d ("$ className $", "$ methodName $ $$$ content $")

Anwendbar in Kotlin: Anweisung, Klasse, Ausdruck der obersten Ebene

variable Ausdrücke finden Sie im Dropdown-Menü

hier kannst du das ganze Bild sehen

0
underoid

Für das Logt funktionieren die beiden obigen Antworten, müssen aber zusätzlich "define" als "class" hinzufügen.

 enter image description here

0
Falgee