mapstruct / mapstruct-eclipse

An Eclipse plug-in for working with MapStruct
Other
13 stars 8 forks source link

Some more auto-completions #7

Open gunnarmorling opened 9 years ago

gunnarmorling commented 9 years ago
sradi commented 9 years ago

I implemented the auto-completion for @Mapper#componentModel() (see https://github.com/sradi/mapstruct-eclipse/tree/issue7_componentModel). The list of supported values is currently hard coded. Other suggestions are welcome. Before sending a pull request, I'd appreciate feedback on the structural changes, that I made.

gunnarmorling commented 9 years ago

@sradi, sorry for the late reply.

Could you create a pull request also if its in an early stage? Then we have a place where we can discuss it and it isn't at risk of being forgotten ;) You can then still push further commits for incorporating any review comments if needed.

Thanks a lot for your contribution, looking forward to merge your first commit :)

gunnarmorling commented 9 years ago

Btw. @agudian fixed a bug fix for completion of bean properties, so your change probably needs a rebase.

sradi commented 9 years ago

I'd like to start work on auto-completion for @Mapper#config. @larswetzer, I have a question on how to solve this: Do you think, it's a good idea to use the SearchEngine of JDT to find all classes, that are annotated with @MapperConfig or is there a simpler way to find valid auto-completions for this?

wetzer commented 9 years ago

@sradi, first of all, thanks a lot for your contribution!

I’m not sure whether the JDT search engine performs well in context of content assist, especially if the index is not yet built. But you should give it a try and test the performance.

Another idea would be an iteration over all compilation units of the project and do some AST parsing afterwards.

agudian commented 9 years ago

I've moved out some parts of the todo-list to separate issues.

gunnarmorling commented 8 years ago

Hey @sradi just came across this issue. Would you still be interested in working on this?

sradi commented 8 years ago

Hi @gunnarmorling , I just had a closer look into my work-in-progress from a couple of months ago. My first intent was to finish this issue. But at a second glance, the code completion feature doesn't seem trivial to implement for non-String values (in this case: @Mapper(config=...)). The current implementation of AbstractAnnotationCompletionProposalComputer.isInRange(...) doesn't work properly, when the compilationUnit is not in a compileable state (compilationUnit.isStructureKnown()==false). If @larswetzer has any hints, that help me to find an easy solution, I would happily implement it. But I currently don't have the time to get a deeper understanding of JDT.