Skip to main content
Jump to: navigation, search

Recommenders/Attic/New and Noteworthy/0.3


Not released.

Subwords Completion Engine

Sometimes you just don't know the complete name of a method - or entering its full name from the first character? Subwords is here to assist.

Subwords Completion It supports code completion on method names:

Recommenders subwords methodnames.png

and completion on variable names:

Recommenders subwords variablename.png

and completion on method overrides:

Recommenders subwords methodoverrides.png

Subwords has been mainly developed by Paul-Emmanuel Faidherbe and contributed to Eclipse Code Recommenders. Thank you Paul-Emmanuel!

Subwords currently has some limitations:

  • It doesn't support dynamic reranking of proposals with better/larger overlaps.
  • It only works in the scenarios shown above. Typename completions are yet not possible.

You may find more limitations as you go. Please send your feature requests and bugs to Bugzilla. A thread discussing this contribution is here:

Extended Documentation Platform

Traditionally, Javadoc is the first place to go if you want to have details regarding API usage. However, Javadoc's quality much depends on the author and therefore often lacks important information. Usually it only informs about arguments and returned information, but seldom puts it into perspective, e.g. its role in the whole framework/library.

The following screenshots indicate how ExtDoc tries to solve this problems. It uses several types of automatically inferred information - displayed by so-called "content providers" - and community features to enrich Eclipse's Java documentation. ExtDoc providers are displayed in an own view, when hovering elements in the editor and as additional information to code assistant selections. Furthermore, ExtDoc provides a framework for external contributors to implement own documentation providers being displayed along with the existent ones.

Of course, standard Javadoc remains available as one information provider. The providers order can be modified by the user simply by drag-and-drop of the providers in the left area of the view.

Method Calls

The method calls providers displays statistics about which methods of a type are called most often. This is either context-independent, e.g. when you click on a type name in the editor, or it's context-dependent, e.g. you select a variable. In the latter case it's considered what you've already called, which usually affects the probabilities of the remaining methods.

Recommenders extdoc calls.png

Code Examples

Code examples are multi-line code snippets found in Java libraries. Currently, only the provider for viewing code snippets is part of the platform. The mined contents are currently work in progress.

Recommenders extdoc example.png

Subclassing Directives

Subclassing directives indicate which methods of the superclass are typically overwritten. When an overriden method is selected, which methods of the superclass are typically called from the method implementations.

Recommenders extdoc subclas.png

Subclassing Patterns

Often there are several ways of extending a type, depending on it's purpose, i.e. subgroups of subclassing directives go together. This providers displays information of subclassing patterns found in Java libraries.

Recommenders extdoc pattern.png

Social Bookmarks

From the screenshots above you should have recognized that users are allowed to rate and comment information. For further user interaction, the social bookmarks provider allows sharing links relevant to the selected packages, types, methods etc.

Recommenders extdoc bookmar.png

ExtDoc in Hovers

ExtDoc information can not only be displayed in its view, it's also available when hovering editor elements. The icons at the bottom allow quick jumps to the single providers.

Recommenders extdoc hover.png

ExtDoc in Content Assistant

Furthermore, ExtDoc providers are also displayed when selecting completion proposals in code assistant.

Recommenders extdoc complet.png

Further content providers are currently in development. Please feel free to comment on the current ones or send requests for further providers!

Call Recommenders

Starting from Version 0.3, Code Recommenders does not bundle all models in one large zip file but per jar (so called model-jars).

Automated Model Download Code Recommenders downloads model-jars on demand now. Whenever it detects a new dependency it looks up matching models from the server, downloads, stores them in the plug-in state location ($workspace/.metadata/.plugins/org.eclipse.recommenders.codecompletion.calls).
Automated Model Updates Code Recommenders can be configured to automatically check for updates and download them. If deactivated, models can be updated manually by selecting the models from the preference page pressing the update button.
Model Management Recommenders calls model updates.png
Support for Private Models Self-generated models can be configured manually to support custom/in-house frameworks Code Recommenders has no data for.
Multiple Versions Support Code Recommenders generally supports data collection and model generation for libraries in different versions. For instance, different models are generated for Eclipse 3.6 and Eclipse 3.7.
First Steps Towards Support for Android With 0.3 we start support for Android. Yet the code base for Android is small an experimental but we hope that the community sharing features of 0.4 (if Eclipse PMC allows) help to continuously grow the Android knowledge base. Cross fingers!

Template Completion

Proposal Ordering Proposals are now ordered by type name and only secondary by probability

Recommenders TemplateCompletionProposalOrder.png

Back to the top