Feb 21, 2012

We are happy to announce our first official release (don't call it 'drop' anymore) of Eclipse Code Recommenders. After a silent v0.4 release drop, we drop, pardon, released Recommenders v0.5 today wiht a huge set of changes. Enjoy the release!

New Feature Namespaces
We outgrew our initial naming scheme. For v0.5 we changed the namespace of our features and plug-ins completely. As result, using the update manager wont work as expected. You have to uninstall previous versions and install code recommenders from one of our update sites .

No Project Builders!
This is probably the most important change during this release. Earlier version of Code Recommenders required you to activate Recommenders on a per-project basis. On activation, a builder was added to the project that analyzed file changes on save - or whenever Eclipse decided to run the builders (workspace fresh etc.). The results of these analyses were stored the in a ${project.home}/.recommenders/data folder. With v0.5 this is past.
Code Recommenders now analyzes the all compilation units on-the-fly whenever code completion is triggered. Developers now can easily use Code Recommenders in any project without changing any project configuration file. You can configure the completion engine's behavior in "Preferences » Java » Editor » Content Assist » Advanced".

Important:
Please note that currently only Eclipse APIs like JFace, SWT, JDT, Workbench etc. are supported. Adding support for other frameworks is planned for v0.6 and v0.7.

Completion Engines solely based on JDT
Related to the previous change, we switched from the WALA bytecode analysis toolkit to Eclipse JDT as primary analysis tool for code completion. WALA will, however, still be the analysis toolkit of choice for sophisticated code analysis and data exports. There is yet no better analysis toolkit available that suites our needs.

Call Chain Completion solely based on JDT
With v0.5, Code Recommenders ships a new version of its chain completion engine completely based on JDT. Thanks to Marko Martin who contributed this to Code Recommenders. Since this code is a major rewrite of the existing engine, please report any issues you experience to bugzilla.

Improved Subwords Completion
We've made a lot of small changes to subwords. The most significant one is that you can use it as replacement for the Java completion engine (go to Preferences»Java»Editor»Content Assist»Advanced to activate and deactivate Subwords and Java proposals engine).

[HEAD] For assignments, subwords completion now takes into account the variable name of the assignment.

The exact implementation of the matching and ranking strategy is subject to change. If you have ideas on how to improve the current strategy, look at the code and send your ideas to the forum .

Temporary Deactivation of Template Completion

In v0.2 we added a new template completion engine to Code Recommenders. Due to the large internal refactorings, this engine was left out of this release but will be added again in v0.6.

What else is in the pipe? Code examples search!
This time Code Recommenders ships without official code-search support. However, there is some work going on in this area. Previous updates offered first draft of code-search client in the experimental section of the update site. For v0.5 we removed this feature from the update sites as it's currently developed by Tobias Boehm, a Student at Darmstadt University of Technology as part of his Master thesis. For the curious, the sources can be found in Code Recommenders' Labs repository and the latest prototyp can be installed from this update site.

Just a collection of screenshots to see what Tobias is working on and what's coming soon...

Code Examples Search: Select a local variable in your code and the "code examples" extdoc provider will show you all code snippets that use a variable of the same type as selected and used/defined in a similar to your code.

Free-style code search query window: predefined queries are not good enough? Do query for methode, types, try-catch blocks that use an arbitrary number of certain types, methods or literals as you like... there are almost no limits.

Enjoy it but keep in mind it's an early prototype. For instance, it's currently consuming quite a lot disk space due to some verbose indexing settings etc. Please send all you comments and request regarding local code-search to the forum. Aaron, not all your queries can be expressed yet. But we have them in mind ;)