Project Plan For Code Recommenders, version 1.0

Introduction

You can find detailed information about the mission on our project website .

Release Deliverables

  • Intelligent Code Completion
    • Calls Completion
    • Overrides Completion
    • Call-Chain Completion
    • Subwords Completion (tentative)
    • (Single-object) Templates Completion (tentative)
  • Extdoc Platform
  • Snipmatch
  • Codesearch Workspace Client (tentative)

Table of Contents

Release Milestones

Code Recommenders participates in the Juno Release Train. The dates below are taken from the Juno Release Plan.
Juno M4 +112/12/2011
Received the confirmation to join the Release Train. Preparing the stage for M5.
Juno M5 +11/30/2012
RCP, Documentation, Compatibility with Release Train
Juno M6 +13/19/2012
Generalization and refactoring of calls model infrastructure for use with overrides models
Juno M7 +15/7/2012
Server infrastructure
Juno RC1 +15/21/2012
Feature freeze; Stabilization; Release Candidate 1
Juno RC2 +15/28/2012
Release Candidate 2
Juno RC3 +16/4/2012
Release Candidate 3
Juno RC4 +16/11/2012
Release Candidate 4
Juno Release6/27/2012

Table of Contents

Target Environments

Code Recommenders is designed to run on version 1.6 of the Java Runtime Environment, Standard Edition. We are supporting version 1.7 with equal priority.
We are not using native code, so we assume Code Recommenders will run on any platform supported by Eclipse itself. You can find the tested platforms below.
Code Recommenders 1.0 will support the following Eclipse releases:
  • Eclipse 3.7 (only automated testing)
  • Eclipse 3.8
  • Eclipse 4.2
Test Platforms
Operating system Processor architecture Window system Java 2 Platform Eclipse Release
Manual Tests
Microsoft Windows 7 x86-64 Win32 Sun Java 2 Standard Edition 7.0 Eclipse 3.8, 4.2
Apple Mac OS X 10.7.2 x86-64 Cocoa Apple Java 2 Platform Standard Edition (J2SE) 6 Eclipse 3.8, 4.2
Apple Mac OS X 10.6.8 x86-64 Cocoa Apple Java 2 Platform Standard Edition (J2SE) 6 Eclipse 3.8, 4.2
Automated Tests
Ubuntu Linux 9.10 x86-64 GTK Sun Java 2 Standard Edition 6.0 Eclipse 3.7, 3.8, 4.2

Internationalization

Strings in all plug-ins and features will be externalized and available for translation through Eclipse Babel.

Table of Contents

Compatibility with Previous Releases

No previous release available. Compatibility with previous drops will not be verified.
There is no guarantee that API and structure of models will not change in further releases.

Table of Contents

Themes and Priorities

For 1.0 we focus on developing and providing a stable version of Call Completion, Overrides Completion, Call-Chain Completion and the ExtDoc RCP. We would like to include Codesearch and Subwords Completion in the release, but have not the time to get these tools into a releaseable state on ourselves in time. Depending on contributions these tools may be part of the release.

Support for Eclipse 3.8 workbench

We will support 3.8 and 4.2 equally, and all the functionality will be the same.

Completion Engines

We are working on several completion engines that provide subsets of the default completions for Java. Those subsets are based on analysis how others used APIs. The main target of these completion engines is to only show those completion proposals the developer really needs in her current context.
However we also support some other types of completion engines that are helpful. For example a subwords based engine that matches default Java proposals not only by prefix but by simple regular expressions with a sophisticated scoring system. Subwords completion may eventually work with arbitrary abbreviations (watch this video for examples).

  • Committed

    • Call Recommendation Models for java.* standard library [366409] (target milestone: 1.0)
    • Overrides Completion based on JDT [366321] (target milestone: 0.5)
    • Chain Completion based on JDT [366322] (target milestone: 0.5)
    • Call Completion based on JDT [366390] (target milestone: 0.5)
    • Infrastructure for providing and consuming overrides models [366399] (target milestone: 1.0)
  • Proposed

    • Single-object template completion engine based on the calls completion engine [366488] (target milestone: 1.0)
  • Deferred

    • Relevance Sorting for Subwords Completion Engine [346947] (target milestone: ---)
    • Naive subwords completion for all default java propoosal types [366402] (target milestone: 1.0)

Extdoc

More details on the extdoc component can be found here .

  • Committed

    • Refine Subclassing Directives Provider [366713] (target milestone: 0.5)
    • Java element selection event system [366403] (target milestone: 0.5)
    • Extdoc Webservice [366404] (target milestone: 0.6)
    • Refinement of extdoc view and provider extension point [366482] (target milestone: 0.5)
    • Refine Selfcalls Provider [366715] (target milestone: 0.5)
    • Refine Subclassing Patterns Provider [366716] (target milestone: 0.5)
    • Refine Javadoc Provider [366717] (target milestone: 0.5)
  • Deferred

    • Refinement of extdoc hover popup [366483] (target milestone: ---)
    • Extdoc community features such as user ratings and comments [368617] (target milestone: ---)
    • Refine Code Examples Provider [366718] (target milestone: ---)
    • Make extdoc platform version agnostic [367553] (target milestone: 1.0)

Code-search

More details on the code-search component can be found here .

  • Deferred

    • Code-search workspace index [366484] (target milestone: ---)
    • Code-search query language(s) [366486] (target milestone: ---)

Snipmatch

Details on Snipmatch can be found here .

  • Deferred

    • REST-ful search interfaces [366489] (target milestone: ---)
    • Improved UI for specifying (JFace) templates [366494] (target milestone: ---)

Table of Contents