tree: cac2c7c1c2cb4d6fe267aa61a05c80e7b7bc8c92 [path history] [tgz]
  1. lombok.cli/
  2. lombok.common/
  3. lombok.k1/
  4. lombok.k2/
  5. testData/
  6. tests/
  7. tests-gen/
  8. build.gradle.kts
  9. README.md
plugins/lombok/README.md

Experimental Kotlin plugin to support Lombok annotations in the same compilation unit with kotlin

Features support:

[~] Config files

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

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

  • [x] Basic support
  • [ ] Copy annotations (probably don‘t need it, because annotations don’t affect members' resolution)

[x] @NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor

  • [x] @NoArgsConstructor
  • [x] @AllArgsConstructor
  • [x] @RequiredArgsConstructor

[x] @Data

[~] @Value

  • [x] generate getters and constructors
  • [ ] make class final, make fields private and final

[ ] @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