c2bf68c9d3
Also rename its jar to `kotlin-lombok-compiler-plugin` ^KT-52468 Fixed
55 lines
2.1 KiB
Markdown
55 lines
2.1 KiB
Markdown
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
|