You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The extensions are isolated so they can be seen as a data class to contain all properties and any behavior on it can be a method.
Any knowledge about lazy APIs and Gradle internal could be ignored and just use Kotlin basic types, under the hood they will be mapped to lazy APIs.
An example could be:
@GExtension
data classMyFancyExtension(
valprop1:String,
valprop2:GFile, // or `GInputFile` ?
@GAssisted valrandomThing:RandomThing,
) {
funfoo() {
// do something with props
}
}
// generated, automatically add `ProjectLayout`, `ObjectFactory`, // and any `@GAssisted` value.openclassMyFancyExtension @Inject constructor(...) {
val prop1:Property<String> =...
val prop2:FileProperty=...
funfoo() {
// do something with props
}
}
The annotation @GAssisted would help to enable doing anything in complex use cases.
Nested extensions should be supported automatically:
@GExtension
data classRootFancyExtension(valnestedFancy:NestedFancyExtension, ...)
@GExtension
data classNestedFancyExtension(...)
should be consumed on the user side:
rootFancy {
// ...
nestedFancy {
// ...
}
}
The annotation @GExtension could support specifying a name: String? = null. If it is not indicated, the name should be extracted from the class name by decapitalizing and removing the suffix Extension from it.
The text was updated successfully, but these errors were encountered:
The extensions are isolated so they can be seen as a data class to contain all properties and any behavior on it can be a method.
Any knowledge about lazy APIs and Gradle internal could be ignored and just use Kotlin basic types, under the hood they will be mapped to lazy APIs.
An example could be:
The annotation
@GAssisted
would help to enable doing anything in complex use cases.Nested extensions should be supported automatically:
should be consumed on the user side:
The annotation
@GExtension
could support specifying aname: String? = null
. If it is not indicated, the name should be extracted from the class name by decapitalizing and removing the suffixExtension
from it.The text was updated successfully, but these errors were encountered: