Die Verwendung mehrerer Anmerkungen in Kotlin kann ziemlich hässlich werden. Diese nehmen oft mehr Zeilen ein, als die Bedeutung, die sie vermitteln, wert ist; und einige Anmerkungen werden oft zusammen verwendet.
Nehmen wir diese kleine Jetpack Compose-Funktion als Beispiel:
@Preview
@Composable
fun Preview_ConfigurationList() = AppTheme {
ConfigurationList()
}
Die @Preview
und @Composable
Annotations sind sowohl notwendig als auch in Verbindung zu verwenden. Man könnte sie natürlich nur beide auf die gleiche Linie schreiben, aber das wäre nicht besonders schön, finde ich.
Wie lässt sich nun diese spezielle Bindung der Annotation im Code vermitteln und eine Codezeile einsparen?
Durch die Verwendung einer kaum dokumentierten Funktion von Kotlin!
Das Annotation-Array
Pinterests ktlint-Regel zur Annotationsformatierung ist die einzige Quelle, in der ich jemals diese Sprachfunktion gesehen habe. Es lassen sich mehrere Annotations in einem Array angeben, und zwar wie folgt:
@[Preview Composable]
fun Preview_ConfigurationList() = AppTheme {
ConfigurationList()
}
Auch die Kotlin-Dokumentation erwähnt das nicht, zumindest nicht hier, wo ich es erwartet hatte.
Einschränkungen
Wenn man dies mit ktlint verwenden möchte, sollte man es nicht für Annotations mit Parametern verwenden (es ist möglich, aber unerwünscht). Die Regel lässt sich ansonsten in der .editorconfig
deaktivieren:
ktlint_standard_annotation = disabled
Ich glaube nicht, dass die Kotlin-Entwickler diese kleine Funktion herausnehmen werden, aber man weiß ja nie…