This document contains descriptions of some of the more interesting or significant changes made to the Eclipse Platform for the 3.1 release of Eclipse since 3.0. It is broken into several sections:
Significant performance enhancements |
Performance has been significantly enhanced across the board versus the R3.0 release. We have also added debugging support that can continually monitor performance while the workbench is running, and have made pervasive benchmarking tests part of the standard test suites. The results of these tests are linked off of the download page for each build. Here is an example of (part of) the output: |
Support for bi-directional text |
Support for bi-directional languages (BIDI), has been extended across the platform. Window layout orientation can be configured from the command line, and a suitable default orientation is inferred from the locale. Note that SWT fully supports BIDI on Windows only. |
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. |
Filtering preferences and properties |
The Preferences and Properties dialogs now have a field for filtering the pages displayed to just those that have names or keywords that match the specified prefix. The example below shows matches for the keyword "tab". |
Navigating preferences and properties |
General support for linking preference and
property pages allows pages with related settings to refer to each other
and provide quick access to the other page. Combined with web-style forward
and backward navigation in the top right-hand corner, it is now much easier
to work with a set of related preference pages.
|
Importing multiple projects |
The Import > Existing Project into Workspace
command now allows you to search for all projects under a specified location
and import any projects found in one go. You can now also import existing
projects from TAR and ZIP archive files.
|
Import and export to tar.gz format |
The Import and Export > Zip File
wizards now support the tar.gz compressed archive file format popular
on UNIX systems. The wizards have been renamed Import and Export
> Archive File accordingly.
|
Editor lookup based on content type |
When determining the appropriate editor to open for a given file, the file's content type is now taken into account. Editors may now advertise that they are capable of working on certain content types as well as their traditional file name and extensions. |
File names containing colon and backslash characters |
It was previously not possible to create resources
in Eclipse with names containing colon (':') and backslash ('\') characters.
Such characters are now permitted when running Eclipse on operating systems
such as Linux that allow such characters in file names. Care must be taken
when file names must be meaningful across multiple operating environments;
Windows, in particular, does not allow either of these characters in file
names.
|
Support for executable and archive attributes |
You can now view and change OS-specific file
attributes such as the executable bit (Unix-based) and the archive bit
(Windows). CVS will now preserve these attributes when you check files
out of, or commit files to, a repository, and import wizards will preserve
the attributes of files and directories that are imported from a local
file system.
|
Line delimiter support |
You can now set the line delimiter that is used when creating new text files. You can provide a single setting for the entire workspace, or for a given project. In addition, line delimiter conversions can now be applied to projects, folders, and files, not just to the contents of a single editor. |
Single JAR plug-ins |
Eclipse now provides the ability to ship a plug-in packaged as a single JAR file rather than as a directory of files. Think of this as folding the plug-in metadata (plugin.xml etc.) into its code JAR. This move has a number of benefits ranging from smaller footprint to easier/faster install to fitting better with the standard Java notion of JARs. In Eclipse 3.1 most plug-ins are shipped as JARs in all distributions. This format is the new best practice for Eclipse packaging. |
Improved editor context menus |
Many commands that were only
available in other views are now right at your finger tips in the editor
context menu. For example, you can commit files to CVS or run and debug
Java programs and Ant builds from the editor's context menu.
|
View all keyboard shortcuts |
While working with your favorite editors and
views in Eclipse, just press Ctrl+Shift+L to see a full list of the currently
available key bindings. This is a great way to learn what is available
in the UI and to speed up your productivity by learning more key bindings.
This information is also available in the improved General > Keys
preference page.
|
Detached view behavior |
Eclipse 3.1 (on platforms that support it) now has improved detached view support. It is now much easier to place them wherever desired, including over another Eclipse window. First check "Detached" from the menu or drag the view tab out to create. Then place where you choose, drag and drop other views into the same window. Use the menu or drag the view tab to put it back in the Workbench window.
|
Perspective button dragging |
Eclipse 3.1 now supports re-ordering of perspective
buttons in the Perspective switcher, as well as the ability to open a
new window on a perspective by dragging that perspective outside the perspective
switcher.
|
Animations |
The workbench supports more animations to help users understand where UI elements are going. Creating a fast view for example is now animated. This can be enabled/disabled via a preference in General > Appearance > Enable animations. |
Improved error dialog
for background operations |
The error dialog for displaying background operations is now more consistent with the error dialogs displayed elsewhere in the workbench. Extra buttons are shown when additional information is available, such as this dialog resulting from a failed CVS operation: |
Import and export of preferences |
The Import/Export wizards now support preferences. You can choose to import or export all changed settings, or only specific preferences where supported. |
Content type preference page |
A new preference page to edit content types
and their associated file names and character sets has been added under
the General/Editors preference page.
|
New capabilities preference page |
A new capabilities preference page has been
introduced to simplify management of capabilities in large Eclipse-based
products.
|
Word completion |
In any text editor you can complete a prefix to a word occurring in all currently open editors or buffers. The default key binding for word completion is Alt+/ (Ctrl+. on the Mac). |
Open untitled files |
A text editor can be opened without creating a file first. Simply go to File > New > Untitled Text File. |
Shared editor preferences |
The General > Editors > Text Editors
preference page contains settings for all text editors. Preferences previously
duplicated on the Text and Java editor pages have been merged, and other
text-based editors can also be expected to honor those settings where
applicable in the future.
|
Preference for undo history size |
The undo history size can be set for text
editors on the General > Editors > Text Editors preference
page:
|
|
|
Hyperlink support |
Hyperlink support, which was restricted to
the Java editor, has been generalized and moved down to Platform Text.
General hyperlinking preferences are available on the General >
Editors > All Text Editors preference page, and simple URL
hyperlinking now works in the standard Text editor:
The Web Browser support is used to show the link, see General > Web Browser preference page for details. All SourceViewers that are configured with a SourceViewerConfiguration automatically get URL hyperlinking. |
Undoing first change clears dirty indicator |
The dirty indicator (*) in the editor tab goes away if the initial change is undone. |
Multi-line text search and replace |
Regular expression patterns used in text searches will
match text straddling lines.
|
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 lower left 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. |
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. 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).
|
Dynamic Help now available for all dialogs |
The new dynamic help that was added to the
workbench window in M5 is now available in dialogs as well. When triggered
by the system-specific help shortcut (F1 on Windows, Shift-F1 on Linux
GTK etc.), a shell opens aligned with the dialog showing the related help
information. Multi-page dialogs like wizards, preferences, launch configurations,
searches, etc. trigger the help pane to update its content as you flip
from page to page.
|
Downloading of updates in background |
The Update Manager's install wizard (Help > Software Updates > Find and Install) now allows downloading of plug-ins in the background. This way you can continue working while plug-ins are being downloaded. Once everything is downloaded, the install phase (unzipping the jar files and moving them to the installation directory) is still controlled by a modal dialog. |
Import/export update sites bookmarks |
You can now export your update site bookmarks
to a file. This makes it easy to migrate your bookmarks from build to
build, share them across multiple Eclipse installs, or give them to other
developers.
|
Update site mirrors |
Update sites can now specify a list of servers
that mirror their content. As features are looked up on a mirrored update
site, you're prompted to pick any of the available mirrors.
(See bug 69008 for details on how to specify mirrors in the site.xml.) |
Improved handling of feature dependencies |
When installing a feature that depends on other
features, the install wizard lets you automatically include all available
dependencies. Press the Select Required button to include all pre-requisites
of the selected features, and then Install All to complete the
install.
|
RCP delta pack |
A new RCP delta pack is now available (it's listed under the RCP SDK section of the download page). It contains all the OS-specific fragments of the RCP plug-ins, and is aimed at RCP developers that need to create a family of downloads of their application for different OSes. It beats having to download all the OS-specific RCP binary drops. |
SWT Browser widget improvements |
Many improvements have been made to the SWT Browser widget. Highlights include:
The new Browser Demo example (shown above) illustrates how to integrate HTML content with the SWT Browser widget into an application. The easy way to get the SWT samples is via the new welcome page. |
New spinner widget |
SWT now provides a spinner widget
on all window systems. See org.eclipse.swt.widgets.Spinner .
|
GC.setLineCap, GC.setLineJoin |
GC.setLineCap lets
you control how the end of a line should be drawn (flat, round, or square
styles as shown in the top line of the figure below). GC.setLineJoin
allows you to control how one line attaches to another one in methods
like GC.drawPolylines or GC.drawPolygon . Join
styles are bevel, round, and miter (bottom row)
See the SWT snippet for drawing lines with different cap and join styles. |
Mouse wheel events |
SWT now provides events when the
user spins the mouse wheel. Note that the default behavior of scrolling
the scroll bar continues to work as before. See SWT.MouseWheel . |
Improved layout support |
There are new methods on Composite
and Layout to allow applications to improve layout performance
and to force the laying out of all children even when there is an intermediate
parent that does not resize.
|
Remove widgets from Layout |
For more details, see the example snippet. |
SWT for Solaris-GTK+ |
Solaris-GTK has joined the lineup of supported configurations for which SWT and Eclipse are routinely built. |
Selection clipboard |
Unix users on both GTK and Motif can now select text and paste it with the middle mouse button. |
Native tree with columns |
The SWT For more details see the example snippet. |
Reorderable table columns |
The display order of columns in a table can be changed by dragging the column header (as well as being set programmatically). For more details see the example snippet. |
Standalone SWT download is now an Eclipse project |
For developers of standalone SWT applications, the SWT component is available as a separate download. For Eclipse 3.1, the SWT download can now be easily imported into your workspace as a project.
The org.eclipse.swt project you have imported defines the location of the native libraries so you can run your application with the standard Java or JUnit launchers. |
Starting SWT standalone applications using PDE |
In 3.1, the core Eclipse plug-ins, including SWT, are packaged as single JAR files rather than as a directory of files. The SWT plug-in JAR now contains everything including the native libraries. In order to run a standalone SWT application, the native libraries must be placed on the java library path. If you use the SWT Binary and Source download this is resolved for you but sometimes it is useful to build against the SWT plug-in from the Eclipe SDK. In Eclipse 3.0, standalone SWT developers added the native libraries using -Djava.library.path. In Eclipse 3.1, since the native libraries are inside a JAR, developers cannot easily locate the libraries. To run and debug your SWT application using the SWT plug-in from Eclipse, you can use the SWT application launcher to locate the native libraries. A shortcut to the launcher is available in the context menu of your Java class via Run As > SWT Application. Please note that the SWT application launcher may be unnecessary in future releases. |
Advanced graphics |
New API has been added for advanced graphics operations such as path for curves and lines, alpha blending and transformations. This new API requires the Cairo Vector engine on GTK and Motif, and GDI+ on Windows. For more details see the example snippet. |
Windows XP look and feel for Buttons |
Under Windows XP, buttons with images now show the expected look and feel for the current skin. For more details on Windows XP skins, see the SWT FAQ. |
New Link widget |
The new For more details, see the example snippet. |
Strike through and underline in StyledText |
Text can be underlined or
a strike can be drawn through it with the new For more details see the example snippet. |
CVS outgoing
change sets |
Outgoing change sets allow you to organize
outgoing changes into logical groups before they are committed. To enable
outgoing change sets, put the Synchronize view into Outgoing mode, click
on the change set button ![]() |
Colorful
CVS label decorations |
CVS label decorations can be configured to
use color and font to highlight file states. You can enable color and
font decorations for CVS on the Team > CVS > Label decorations
preference page and configure them for outgoing changes and for ignored
files via the General > Colors and Fonts > CVS preference
page.
|
Support for
CVSNT |
Thanks to the efforts of the CVSNT developers, the Eclipse CVS client can now supports CVSNT. CVSNT version greater than 2.0.58b have been tested with Eclipse 3.1. |
CVS commit review |
The commit dialog now includes a list of the
files that are being committed. This makes it easy to browse the files
while writing the commit comment, and to hold back certain files by removing
them from the list. It's especially useful when committing directly from
the Package Explorer or Navigator view.
There are also CVS preferences (Team > CVS) for determining whether commit comments are mandatory and for specifying the maximum number of files that should be displayed when committing. |
CVS improved file type support |
CVS now prompts whenever a file with an unknown
file type is about to be committed. This allows you to explicitly configure
a file type instead of CVS picking binary as the default. Also, file type
decisions can now be based on the file name alone (e.g. Makefile), not
just the file extension.
|
CVS branch and merge |
The CVS branch wizard now lets you use content
assist to pick a branch from a project already branched in your workspace.
When merging you can simply specify the end tag and the wizard will automatically find the appropriate start tag. If a start tag is not available, you can still merge without seeing a preview in the Synchronize view. |
CVS filtering tags |
The tag selection dialog used by the CVS replace
and compare commands to select a branch or version now shows matching
tags live as you type.
|
Ant debugger |
The new Ant debugger helps you debug the execution
of your Ant buildfiles. It includes the standard debugger features like
breakpoints, stepping, dependency call stack, and run-to-line support.
|
Folding in
the |
The Ant editor now supports folding of build
file regions. Hovering over a folded Ant element lets you peek at the
hidden code. You can quickly control folding presentation of a buildfile
from the editor ruler menu.
|
Rename in File for the Ant editor |
You can now rename occurrences of properties and targets within the same buildfile within the Ant editor. To activate use the editor context menu or the Alt-Shift-R keyboard shortcut when the cursor is located within the occurrence to rename. |
Mark Occurrences in the Ant editor |
You can now enable the Ant editor to mark occurrences of properties and targets. Mark occurrences is controlled via the Ant editor preferences and editor toolbar action. |
Hyperlink navigation in Ant editor |
The Ant Editor supports hyperlink navigation using the Ctrl key modifier. The key modifier can be changed from the Ant > Editor > Navigation preference page. |
Ant editor selected elements only |
The Ant editor can now be scoped to show only the selected source element in a buildfile. As with other editors, it is hooked up to the Show source of selected elements only toggle button in the Eclipse tool bar. |
Improved Ant navigation |
In the Ant editor, Navigate > Open declaration (F3) will now navigate you to the referenced target or property. |
Errors now show in external Ant buildfiles |
Error and warning annotations now show even for Ant buildfiles that are opened using File > Open External File... |
Ant manual at your fingertips |
In the Ant editor, place your cursor on the name of an Ant task, type, etc. and press Shift+F2 to open a browser on the relevant page in the Ant manual. |
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". |
More control over error reporting in the Ant editor |
You can now set the Ant editor to ignore all buildfile problems. As well you can specify specific buildfile names that the editor should not report problems for. Both settings are controlled using the Ant editor preferences for Problems. |
Console EOF |
In the Console view you can signal end-of-file to a program waiting for input by pressing Ctrl+Z on Windows (Ctrl+D on Linux). |
Console encoding |
The console can be configured to display output using a character encoding different from the default encoding. To set the console encoding for an application, use the Console Encoding settings on the Common tab of a launch configuration. |
Capturing program output |
A program's output can now be captured in a file in addition to being written to the console. The behavior is controlled by settings found on the Common tab of launch configurations. |
Multiple console views |
If you find you need to see multiple consoles at once, you can now open additional Console views via the New Console View command found on the Open Console drop-down menu in the Console view. |
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. |