blob: 4666fa65c3b109d83052efacd44871005b258ad2 [file] [log] [blame] [view] [edit]
Experimental Kotlin plugin to support Lombok annotations in the same compilation unit with kotlin
### Features support:
[~] [Config files](https://projectlombok.org/features/configuration)
- [x] Basic support - single config file. Need to be specified explicitly by plugin config
- [ ] Import other config files
- [ ] Config files discovery and bubbling
[~] [@Getter/@Setter](https://projectlombok.org/features/GetterSetter)
- [x] Basic support
- [x] Class-level
- [x] @Accessors config support: chain and fluent
- [~] Config support
- [x] lombok.getter.noIsPrefix
- [x] lombok.accessors.fluent
- [x] lombok.accessors.chain
- [x] 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
- [x] Strip defined prefixes - in config and @Accessors
- [x] Skip generation with AccessLevel.NONE
- [x] Strip 'is' prefix for boolean fields
[~] [@With](https://projectlombok.org/features/With)
- [x] Basic support
- [ ] Copy annotations (probably don't need it, because annotations don't affect members' resolution)
[x] [@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor](https://projectlombok.org/features/constructor)
- [x] @NoArgsConstructor
- [x] @AllArgsConstructor
- [x] @RequiredArgsConstructor
[x] [@Data](https://projectlombok.org/features/Data)
[~] [@Value](https://projectlombok.org/features/Value)
- [x] generate getters and constructors
- [ ] make class final, make fields private and final
[ ] [@Builder](https://projectlombok.org/features/Builder) - will not be supported in the current prototype.
Other todos:
- [x] Generic classes
- [x] Actually run compiled code
- [x] Don't generate members that already exist (if having a duplicate is a problem)
- [x] Gradle integration (as subplugin or just a way to enable lombok support)
- [x] Gradle plugin integration test
- [x] Maven integration (as subplugin or just a way to enable lombok support)
- [x] Nullability from annotations. Check if it is inherited from variable definition