1. 程式人生 > >Lombok 新特性(idea外掛)

Lombok 新特性(idea外掛)

視訊教程 


IntelliJ Lombok plugin
 GitHub | Issues | Donate ( PayPal )  A plugin that adds first-class support for Project Lombok  Features
@Getter and @Setter
@FieldNameConstants
@ToString
@EqualsAndHashCode
@AllArgsConstructor, @RequiredArgsConstructor and @NoArgsConstructor
@Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog, @Flogger
@Data
@Builder
@Singular
@Delegate
@Value
@Accessors
@Wither
@SneakyThrows
from Intellij 14.1 @val
from Intellij 15.0.2 @var
from Intellij 14.1 @var
from Intellij 2016.2 @UtilityClass
Lombok config system
Code inspections
Refactoring actions (lombok and delombok)
 
Change Notes
0.23
Fixed #296: val does not resolve correct type for initializer with generic diamond
Fixed #437: Wrong compile error when using AllArgsConstructor.staticName
Fixed #556: Support for IDEA-2018.3
Dropped support of deprecated lombok annotations: lombok.experimental.Value and lombok.experimental.Builder; Use lombok.Value and lombok.Builder instead
0.22
Performance improvements #516: Editor UI freezes when editing a particular class
Fixed #504: Added Support for Delombok of @EqualsAndHashcode and @ToString Exclude/Include annotations
Fixed #507: @Value and @FieldDefaults should skip static fields
Fixed #472: Lombok should not interfer with java 10 'var'
Fixed #530: Remove explicit type argument leads to error
Fixed #531: Inspection for Lombok annotations incorrectly highlights 'var'
Better Support for @Cleanup: 'AutoCloseableResource'-Inspection can handle @Cleanup correctly in IntelliJ
0.21
Fixed Regression #533: StackOverflowError with PsiFieldImpl.isDeprecated
Removed obsolete support for hrisey
0.20
Fixed #119: IDEA doesn't rename builder method when field is renamed
Fixed #144: Find usages on field should find usages of builder/wither methods
Fixed #186: Find usages doesn't work (for example Accessors with Setter/Getter)
Fixed #295: Refactor Rename misses @Builder methods
Fixed #450: @Builder doesn't mark generated builder 'setters' as @Deprecated if the source field is deprecated
Fixed #497: Lombok plugin breaks creating Intellij IDEA postfix expressions
Fixed #499: @Builder does not respect @Accessors on fields
0.19
Fixed #475: Added support for @FieldNameConstants
Fixed #488: Added support for @Flogger annotation
Fixed #490: Added support for lombok.noArgsConstructor.extraPrivate
Fixed #473: Warning about Wither requiring AllArgsConstructor, although Builder provides one
Fixed #382: Added support for @XXX(onMethod_, onParam_, onConstructor_) for JDK8
0.18
Fixed #481: Fix plugin compatibility with IntelliJ 2018.2 EAP
0.17
Fixed #375: Added support for @Builder.Default
Fixed #465: Fix plugin compatibility with IntelliJ 2018.1
0.16
Fixed #210: Changing log annotation requires restart of Intellij to work
Fixed #270: Compile errors after moving an @Setter annotation by using IntelliJ move keyboard shortcut ⌥⇧↑
Fixed #365: [Feature request]IDEA .var suffix feature replacement
Fixed #379: StackOverflowException occurs sporadically when plugin enabled
Fixed #419: Stackoverflow in Intellij because of recursive delegation in @Delegate
Fixed #426: PSI equals shouldn't perform resolve
Fixed #427: Exception thrown when using *Find Usages* with ideavim
0.15.17.2
Fixed #415: Plugin Error: Lombok Plugin threw an uncaught NoClassDefFoundError
0.15
Fixed #134: Add suppot for toBuilder = true
Fixed #145: Overriding builder() method for @Builder shows false compilation error
Fixed #162: @Data/@XConstructor bug with default constructor
Improved #260: Handling val - Inferred Type is Object
Fixed #290: Getter and FieldDefaults with parameter AccessLevel in Enum shows "cannot access"
Fixed #337: Component name collision: 'UpdateComponent'
Fixed #339: Delombok for @ToString should use simpleName for class
Fixed #342: @EqualsAndHashCode/@ToString should treat explicit "of = {}" differently
Fixed #359: Explicit type can be diamond inspection is overloaded with the same id
Fixed #367: @Data on parent and child should be marked as compilation error
Fixed #393: @Builder with @Singular map produces duplicated variables
Fixed #399: IndexNotReadyException in FieldFindUsagesHandler
Fixed #412: @Accessors(fluent = true) does not impact @Wither but the plugin assumes it does
0.14
Fixed #209: Fixed @EqualsAndHashCode unnecessary warning
Fixed #212: Fixed Inspection "Field may be 'final'" triggers in spite of @Setter
Fixed #253: Fixed Refactor "Default @Getter" removes annotation on JPA entity classes
Fixed #302: Changed linked text in "Lombok Requires Annotation Processing" notification
Fixed #304: Fixed @FieldDefaults`s access level 'PUBLIC' doesn't work
Fixed #306: Problem with @Builder and generics
Fixed #308: Write access is allowed from write-safe contexts only
Fixed #313: Missed substitution when class and builder have generics
Fixed #320: Fixed No availability to generate any constructor
Fixed #322: Added support of lombok.experimental.var
Fixed #332: @Value(staticConstructor = "of") breaks intellij's type inference
Fixed #334: Added support for inlining getters/setters
0.13
Fixed #226: @Setter(AccessLevel.NONE) triggers error and not just warning on final fields
Fixed #254: Properties from lombok.config does not involve on suggestion list
Fixed #259: Support JBoss Logging (new in Lombok 1.16.10)
Fixed #262: When lombok.accessors.chain=true setters show void return value
Fixed #268: Lombok Dependency is possible outdated' message even when 'Enable lombok version warning' is unchecked.
0.12
Added support for transparent changing of visibility of existing fields and variables for IntelliJ 2016.2
Fixed #56: Missing auto-generated modifiers on fields and class shown in the "Structure" window when using `@Value`
Fixed #137: Private visibility added by @Value not respected by IDE.
Fixed #143: Support UtilityClass
Fixed #147: @FieldDefaults(makeFinal = true) and bitwise operators produce an error message
Fixed #158: val causes intellij to show an invalid error when used alongside an anonymous class
Fixed #202: @Builder supports setter for final field (@Value)
Fixed #230: @Value / @EqualsAndHashCode callSuper false warning: lombok.config ignored
0.11
Fixed #153: Configuration keys
Fixed #125: Support for lombok.getter.noIsPrefix
Fixed #128: Support @Slf4j with custom logger name
0.10
Overall significant performance optimizations
Fixed #88: Delegating to class with generics using @Delegate annotation
Fixed #136: "Cannot infer arguments" with @RequiredArgsConstructor
Fixed #157: Intellij fails to infer type for constructor defined with @RequiredArgsConstructor
Fixed #176: Unchecked warning when using static constructor for @Data and @Value on parametrized class
Fixed #180: Low performance of @Builder analysis
Fixed #184: Linter suggests to add @EqualsAndHashCode to declare callSuper, but already overriden
Fixed #105: val sometimes fails to be parsed correctly
Fixed #142: IDE highlights val as an error if it had reparsed code before the line was completed
Fixed #168: val does not work with generic method calls as the initializer expression
Fixed #180: Low performance of @Builder analysis
Fixed #183: val can not work when method has Generic return
0.9.8
Fixed #151: Builder issues with Accessors
Fixed #153: IntelliJ produces warning when specifying generic type on val declaration
Fixed #156: Exception in @Singular handling
Fixed #165: Can't correctly resolve multiple @Builder methods in same class having partial implementations
Fixed #172: "Lombok needs a default constructor in the base class" error in enum
Fixed #175: Added support for @Tolerate for @Getter and @Setter
Fixed #177: Null pointer in intellij version 15.0.3
0.9.7
Added caching of produced PsiElements to reduce probability of recursive invocation #112,#123, #126, #129
Fixed #130: @XArgsConstructor don't show error when used on a subclass that requires non-empty super call
Fixed #132: Make @EqualsAndHashCode(callSuper = true) default
Fixed #135: Added support for @NoArgsConstructor(force = true)
Fixed #149: Idea cannot generate another constructor when @NoArgsConstructor is used
0.9.6
Fixed #47: Feature request: support onX annotations via @__
Fixed #77: Support new @Singular annotation for @Builder collection fields
Fixed #123: SpinAllocator has exhausted! Too many threads or you're going to get StackOverflow
0.9.5
Fixed #48: Importing @Builder generated builder classes does not work
Added #77: Basic Support for new @Singular annotation for @Builder collection fields
Fixed #111: @Builder on constructors/methods is not recognized in Android Studio
Fixed #116: @Builder - Builder class can't be found without a static import
Added Hrisey @Parcelable support patch
Dropped outdated support for some lombok_pg annotations
0.9.4
Fixed regression #108: Getter/Setter wrong after last Update
Fixed #100, #72: AssertionError: Stub and PSI element type mismatch
0.9.3
Fixed #95: Fluent Setter Override Error
Fixed #96: @Value and @Wither not playing well together
Fixed #97: Two constructors being shown when using @Builder and @AllArgsConstructor together
Fixed #98: Plugin crash: IndexNotReadyException val processing
Fixed #101: @SneakyThrows causes incorrect errors in IntelliJ 14
0.9.2
Added #9: Basic val support in IntelliJ 14.1
Fixed #81: @Builder: buildMethod should have same throws-list as annotated static method
Fixed #82: Abstract Class + @Delegate
Fixed #83: Getting inconvertible types error assigning new builder instance
Fixed #84: Properly find usages of @Getters & @Setters on fields with @Acccessor prefixes
Fixed #90: Renaming a field with different case doesn't rename getter
Fixed #92: Improved @Wither support
Fixed #93: IntelliJ unable to resolve constructor when using @Builder and @Value together
0.9.1
Fixed #33: Builder annotation with partial implementation shows errors
Fixed #78: Support for constructors of @Value objects with assigned final fields
Fixed #79: Support for multiple @Builder in same java class
Fixed #80: Some issues with "delomboked" @Builder on static method
0.9.0
Added Delombok Feature for @Builder
Issue #53: Basic Support for Lombok configuration keys
Fixed #57: Incorrect constructors appear in "Structure" when `@Value` and `@Builder`
Fixed #70: Conflict resolution failed on renaming field together with its accessors in IntelliJ 14
Issue #74: Fixed (only IntelliJ 14+) Sneaky Throws Not Correctly Detected for Anonymous Inner Class
Issue #75: Added support for @lombok.Builder (lombok version 1.16)
0.8.9
Fixed #67: Updates and Improvements for IntelliJ 14, fixed incompatibility
0.8.8
Fixed #52 : Invalid stub element type in index
Fixed #54 : @Wither copies @Nullable annotation to generated method
Fixed #62 : Intellij shows error on Lazy Getter
Fixed #63 : Added support for @Tolerate (together with @Value, @Data)
Fixed issue 109(on GoogleCode): Intellij freezes regularly when the lombok plugin is enabled
Fixed issue 106(on GoogleCode): Static methods annotated with @Builder are not recognized
Updated to lombok changes: canEqual (of @EqualsAndHashCode fame) should be protected instead of public.
Basic autocompletion and highlighting for lombok.config files
0.8.7
Fixed issue 104(on GoogleCode): Intellij reports unused field with @Getter and @Setter
Fixed #50 : @SneakyThrows does not work for try-with-resource statements
Fixed #51 : Delegate annotation moved to experimental
Fixed #58 : NoSuchMethodError in IntelliJ 14 EAP
0.8.6
Added basic refactoring actions for Lombok @Data, @ToString and @EqualsAndHashcode methods
Fixed #46 : @SneakyThrows does not work on methods which throws multiple exceptions
0.8.5
Fixed #44 : @SneakyThrows doesn't hide exception on Intellij13
0.8.4
Fixed #20 : Inspection of lombok annotations say I can't use @Builder on constructor
Fixed issue 92(on Googlecode) : Plugin flags @Builder annotations when they are placed on contructors
Fixed #41 : Error with @Builder
Fixed #42 : Added Extension to populate Structure view
Fixed issue 13(on GoogleCode): @SneakyThrows does not hide Unhandled Exception Error
0.8.3
Fixed #17: Cyclic parent child relation
Fixed #34: Lombok plugin crashes
Fixed #36: Possible class cast exception
Fixed #37: Delombok of files included as library failes
0.8.2
Added support for "topic" annotation value of all @Log annotations (Lombok >= 1.12.6)
Added validation of static fields/methods of @Delegate annotation (@Delegate is legal only on instance fields or no-argument instance methods)
Fixed #19: Slf4j in static context
Fixed #29: Renaming a class with the @Log* annotation adds extra qualification to calls
Fixed #31: Prevent errors with invalid identifiers for builderClassName in @Builder annotation
Fixed #32: Refactor -> Extract -> Parameter Object || Change Signature broken
Fixed (on GoogleCode) #83: @Slf4j does not work when added for first time
Fixed (on GoogleCode) #100: Refactor Change Signature || Extract - Parameter Object
0.8.1
Issue (on Git) #23: Fixed @Delegate inspection reports error
Issue (on Git) #27: Fixed @Delegate on a type parameter doesn't fail
Issue #60: Fixed @Delegate on methods is not supported now
Issue #98: Fixed Lombok Experimental Accessor Prefix does not handle non-alphanumeric prefixes
0.8.0
Added refactoring action for Lombok @Log and friends, @Getter and @Setter methods
Added refactoring actions to Delombok @Data, @Value, @Wither, @Constructors, @Getter, @Setter, @EqualsAndHashCode, @ToString and @Log annotations
Fixed problem with renaming fields in class containing lombok @Getter and @Setter
Issue #94: Fixed Intellij does not correctly create the constructor with @RequiredAllConstructor for classes with @Value
0.7.3
Fix IllegalArgumentException when trying to expand method names on IntelliJ 11
0.7.2
Fix multiple stackoverflow exceptions
0.7.1
Some performance optimizations
0.7
Added partial support for @Value lombok annotations
Added support for @Accessors lombok experimental annotation
Added support for @Wither lombok experimental annotation
Added support for @Builder lombok experimental annotations
0.6.5
Issue #20 Fixed Using @Delegate together with generic methods produced red underlining in the editor window
Issue #29 Fixed @Delegate leads to exception in LombokLightParameter
Issue #37 and #59 Fixed @EqualsAndHashCode inspection for callSuper parameter
Issue #54 Valid code produces inspections errors - anonymous instance, partial implementation
0.6.4
Issue #49 Deprecated fields should generate deprecated methods
0.6.3
Issue #41 Added support for XSlf4j and Log4j2 logger
Issue #44 Fixed Getter- and Setter- method generation, when method is already there with a parameter(s)
Issue #56 Removed obsolete plugin dependencies (they have been merged into intellij core)
0.6.2
Issue #50 Compiled with java 1.7 -> Don't work under java 1.6 vms
0.6
Issue #23 Updated to run with IntelliJ 12
Issue #42 IllegalArgumentException with Intellij 12
Issue #48 IllegalArgumentException with Intellij 12
Issue #38 Added ability to enable/disable lombok-intellij-plugin per project-configuration and reduced logging-level of plugin
0.5
Issue #23 Initial support for IntelliJ 12
Issue #12 Added support for "Singleton" and "EnumId" annotations from lombok-pg
Fixed Issue #27 "@EqualsAndHashCode on final classes: Should not have a canEquals in that case."
Fixed Issue #28 "Getters and setters should be generated even if the method exists with different parameter count"
0.4
fix reflection access for intellij ultimate
0.3
Fixed issue #4 "Getter/Setter on generic types"
Fixed issue #6 "The Plugin panel in IDEA lists the plugin as "Lombook Plugin (doubled letter 'o')"
Fixed issue #7 "Added support for IntelliJ 11"
Fixed issue #9 "@Data(staticConstructor="of") is not created"
Fixed issue #10 "Empty constructor is created even if it already exists"
Fixed issue #15 "@Data with @NoArgsConstructor does not generate default constructor"
Fixed issue #17 "Incompatibility with javax.annotation.Nonnull/Nullable"
Added more inspections and QuickFixes for some of lombok annotations.
Fixed: skip constructor generation for @Data if some constructor is already defined in the class
Fixed: skip getter generation for invalid lazy-getters
Added support for "LazyGetter" and "FluentSetter" annotations from lombok-pg
0.2
Added inspections for lombok annotations.
Added some simple QuickFixes for lombok inspections.
Fixed bug with not working auto-completion in the same source file with lombok annotations that generate methods.
Better support of lombok annotations, especially for 'staticName','types' and 'excludes' properties of @Delegate and @XXXConstructor
General bug fixing and many improvements
0.1
Initial Release for IDEA >= 10.0
Vendor
Michail Plushnikov https://github.com/mplushnikov/lombok-intellij-plugin 
[email protected]
Plugin homepage https://github.com/mplushnikov/lombok-intellij-plugin Size 457.0 K