Platform Runtime
|
Don't delete config.ini |
After modifying an Eclipse install by means other than the Eclipse Update manager (e.g., after unzipping a new plug-in or feature into your Eclipse install directory, the next time you restart Eclipse you need to use the -clean option to ensure that the changes are noticed and picked up.
Note: In the past, some people accomplished the desired outcome by deleting the configuration folder in the install directory. This is no longer possible because the config.ini file in that directory contains vital irreplaceable information. If you still prefer mucking with the configuration directory instead of using -clean , you should delete the inner folders but leave config.ini alone. |
Platform UI
|
Searching in the Properties dialog |
The Properties dialog now supports searching for property pages in the same way that the Preference dialog does.

|
|
View settings dialogs |
There is now a dialog provided to do settings for your views (ViewSettingsDialog), with a reusable action provided (ViewPreferencesAction). Below is the settings dialog for the progress view.

|
|
Deferred content providing |
The ILazyContentProvider has been implemented for use in SWT.VIRTUAL TableViewers that wish to only lookup content as it is requested. |
|
Keywords in the preferences dialogs |
The preference dialog now support searching by keyword as well as by page name so that several pages with related content but unrelated page names can be found with the same search. In the example below all of the displayed pages have the keyword "Appearance". See the org.eclipse.ui.keywords and org.eclipse.ui.preferencePages extension points for more details.

|
|
New Undo/Redo API |
Applications can now access a platform undoable operation history using API in org.eclipse.core.commands.operations. IUndoableOperation defines the interface for operations that can be undone and redone. Views and editors can provide access to the undo and redo support by using the UndoActionHandler and RedoActionHandler provided in org.eclipse.ui.operations. The text editors and refactoring support have not yet migrated to this API, but migration is planned shortly after M5. Feedback is encouraged. The API is still evolving, so early adopters should expect some changes before the dust settles. |
|
WorkbenchAdvisor API refactored |
The window-level responsibilities in WorkbenchAdvisor have been split out into a window-level advisor, WorkbenchWindowAdvisor and a corresponding ActionBarAdvisor. This leads to a cleaner separation of responsibilities, with a one-to-one correspondence between the advisors and the configurers. The ActionBarAdvisor also has some convenience methods for managing action lifecycle. The change is backwards-compatible, but it is recommended for 3.1-based RCP apps to migrate to the new API.
For more details, see bug 83658. |
|
New wizard registry API |
Workbench wizards (of the New, Import, and Export varieties) are now available from registries obtained from IWorkbench.getXXXWizardRegistry() methods. The IWizardRegistry allows you to access IWizardDescriptor and IWizardCategory objects. From these descriptors, RCP and plug-in developers may create their own Wizard container implementations. |
|
New view registry API |
The descriptors for workbench views contributed via extension points are now publicly accessible via the IViewRegistry interface obtained from IWorkbench.getViewRegistry(). From this registry you can obtain IViewDescriptors and view Category objects that can be used by RCP and plug-in developers to create their own view activation mechanisms. |
|
Import and Export specific sets of preferences |
The Import/Export wizards now support preferences. The list of specific sets of preferences that can be exported and imported will grow in future milestones.

|
|
Welcome launch bar |
When the 'Go to the Workbench' link is selected in Eclipse SDK welcome, the entire Welcome page is collapsed into a new Welcome launch bar which appears in the right workbench window trim area by default. The Welcome launch bar allows new users to quickly restore the last Welcome page, or jump to one of the main pages using the shortcuts.
While the platform controls the basic behavior and the 'Restore' button, background and foreground color as well as the shortcuts are contributed via the welcome extension. See the plug-in manifest for the org.eclipse.platform for an example of a Welcome launch bar definition.

|
|
XHTML support for authoring Welcome pages |
Welcome pages can now be authored using XHTML 1.0 in addition to the existing XML markup. A WYSIWYG editor can be used to produce XHTML 1.0-compliant pages that can then be contributed and used as Welcome pages. This support is an add-on to the existing 3.0 welcome functionality. This means that existing features like content reuse, targeted page contributions and dynamic content creation continue to be supported via XHTML tags.
You can read more about this in the XHTML Welcome proposal. |
|
Controls in FormText |
It is now possible to mix SWT Control objects with hyperlinks, text and images in FormText (part of Eclipse Forms). The new tag is <control> and it can be added anywhere where <img> tag could go. If a group of controls needs to go together is a certain way, you can group them in a Composite and register that Composite using the <control> tag. Controls that can take focus will be inserted in the focus traversal list so that focus moves between links and controls according to their position in text when you use Tab and Shift+Tab keys.

|
Help
|
New Help view |
Help has been brought closer to where you work with the introduction of the Help view. It contains various pages that provide assistance when you need it. If you press F1, the view will open with the topics related to what you are working on at the moment. You can also switch to All Topics and see what else is there in the local help. And the new documentation search spanning local help, remote InfoCenters, Eclipse.org, and the web is now directly accessible from the Help menu (via Help > Search Help).
You can read more about the help view and the new document search in the Help view proposal. Feedback on this new feature would be appreciated.

|
CVS
|
CVS operations on Java packages are no longer deep |
In the past, performing a CVS Update on a Java package would update the package and all of its subpackages. With new support added in this milestone, a CVS Update (or any other CVS operation) will exclude subpackages and update only those files contained in the package.
Note that this support is general to any model or repository provider. Click here for more details. |
Platform Text
|
Word completion |
In any text editor, you can now complete a prefix to a word occurring in all currently open editors or buffers. The default key binding for word completion is Alt+/. |
Update
|
Install/Update wizard redesigned |
The install wizard (Help > Software Updates > Find and Install) has been redesigned to address performance and usability issues:
- searching an update site can be performed as a background job, which is very handy when the update servers are slow to respond
- the update sites page has been simplified to only lists the sites, without having to connect to extract category information
- features found on those sites are now displayed hierarchically, under the appropriate site and category, as defined in the update sites
- the location page has been simplified
- the update site search performance has also been improved by avoiding downloading of unnecessary feature packages.
|
Debug
|
Breakpoint organization |
The Breakpoints view allows breakpoints to be grouped by type, project, file, or working sets, and supports nested groupings. You can use breakpoint working sets to group breakpoints into problem-specific sets that can be quickly enabled and disabled as a whole. Newly-created breakpoints are automatically placed into the default breakpoint working set (displayed in bold). You can copy and paste and drag and drop breakpoints between breakpoint working sets, and a breakpoint can be placed in more than one breakpoint working set.

|
|
Find variable |
The Find Variable action in the Variables view allows you to type in the name of a variable you are looking for. As you type, the Variables view selects the next visible variable matching the entered text. As well, the Find variable dialog shows variables matching the text entered so far. |
Ant
|
Ant "objects" presentation in the UI |
Ant tasks, types, properties, and extra classpath entries are differentiated in the Ant preferences and Ant launch configuration tabs based on their availability for same or separate JRE builds.

|
|
Ant debugger call stack and properties |
The Ant debugger presents the dependency call stack for any target.
 The presentation of Ant properties are also grouped in the Variables view for your convenience:
- System: Ant properties set from the System for the the build
- User: properties such as those set using the -D option
- Runtime: all properties set during the execution of the build
|
|
Ant target per build kind |
The Targets tab for an Ant builder allows you to specify the target(s) that should be executed for each build kind. This includes the target to execute when you invoke a "Clean".

|
Part 3
JDT
|
Boxing/unboxing diagnosis |
The J2SE 5.0 autoboxing capability is powerful but it can lead to unexpected behavior especially when passing arguments. The compiler introduces an optional diagnosis that indicates when autoboxing or autounboxing is performed. In the following example, one might think that foo(Integer) would be called, but since autounboxing is performed, foo(int) is called.

|
|
Assignment with no effect diagnosis for postfix expression |
The optional diagnosis for assignment with no effect now detects the case where a postfix expression is assigned to the same variable, e.g. i = i++;

|
|
Searching generic methods and constructors |
The Java search engine now finds references to, and declarations of, generic and parameterized methods.

|
|
Searching type parameters |
The Java search engine now finds references to, and declarations of, type parameters in generic types and methods.

|
|
Source Actions |
The source actions available in the Source context menu now support all the features of J2SE 5.0:
- Override/Implement Methods supports generics and varargs in method declarations
- Generate Getters and Setters works on fields of generic type as well
- Generate Delegate Methods has support for generics and varargs, and handles methods from types occurring in type bounds as well
- Add Constructors from Superclass offers support for generics
- Generate Constructor using Fields offers support for generics

(More details on JDT UI's and JDT Text's Java 5.0 status for 3.1 M5 is available here.) |
|
Change Signature and other refactorings are J2SE5-aware |
Many refactorings have been improved to handle new J2SE 5.0 language features. For example, Change Method Signature now allows editing methods whose parameters are parameterized types:

Other refactorings that have been updated include Rename, Inline Constant, Inline and Extract Method, Generalize Type, and Introduce Factory. |
|
Extract Interface refactoring |
The extract interface refactoring has been rewritten in order to provide full support for J2SE 5.0 and to better respect code style preferences. New features include:
- Support for generic types and varargs of J2SE 5.0
- Full rewriting of existing method comments
- Full use of code templates during code generation

|
|
Static import groups
|
To organize your static imports, create groups for the static imports and place them where you prefer. A new feature is to define an 'others' group to collect up all imports not matched by any other group:

The 'others' group feature is also available for non-static imports. |
|
New quick fixes |
For unresolved Java types, you now also get proposals to create enums, annotations, and new type parameters:

|
|
Syntax highlighting |
The Java editor now properly highlights the new J2SE 5.0 language features. Go to the Java > Editor > Syntax Coloring preference page to change the colors or to enable semantic coloring of type variables, annotation elements and auto(un-)boxed expressions:

|
|
New for loop template |
The new foreach template inserts a new 'for' loop into the code, proposing local Iterable instances you may want to iterate over:

|
|
Autoboxing parameter proposals |
Proposed parameters include auto(un-)boxing proposals:

Note: Java > Editor > Code Assist > Advanced > Guess filled argument names preference has to be enabled. |
|
Folding provides better captions |
When folding a Java element, the remaining line in the Java editor is the one containing the element's name. The first comment line is displayed for folded Javadoc comments:

|
|
Header comment folding |
Header comments and copyright statements in Java source files are now folded:

|
|
Improved source folder page for new Java project wizard |
An improved source folder configuration page in the Java project creation wizard assists you in creating projects from existing source. You can define source folder entries, include/exclude folders directly on the tree, and test the results of your action right away.

|
|
Build path menu in the Package Explorer
|
The context menu of the Java Package Explorer has a new 'Build Path' menu entry, offering context-sensitive actions to modify the build path of a Java project. You can add/remove new source folders, archives and libraries, and include/exclude folders and files from a source folder:

|
|
Tool tip description for Javadoc |
Edit > Show Tooltip Description (F2) for Javadoc now uses the SWT Browser widget. |
| |