mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-03-10 08:31:29 +00:00
Experimental Kotlin plugin to support Lombok annotations in the same compilation unit with kotlin
Features support:
[~] Config files
- Basic support - single config file. Need to be specified explicitly by plugin config
- Import other config files
- Config files discovery and bubbling
[~] @Getter/@Setter
- Basic support
- Class-level
- @Accessors config support: chain and fluent
- [~] Config support
- lombok.getter.noIsPrefix
- lombok.accessors.fluent
- lombok.accessors.chain
- lombok.accessors.prefix
- lombok.noArgsConstructor.extraPrivate (probably we don't need to support it - it is private after all)
- lombok.copyableAnnotations (probably don't need it)
- Copy annotations
- Strip defined prefixes - in config and @Accessors
- Skip generation with AccessLevel.NONE
- Strip 'is' prefix for boolean fields
[~] @With
- Basic support
- Copy annotations (probably don't need it, because annotations don't affect members' resolution)
[x] @NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
- @NoArgsConstructor
- @AllArgsConstructor
- @RequiredArgsConstructor
[x] @Data
[~] @Value
- generate getters and constructors
- make class final, make fields private and final
[ ] @Builder - will not be supported in the current prototype.
Other todos:
- Generic classes
- Actually run compiled code
- Don't generate members that already exist (if having a duplicate is a problem)
- Gradle integration (as subplugin or just a way to enable lombok support)
- Gradle plugin integration test
- Maven integration (as subplugin or just a way to enable lombok support)
- Nullability from annotations. Check if it is inherited from variable definition