Here are some of the more interesting or significant changes made to the Eclipse Platform for the 3.0 release of Eclipse since 2.1:
New Look and Feel | The look and feel of the workbench has evolved. Here are some of the things you will notice:
|
The new Welcome |
Eclipse 3.0 now opens with a new Welcome. It contains several pages
allowing you to learn about Eclipse, follow tutorials, try out samples or
learn what's new in this release. The new feature is fully pluggable and
Eclipse-based products can define their own Welcome using the same
mechanism.
|
Responsive UI | A number of changes have occurred in the UI to support a higher level of responsiveness. This includes support for running jobs in the background instead of tying up the UI and having to wait. What has been added:
The new Progress view showing the progress of a CVS checkout and a Workspace build background operation. Many user operations can now optionally be run in the background. When you see the progress dialog with the Run In Background button you can select it and the operation you are running will allow you to continue to work. This dialog also shows you the details of other currently running operations in the workspace and informs you when one operation is blocked waiting for another to complete. |
Scalable UI | The Platform has provided additional ways for controlling workbench clutter allowing Eclipse-based products to scale down what the user sees in the UI for various reasons. What has been added:
|
Fast View support enhancements | Fast view support has undergone some significant changes:
|
Editor management enhancements | A number of changes and enhancements have gone into the editor management in Eclipse. What has been done:
|
Improved Key Binding Support | Key bindings have been improved in the following ways:
|
Themes | The Eclipse Workbench now contains basic support for themes. This currently goes as far as allowing customization of colors and fonts used in the workbench at both the user and product level. |
Background workspace auto-refresh |
Changes made in the local file system can now be automatically refreshed in the workspace. This saves you from having to do a manual File > Refresh every time you modify files with an external editor or tool. This feature is currently disabled by default, but can be turned on from the Workbench preference page. |
Simplified manual build commands |
The set of available build commands in the Project menu has been simplified. The confusing Rebuild All and Rebuild Project commands have been replaced with a single Clean... command. The Build Project command in the Project menu (and in context menus) has been made smarter. It will now also build out-of-date prerequisite projects of the selected project if necessary. A new Build Working Set sub-menu lets you choose a set of projects to be built; this command brings all projects in that working set up to date, building any prerequisite projects that are not in the working set if (and only if) required. And you can quickly toggle auto-build on and off with Build Automatically. |
Cheat sheets |
Users can now be guided through long tasks with many steps using cheat
sheets. This new feature allows developers to define steps using XML-based
content files and optionally offer actions that perform the steps for the
user. Several tutorials available off the new Welcome page use the cheat
sheet mechanism.
|
Rich Client Platform | Eclipse now includes the Rich Client Platform (RCP). Eclipse was designed as a universal tool integration platform. However, many facets and components of Eclipse are not particularly specific to IDEs and make equal sense in non-IDE applications. The rich functionality in the Eclipse plug-in architecture, runtime, and workbench can now be leveraged in building arbitrary applications. Here is a snapshot of a simple web browser implemented using the Eclipse RCP: (See RCP home page more details.) |
Dynamic, standards based runtime |
The Eclipse runtime has been modified to run on top of an implementation of the OSGi framework specification (see osgi.org). This move increases the runtime's flexibility and paves the way for the use of Eclipse in a wider range of scenarios and environments. By choosing a standard base for the runtime, Eclipse developers are able to reuse existing function and infrastructure. Regular Eclipse users benefit from these changes as the runtime is now dynamic. New plug-ins can be installed into a running Eclipse and used without restarting. |
SWT and AWT/Swing Interoperability |
Embedding Swing/AWT widgets inside SWT widgets is now supported on Windows with JDK 1.4 and above, and on GTK and Motif with recent beta versions of Sun JDK 1.5. This screen shot shows an SWT Shell containing a Swing JTable to the right of an SWT Tree. (SWT snippet used for this example.) |
SWT Browser widget |
SWT has a new browser widget that can display HTML documents. This native widget is supported on Windows (using Internet Explorer 5.0 and above), Linux GTK and Linux Motif (requires Mozilla 1.4 GTK2; Mozilla 1.5 GTK2 and Mozilla 1.6 GTK2 are also supported), Mac (Safari) and QNX (Voyager). See the SWT browser snippet and the SWT FAQ for details. The Eclipse Browser plug-in shown above is available from the Eclipse download page in the Example Plug-ins. |
Mac OS X improvements |
The Mac OS X implementation of SWT has been significantly extended and improved, particularly in the following areas:
|
SWT support for complex script and right-to-left language support |
In order to handle right-to-left and complex scripts it is necessary to deal with several problems. For example, languages like Hebrew and Arabic are written from right to left, which requires the text to be reordered according to the Bidi Algorithm described in Unicode annex #9, before drawing and measuring. Other languages, like Arabic and Farsi, require contextual shaping, which means that the same character can assume different forms according to its position in the word. Other common problems are combined characters or ligatures (two characters that are joined together). Languages like Thai have special rules for word breaking and cursor navigation. Windows supports all cases previously mentioned. On GTK support for Bidi is implemented, but complex scripts (Thai, South Asian scripts) are still not fully supported. |
SWT Virtual table and improved table performance |
In addition to significant performance improvements in this release, Table now supports the SWT.VIRTUAL style. This lets developers create tables with large amounts of data quickly. When TableItems are needed, they are created on-demand. (SWT snippet used for this example.) |
Other SWT improvements |
There are numerous other new SWT features and improvements in this release, including:
|
Quick Diff: colored change indication in editor vertical ruler |
A new color-coded change indicator in the editor's vertical ruler can
be turned on for text editors using either the ruler context menu or When the mouse cursor is placed over a change in the vertical ruler, a hover displays the original content: The original content can be restored using the ruler's context menu. The context menu also allows to switch between references and enable/disable Quick Diff: Quick Diff is reset to normal operation by disabling and re-enabling it (for example by pressing Ctrl+Shift+Q twice). |
Quick Diff results in overview ruler |
The differences between the displayed document and a reference document (for example, the saved file or latest revision from CVS) can be configured to show up in the right-hand overview ruler. Quick Diff settings when opening new editors can be configured on the Workbench > Editors > Quick Diff preference page. |
Regular expressions in Find/Replace dialog |
The Find/Replace dialog for text editors now supports searching and replacing using regular expressions. Press F1 to get an overview of the regular expression syntax, and press Ctrl+Space to get Content Assist for inserting regular expression constructs. When the cursor is placed in a dialog field, that is supported by Content Assist, a small light-bulb above the upper-left corner of the field indicates its availability. |
Shared annotations preferences |
There is a new preference page Workbench > Editors > Annotations for configuring annotations for all text-based editors. Note: Due to this change, existing annotation preference settings for the editors converted to use the shared settings will revert to the default settings when an existing workspace is opened for the first time with Eclipse 3.0. |
New annotation preferences |
Besides using squiggly underlining, annotations can also be shown in the editor using background highlighting. Check Highlight in text on the preference page to enable background highlighting of annotations. The visibility of annotations in the vertical ruler can be controlled by checking Show in vertical ruler on the annotations preference page. |
Non-uniform file encodings |
Multiple different encodings are now supported at the same time. Eclipse will automatically determine the correct encoding for many kinds of files. Failing that, you can explicitly set a specific encoding at the project, folder, or file level from the resource's Properties dialog. |
New text editor functions |
The displayed width of tabs and the text
selection foreground and background colors are now customizable in the
text editor. See the Workbench > Editors > Text Editor page:
|
New editor functions |
All text editors based on the Eclipse editor framework support new editing functions, including moving lines up or down (Alt+Arrow Up and Alt+Arrow Down), copying lines (Ctrl+Alt+Arrow Up and Ctrl+Alt+Arrow Down), inserting new a line above or below the current line (Ctrl+Shift+Enter and Shift+Enter), and converting to lowercase or uppercase (Ctrl+Shift+Y and Ctrl+Shift+X). Double clicking on the line number in the status line is the same as Navigate > Go to Line... (Ctrl+L). |
New synchronize view |
The Synchronize View has changed significantly since 2.1. Here is a short list of the new features:
![]() |
CVS operations run in the background |
CVS operations have been enabled to run in the background. This means that you can spend more time working and less time looking at the synchronize, update, compare, and checkout progress dialogs. |
CVS checkout wizard |
Both the New > Project and File > Import commands now let you checkout a project from a CVS repository. Besides being convenient, it is especially useful for checking out projects from CVS repositories that don't support browsing. |
CVS commit sets |
The CVS Synchronize view now lets you review changes grouped logically by commit comment, committer, and date. This presentation is selected by the Layout > Commit Sets found on the drop down menu of the CVS Synchronize View. |
CVS date tags |
What was released in HEAD at midnight last Thursday? You can now use date tags to compare, checkout, merge, or simply browse a CVS repository. You can add date tags from either the CVS Repositories view or from any tag selection page. |
CVS history linking |
The CVS History View now has a Link with Editor toggle button. When linked, the revision history of the file currently being edited is automatically fetched (in the background) and displayed. This works not only for regular file editors but also for compare and remote revision editors opened from CVS-specific views. |
CVS SSH2 support |
The extssh CVS connection method now supports connecting to CVS servers running SSH2. The Team > CVS > SSH2 Connection Method preference page also allows you to create and manage your SSH2 keys. |
Blame a co-worker for a change |
Have you ever wanted to see who made a particular change in a file? When you run Team > Show Annotation the Annotate View will show you the list of authors for each line in the file and as you browse the file the Annotate View will update to highlight the user that modified the current line. The CVS History view will also automatically update so that you can see the commit comment for the particular lines. |
Switching perspective on launch |
The debugger can be configured to
switch perspectives on launch (see Preferences > Run/Debug >
Launching).
You can now control which perspective gets opened when a program is launched. These setting are available on the launch dialog when a launch configuration type is selected. |
Debugging in current perspective |
Debugging can now be performed in any perspective. When a breakpoint is encountered you will be prompted to switch to the Debug perspective. If you choose to remain in the current perspective, the Debug view and action set will be opened allowing you to start debugging. You can configure the debugger to open debug-related views (Variables, Breakpoints, etc.), in non-debug perspectives via the Run/Debug > View Management preference page (also available from the drop-down menu in the Debug view). |
Disabling breakpoints |
The Breakpoints view now has checkboxes for quickly disabling and re-enabling breakpoints: |
Skipping breakpoints |
The new Skip All Breakpoints button
turns off all breakpoints in the workspace. There are also new preference
on the Run/Debug preference page to skip breakpoints during
run-to-line and evaluations.
|
Workspace checked for breakpoints before running |
When an application is launched in run mode with breakpoints set in the workspace, the user will be prompted to see whether the launch should be in debug mode. This feature is turned on and off from the Run/Debug preference page. |
Filters for arrays |
You can now filter out null array elements in
the debug Variables view.
|
Setting variables in variables view |
The value of the selected variable in the
Variables View can now be changed in the details area of that view by
typing the new value and using the context menu's Assign Value
command (Ctrl+S).
|
Highlighting of lines in execution call stack |
New annotations have been added by Java debug
for highlighting the current instruction pointer and frames in the
execution call stack. You can configure these annotations from the Java
editor Java > Editor > Annotations preference page.
|
Launching from context menu |
Launch shortcuts are now available in the context menu of all applicable views - Navigator, Outliner, etc. Run and Debug are now separated into different submenus. The JUnit shortcut allows you to select and launch a single test method. An Ant build can be invoked from the Run context menu. You can run the entire build file, or open a dialog to select specific targets. You can also select and run individual targets from the Ant editor outline and Ant view. |
More support for string substitution variables |
Variables are now supported in various fields of launch configurations such as VM arguments, program arguments, and the working directory. |
Environment variables |
Some launch configuration types
make use of a new Environment tab for specifying the environment variables
to use when a configuration is launched.
|
Working sets for external tool builders |
When Ant is being used as a
builder, it can now be set to trigger on changes to files in a specified
working set.
|
Disable external tools builders |
Project builders can be disabled and re-enabled via checkboxes on the Builders project property page. |
Run Ant in a separate JVM |
By default Ant launch configurations now execute in a separate JVM (project builders still build in the same JVM by default). This option can be configured on the JRE tab of the Ant launch configuration. |
Ant View improvements |
You can now add build files to the Ant View via
drag and drop. There is also a new toggle (![]() |
Ant-specific problems in buildfile |
The error annotations shown by the Ant editor
now include Ant-specific problems as well as generic XML errors.
|
Ant editor text hovers |
The Ant editor now has text hovers for
properties, targets, and referenced objects such as paths.
|
Formatter for Ant buildfiles |
You can now reformat an Ant buildfile using the Format command (Ctrl+Shift+F) from the Ant editor context menu. |
Ant errors in Problems view |
Errors discovered parsing Ant build files now
show up in the Problems view. Other potential problems, such as missing
libraries or missing taskdef classes, are flagged as warnings.
|
Ant code assist proposals for custom tasks and types |
Custom tasks or types defined within an Ant buildfile (or contributed via extension point) are now presented as code assist proposals. Code assist can also help with their attributes. |
More filtering options in Ant editor outline |
You can now filter out top-level types and
imported elements in the Ant editor Outline view.
|
Ant editor outline support for working with imported elements |
In handling an imported file (using the Ant 1.6.* <import> task), the Ant editor Outline view uses label and icon decorators to indicate imported elements. (As previously noted, these elements can be filtered from the outline.) You can also quickly navigate to the imported element in whatever buildfile it is defined within. |
Extension point support for Ant build in separate VM |
Support has been added for making use of Ant extension point definitions in separate VM builds. Ant extra classpath entries, tasks, types and properties can be defined to be available in separate VM builds. See bug 47901 for details. |
Ant preference pages give previews |
The Ant > Editor preference pages now have a preview viewer that lets you see the effects of the various preference settings. |
Full template support for Ant |
You can add, remove, and edit the set of Ant templates that will be provided as code assist proposals. See the Ant > Editor > Templates preference page. |
New search view |
The new search view runs searches in the background and shows the results in either tree or table form. |
Streamlined global text replace |
The Replace dialog also supports Replace All in File and Replace All. When invoked from the context menu of the Search view the Replace action can either act on all current search results or on the selection in the Search view. The Replace dialog additionally supports regular expressions. The Search dialog for text searches now shows a Replace button that invokes the Replace dialog. |
Search in enclosing projects |
Searches can now be scoped to resources in the projects enclosing the selected elements. The new option shows up on search pages that support this new feature. |
Color preferences for compare/merge |
New color preferences for Compare/Merge tools are available via the Text Compare category on the Workbench > Colors and Fonts preference page. |
Dynamic help documents |
Plug-ins can now contribute "content producers" to the help system's org.eclipse.help.contentProducer extension point. A content producer has an opportunity to dynamically generate documents which would otherwise be read as static content. |
Help index moved to configuration area |
The internal index needed for searching help books is now stored with other configuration information outside the workspace. This means switching workspaces is no longer bogged down by lengthy re-indexing. |
Maximizing help views |
Maximize and restore buttons have been added to the toolbars of help views. |
Improved handling of features and patches |
The feature hierarchy has been reworked so that
included features are always matched exactly, but they can be patched. The
patch support has been reworked to be simpler and allow for patching
individual features, regardless of their location in the feature hierarchy.
When a feature is updated to a newer version, the install wizard will also show the available patches for the newer version, so they can be installed at the same time as the feature update. |
Automatic updates |
The Eclipse
update manager can be configured to periodically check for updates to
installed features. The options are found on the Install/Update >
Automatic Updates preference page.
|
Mirroring of update sites |
Eclipse now provides a command line utility for creating a local mirror of features on a remote update site. A local mirror makes it much easier to distribute updates to employees inside an organization's firewall. The command line update utility is described here. |
Uninstalling features |
Features
installed by the update manager
can now be uninstalled to free up space on disk. Open the configuration
dialog from Help > Software Updates > Manage Configuration, turn off
the disabled feature filter, and select Uninstall from the context
menu of the feature you want to uninstall.
|
Improved update support for large plug-ins |
It is now possible to ship an update to a large plug-in without the update having to include all of the plug-in's files. Instead, the update site can contain a "delta" plug-in version containing only the files that have changed. When the Update Manager installs this new plug-in version, the files from the delta are installed first and then the remaining files are copied over from the version of the plug-in already installed. |