Eclipse 2.1 High Priority Challenges

Last revised October 2, 2002

The following key challenges confront Eclipse.  To focus our efforts these challenges are factored into two sets: the highest priority challenges that we are addressing now, and other important challenges that we should consider AFTER addressing the highest priority challenges.  We will regularly revise the contents of these lists to reflect current priorities.

Highest Priority Challenges (that we are addressing now)

Allow user customizable key bindings

Eclipse provides some support for configurable key bindings. The current support is limited:

In addition to making it possible for the user to edit the environment's key bindings, there are additional customization possibilities including visible actions and perspective layout.

Involved components: SWT, Platform UI, Text, JDT UI

Dynamic team (tasked Sept. 20, 2002): Mike Wilson, Andre Weinand, Kai-Uwe Maetzel, Chris McLaren, Steve Northover

More flexible project layout

In Eclipse the contents of a single project needs to be under a single root. There are complaints that this structure is too rigid. We have to understand this complaints and investigate into a solution, see 6664, 6144 or the newsgroup http://dev.eclipse.org/newslists/news.eclipse.tools/msg19749.html.

It would be desirable to have the output folder used by the Java builder to be not under the project 5043. This allows storing the source on a network drive and the generated code on a local drive.

For some projects parts of the source tree should be ignored for building purposes.

Involved components: Platform Core, Platform UI, VCM, JDT Core, JDT UI

Dynamic team (tasked Sept. 19, 2002): DJ Houghton, Philippe Mulet, Jim des Rivieres, Chris McLaren, John Arthorne

Also particpating: Kevin McGuire, Michael Valenta, John Wiegand, Jeff McAffer

Working documents:

  1. Problem Definition - Inflexible Project Structure
  2. Towards More Flexible Project Structure
  3. Flexible Project Structure

Add Workbench Navigation History

When navigating code many editors can get opened. It is easy for the user to lose context since there is no easy way to go back to a previous point in the navigation path. There should be support for back/forward actions to enable users to go back.

Issue tracking bug: 5700.

Involved components: Platform UI, Text, JDT UI

Dynamic team: Eduardo Pereira, Kai-Uwe Maetzel

Support building projects with circular dependencies

For 2.0.2 we will provide a fix to improve error reporting when there are circular projects. For 2.1 we will revisit this problem 10262 to improve the build behavior.

Involved components: Platform Core, JDT Core, Platform UI.

Dynamic team (tasked Oct. 2, 2002): Philippe Mulet, Jim des Rivieres, John Arthorne, Tod Creasey

Improve file encoding support

Eclipse allows to set the encoding used for reading and writing files for the entire workspace. This is perceived as too limiting. The challenge here is to describe the problem we want to solve, outline solution, and finally, to implement it.

Issue tracking bug: 5399.

Involved components: Platform Core, Platform UI, Platform text, Search, Compare, JDT UI, JDT Core.

Improve startup time

The time to start eclipse based products should be improved. This is typically done by delaying the loading of plugins for as long as possible. Additional opportunity for deferred activation of plugins should be investigated including changing how (and how much) we recover UI state.  There are also opportunities for improved tools to assist ISV's in optimizing the time it takes for their plugins to load.  

Involved components: Platform Core, Platform UI, (All)

Other important challenges (that we should consider AFTER addressing the highest priority challenges above)

Support multi-jar system libraries

Eclipse can already use 1.4 level JREs and JDKs as the product runtime.  However, some recent JREs have started packaging their class libraries in multiple jars (not a single rt.jar).  This may require additional support in JDT to make this both easy to define, and natural to use.

Involved components: All (testing JRE 1.4), JDT UI, JDT Core

Improve Ant support

Add support to navigate from Ant error output to the corresponding source.

Involved components: Platform  UI, Ant Core

Add cheat sheets

Cheat sheets are an idea for providing better user assistance. For example, "creation and deployment of a plugin" is a multi-step process that could be made easier to follow if there was a guide, similar to a recipe that would track the user's progress and provide both descriptive text that explains the steps involved and integration with Eclipse to automate the process.

Involved components: Platform UI

Add table of contents support to wizards

Users may get lost in a complex wizard. For these cases a table of contents may help provide the user context as well as assist in navigating.

Involved components: Platform UI

Improve update manager

Allow newly installed features to make the user aware of the new capabilities that were installed as well as allowing the feature to customize the environment.

Involved components: Platform UI, Install/Update

Support floating toolbars and views

There are cases where a floating view is useful - repetitive tasks or sequenced instructions: e.g. Cheat sheets, palettes.  Some developers want to maximize the edit area to use their entire screen and then rely on floating toolbars to provide access to function.

Involved components: Platform UI, SWT

"Remote Projects"

This item is currently under-specified.  We need to determine the correct approach for clients to work with remote resources in the 2.1 timeframe.  Once we have closed on the direction, we can provide a more accurate specification of this task.

Involved components: Unknown

Allow editors to open files outside workspace

It is a common request to be able to open a file that is not part of the workspace with Eclipse.  In addition, applications would like to provide OS associations into Eclipse so double-clicking on a file on the Windows Explorer would open the associated Eclipse editor.  We need to define what operations and capabilities would be available for  these "outside of the workspace" files

Involved components: Platform UI, Text

File System Synchronization

The handling of out of sync resources is not consistent. We should have a common scheme and improved support for handling file system synchronization.

Improve serviceability

Under some circumstances error messages that are only appropriate to eclipse developers are being presented to users. While at other times errors can cause the environment to unexpectedly terminate. The task here is to improve our exception handling and to come up with an approach that is suitable both for eclipse developers and eclipse based products.

See 12224, 23369, 1947, or the newsgroup http://dev.eclipse.org/newslists/news.eclipse.tools/msg03734.html

Involved components: Platform Core, SWT, Platform UI

Make Eclipse a platform for developing more than an IDE

There are two parts to this task, the first is to split out generally useful frameworks like JFace and JFace Text into their own plugin the second is to provide a stripped down workbench that can be the foundation for products that are not IDE's.

Involved components: Platform UI

Table Widget Scalability

The existing SWT table widget is not well suited for presenting large data models.  Investigate if it is possible to achieve sufficient performance from the existing widget.  If it is not possible to achieve the desired level of performance then a custom control should be developed.

Involved components: Platform UI, SWT

Separate User Preferences from Workspace Preferences

It should be possible to store user preferences that are not specific to a workspace separate from the workspace.

Involved components: Platform Core, Platform UI