aboutsummaryrefslogtreecommitdiff
path: root/src/lombok/eclipse/Eclipse.java
AgeCommit message (Collapse)Author
2009-10-16Fixed issue #24 by refactoring the AST.Node class - taken it out, and in the ↵Reinier Zwitserloot
process fixed a lot of type annoyance by adding more generics. Also changed coding style from for/while/if/switch/catch/do ( expr ) {} to for (expr) {}, hence the changes _everywhere_.
2009-09-23Massive change to the eclipse handlers: They now set the 'generatedBy' flag ↵Reinier Zwitserloot
which we can use to patch eclipse in specific places to ignore generated nodes.
2009-09-21Fixes issue #49. Credit goes entirely to Michael McCallum who found the ↵Reinier Zwitserloot
problem, found the place in the source where the problem occurred, and even wrote a patch.
2009-09-03Fixed a problem in AnnotationValues where 'isExplicit' always returned true.Reinier Zwitserloot
2009-09-01More work on fully addressing the David Lynch bug (issue #41) - the ↵Reinier Zwitserloot
annotation @NotNull/@NonNull/@Nullable that is copied over by @Getter should no longer be causing the David Lynch bug.
2009-08-27Set the source positions in eclipse of copied over annotations (used in ↵Reinier Zwitserloot
@NonNull/@Nullable and getter/setter/constructor generation) to 0, as eclipse mysteriously fails for annotations copied WITH source positions, but only on methods (which happens for @Getter).
2009-08-27Now @Nullable is also copied over.Reinier Zwitserloot
2009-08-01@Setter will copy all NotNull and NonNull (case-insensitive) annotations to ↵Roel Spilker
the parameter @Getter will copy them to the getter method Added @NonNull to lombok to support null-checks in the setter
2009-07-31Added support for @NonNull in the @Setter annotationRoel Spilker
2009-07-26Fixed bugs with annotation handling: An array initializer with more than 1 ↵Reinier Zwitserloot
entry now no longer causes ArrayIndexOutOfBoundsException, the setWarning method on a single item in an array initializer on eclipse now generates the warning on just that node (like with errors), and the API of AnnotationValues has been updated to support setting errors/warning on any node.
2009-07-14Fixed a problem where @Data with a static constructor and generics params on ↵Reinier Zwitserloot
the class would generate errors regarding IllegalArgumentException in setSourcePosition in ASTNode.
2009-07-08Renamed all true names of 'eclipse' to 'Eclipse' (but not the eclipse ↵Reinier Zwitserloot
package, of course), and fixed a showstopper bug in the installer that would add -javaagent:lombok.jar to eclipse.ini, which is wrong of course; it needs to be lombok.eclipse.agent.jar.
2009-07-06Last massive documentation dump. All basic javadoc is now done, though ↵Reinier Zwitserloot
especially the docs on the lombok annotations in the lombok package need far more massaging. Also added a feature to HandleSynchronized to not auto-generate the locker fields if a specific name is provided (because, imagine you typoed those. You'd never find it!)
2009-06-27[BUGFIX] Pretty major bug - due to a typo, ALL values for annotation methods ↵Reinier Zwitserloot
were set to the value of the last annotation method. e.g in: @Foo(bar=10), ALL methods in the Foo annotation were presumed to be listed, and set to 10. This was obviously causing problems. Fixed it.
2009-06-23Fixed some bugs in copyType(), and now the static constructor is generated ↵Reinier Zwitserloot
without any raw generics warnings - it is effectively done.
2009-06-23Figured out that our previous act of just assigning TypeReference objects ↵Reinier Zwitserloot
directly to other nodes (e.g. from a FieldDeclaration's type to a method argument) is NOT a good idea, as this screws up when the TypeReference object represents a generic type (like 'T') - each instance of a generic type has a different resolution, but 1 TypeReference object can only hold 1 resolution. Thus, a copyType() method has been written, and the Handle* classes have been updated to use it. Also, generateEquals() is half-finished in HandleData.
2009-06-23This is a 3-day bughunt that ended up being something extremely simple:Reinier Zwitserloot
** DO NOT REUSE TYPEREFERENCE OBJECTS ** because that makes the binding process go pearshaped - after hte first run, that TypeReference object's binding parameter is set, and as its set, the resolver won't bother re-resolving it. However, each parse run starts with new scope objects, and any 2 bindings created by different scopes aren't equal to each other. urrrrrrgh! Fortunately, a lot of code that 'fixed' methods by adding bindings and scope have all been removed, as the parser patch point is well before these bindings are created. Thus: ** NEVER CREATE YOUR OWN BINDINGS AND SCOPE OBJECTS ** because if it comes down to that, you're doing it entirely wrong. That's eclipse's job. We're patching where we are so you don't have to do this.
2009-06-21Due to a java bug, constants in enums don't work, so instead the default ↵Reinier Zwitserloot
access level for @Getter and @Setter have now just been hardcoded in GetterHandler and SetterHandler. Added ability to look up the Node object for any given AST object on Node itself, as you don't usually have the AST object. Added toString() method generating to @Data, and this required some fancy footwork in finding if we've already generated methods, and editing a generated method to fill in binding and type resolutions. HandleGetter and HandleSetter have been updated to use these features. Exceptions caused by lombok handlers show up in the eclipse error log, but now, if they are related to a CompilationUnit, also as a problem (error) on the CUD - those error log entries are easy to miss! Our ASTs can now be appended to. When you generate a new AST node, you should add it to the AST, obviously. Getter/Setter have been updated to use this.
2009-06-19Added initial support for the @Data annotation. Currently produces getters ↵Reinier Zwitserloot
and setters only, not yet a constructor, toString, hashCode, or equals. HandleGetter and HandleSetter have been updated to handle static (theoretic; you can't put annotations on static fields normally). You can now make AnnotationValue objects using just an annotationNode and a target type, as well as check if a given annotationNode is likely to represent a target annotation type. This is in Javac and Eclipse classes. HandleGetter and HandleSetter can now be asked to make a getter/setter, and will grab access level off of a Getter/Setter annotation, if present.
2009-06-17Massive refactors. This list isn't complete, but should give you an idea:Reinier Zwitserloot
A) many things in lombok.eclipse moved to lombok.core to enable reuse with lombok.javac. B) lombok.javac works now similarly to eclipse's model: We first make big ASTs that are bidirectionally traversable, then we walk through that for annotations. C) Instead of getting an annotation instance, you now get an object that is more flexible and can e.g. give you class values in an enum as a string instead of a Class object, which may fail if that class isn't on the classpath of lombok. D) sources to the internal sun classes for javac added to /contrib.
2009-06-14Added support to generate errors, both on specific nodes in an AST ↵Reinier Zwitserloot
(generified code in HandlerLibrary for unintelligible annotation param values), and more severe general errors for eclipse's error log. Also unrolled the foreach loop on ServiceLoader, because any given .next() call can throw a ServiceLoaderError, which we now handle somewhat more nicely.