| 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 |