And like that, winter has passed and it's spring again. Here are some of the more noteworthy things available in milestone build M6 (March 23, 2007) which is now available for download. See the build notes for details about bugs fixed and other changes.
Platform |
|
| Eclipse on Vista (WPF) | Eclipse now runs on WPF (Windows Presentation
Foundation). It is still early access, but it is stable enough for the SWT team to
develop on it. You can try it yourself by getting it from the Eclipse downloads
page.
|
| Native features on Vista (win32) | SWT is now exploiting more of the native features of the Vista platform. For example, using native double-buffering on Vista win32 makes painting in double-buffered canvases twice as fast. |
| JavaXPCOM support | SWT.MOZILLA-style Browsers can
now be programmed to via JavaXPCOM. This requires that XULRunner 1.8.1.2
be installed, whose current release status is summarized here.
This example
snippet created the snapshot below.
|
| OLEExample and OLE improvements | The new OLEExample showcases SWT OLE (win32)
support. We now do a better job of hosting OLE documents in SWT. For example,
OleClientSite in-place activation scrollbars work correctly. The OLEExample
comes with the Example Plug-ins on the Eclipse
Project Downloads page. To install and run the SWT Examples, see this
page.
|
| Reparenting support on Mac OSX | SWT on Mac OSX now supports widget reparenting. |
| Display.post() supports more mouse events | Display.post() now supports generating mouse button 4 and 5 and mouse wheel events. This example snippet automatically scrolls a StyledText. |
| Advanced graphics supports mirroring | Advanced graphics now renders correctly in RTL
mode. The snapshot below shows bidirectional text drawn using transforms
and patterns on a Canvas.
|
| A new look |
Previous milestones have included a presentation titled "3.3 Presentation (Experimental)". Its features are now part of the default presentation. This look has a few small visual changes to workbench tabs:
The previous 3.0 presentation can be reinstated via the General > Appearance preference page. |
| Improved min/max workflow | When a view or editor stack is minimized, a
placeholder tray now appears in the closest trim location along the left,
bottom, or right edges of the workbench. Each view from the view stack
acts as a fast view while in the trim. The stack can be restored via the
tray's restore icon. Minimized trays can be drag and dropped to new locations
along the workbench trim. Maximization of any stack triggers minimization
of all others.
This new behavior supports a more fluid workflow between focused tasks (such as editing in a maximized editor) and the need for intermittent access to secondary information (such as selection in the outline view). In addition, it provides a more compact representation of minimized stacks, saving screen real estate. |
| Help breadcrumbs | Help will now display a series of links called
breadcrumbs at the top of each document that appears in the table of contents.
These allow for easier navigation and provide more information about the
context of the document being viewed.
|
| Categorized help search | You can now categorize help search hits by book
in the help window via the new toolbar toggle button. Similarly, you can
also toggle the search descriptions.
|
| Link to anything from context-sensitive help | You can now add arbitrary command links in context-sensitive
help, allowing applications to perform any operation. For example, you
can link to a related cheat sheet:
|
| Joining lines in text editors | You can now use the new command Ctrl+Alt+J in a text editor to join lines. |
| Convert tabs to spaces | Text editors now allow you to convert tabs to
spaces when typing.
This feature can be enabled via General > Editors > Text Editors > Insert spaces for tabs preference. |
| Make hover sticky | F2 can now be used in text editors to
make a hover sticky:
The hint can be disabled via the General > Editors > Text Editors > Show affordance in hover on how to make it sticky preference. |
| Triple-click in text editors | Triple-clicking in a text editor now selects the line. (Selecting multiple lines using triple-click + mouse move is coming in M7.) |
| Resizable Find/Replace dialog | The Find/Replace dialog can now be resized
and remembers its size:
|
| Platform level proxy and SSH2 settings | A new General > Network Connections preference
page and corresponding API have been added to the Eclipse Platform for
managing proxy settings.
In addition, the JSch SSH2 client used internally by the Eclipse CVS client has been pushed down to the Eclipse Platform so that it can be used by other clients as well. Use the new General > Network Connections > SSH2 preference page to configure it.
|
| Equinox HTTP service | The Jetty-based implementation of the OSGi HTTP service has been added to the Platform SDK along with the bundles that provide JSP and extension registry support. Help is now using this service (instead of Apache Tomcat). |
| Orbit consumption | The Eclipse Platform SDK is now consuming multiple bundles hosted by the Eclipse Orbit project including Jetty, Lucene, Servlet APIs, Jasper, and Commons Logging. |
JDT |
|
| Improved null check detection | The existing Null reference option
has been split into three options:
The severity of these options can be configured on the Java > Compiler > Errors/Warnings preference page: Tab folders Potential programming problems and Unnecessary code. |
| Content assist proposes unresolved names | When completing a name reference, content assist
now proposes unresolved names found in other parts of the code. For example:
|
| Select execution environment when creating Java project | When you create a Java project that you want
to share with a team, it is a good idea to use an execution environment
instead of a specific JRE.
Execution environments are symbolic representations of JREs with standardized entries like 'J2SE-1.4', 'J2SE-1.5'. That means no file system path will go into the shared build path. JREs can be assigned to the environments on the Java > Installed JREs >Execution Environments preference page. |
| Decorations for transient and volatile fields | Transient and volatile fields now have corresponding
icon decorations:
|
| Workspace relative paths for Javadoc location | Workspace relative paths are now accepted as
Javadoc locations for archives and class folders:
|
| Folders in JARs | Files and folders in JARs are now correctly
represented in the Package Explorer and can be opened in editors.
|
| Export and import JUnit test runs | JUnit test runs can now be exported and imported.
|
| Open Type opens multiple types | The Open Type dialog (Ctrl+Shift+T)
now supports opening multiple editors at once.
|
| Background color for source hovers |
The background color for all hovers that show source in the Java editor can now be configured on the Java > Editor preference page. |
| Launch selection vs. launch last | Running and debugging applications has been
simplified to run or debug the selected file or active editor. Use the Run/Debug
> Launching > Launch the selected resource or active editor preference
to enable this behavior. When the selected resource (or active editor)
is not executable, you can opt to launch the associated project by selecting "Always
launch project if selected resource cannot be launched".
Pressing the Run or Debug toolbar button will launch the selected resource (as will the Run or Debug action in the top level Run menu). When no launch configuration exists for a file and there is only one way to launch it, the file will simply be launched in the mode you selected. When there is more than one way to launch a file you will be prompted to select how to run or debug the application. For example, when running a JUnit test you can run as a Java application or JUnit test. A launch configuration will be created and an entry will be added to the launch history for the application.
When the same resource is launched again, the most recent configuration in the launch history associated with that resource is re-launched. |
| Run/Debug settings | A new properties page has been added to manage
launch configurations associated with a resource. For example, selecting
the Run/Debug Settings property page for a project will display
all launch configurations associated with that project. Configurations
can be created, deleted, and edited from this page.
|
| Hyperlink stepping | When debugging you can use hyperlinks to step
into a method. Use the Ctrl+Alt keys to step into the method (rather
than Ctrl which will navigate to the source code).
|
| Step through filters vs. step return | You can configure step filters to always return
from a filtered location or step through to a non-filtered location. For
example, if java.util is a filtered location, stepping into
code in HashMap could result in a call-back to your application
code to check the equality of an object. If you choose to Step through
filters a step into would end up in your application code. However,
when the Step through filters option is disabled, a step into HashMap would
behave like a step over.
Use the Step though filters preferences setting on the Java > Debug > Step Filtering preference to toggle the feature. |
| Export logical structures | You can now export and import Java logical structure
preferences separate from other workspace preferences. Java logical structures
are defined on the Java > Debug > Logical Structures preference
page. Logical structures are used to define alternate presentations for
complex data structures and are displayed when examining objects in the
Variables view. For example, displaying a java.util.Collection as
an array rather than revealing the internal data structure that implements
the collection.
|
| Force early return | You can force an early return from a method
(only available when debugging on a Java SE 6 virtual machine). This returns
a value from the current stack frame without executing any more instructions
in the method and releases any locks obtained by synchronized blocks. A
return value is created by selecting an expression and Force Return (Alt+Shift+F).
This action is available from the Java editor's context menu, top level
Run menu, in the Display view, and in the detail pane of the Variables
view.
Forcing an early return from a non-void method allows an expression
to be selected. For example, if a method was going to return
|
| Browse object references | You can browse all references to an object (only
available when debugging on a Java SE 6 virtual machine). Object references
can be displayed in the variables view by toggling the Show References
setting in the view menu. References to an object are grouped in a collection
named References.
References can also be displayed in a popup by selecting an object in the variables view and selecting All References from the context menu. |
| Browse all instances | You can browse all instances of a Java type
(only available when debugging on a Java SE 6 virtual machine). Instances
are displayed in a popup by selecting a type in the editor outline, a type
name in the Java editor, or a variable in the Variables view and selecting
All Instances from the context menu.
|
PDE |
|
| Plug-in refactoring | PDE now supports plug-in refactoring by providing
the ability to rename a plug-in ID and update all references to it in downstream
plug-ins.
The Rename function is available in the context menu of the Plug-ins view, the Plug-in Dependencies view and the MANIFEST.MF source page.
Plug-in refactoring may also take place as part of the regular project renaming action in the Package Explorer view (Refactor > Rename from the context menu) if the project name matches the plug-in ID. |
| Custom splash screen templates | PDE now provides three templates for creating
custom splash screens, complete with code, images and XML markup:
This feature is available in the Templates section on the Splash page of the product configuration editor. Splash screen templates are also available in the New Extension wizard when generating a new org.eclipse.ui.splashHandlers extension on the Extensions page in the plug-in manifest editor.
|
The above features are just the ones that are new since the previous milestone build. Summaries for earlier 3.3 milestone builds: