Here are some of the more noteworthy things available in the Oxygen milestone build M3
which is now available for download.
We also recommend to read the Tips and Tricks, either via Help > Tips and Tricks... or online for
Platform,
JDT, and
PDE.
Platform | |
Copy Details submenu for Problems and Tasks views |
You can copy the description or the resource qualified name of an error, warning, or task into the clipboard using commands in the Copy Details context menu.
|
Show Annotation renamed to Show Revision Information |
For files checked out from CVS, the Show Annotation command in the text editor's vertical ruler and in the Team menu
has been renamed to Show Revision Information.
This change has been synchronized with the Eclipse Git team provider, so future versions of EGit will use the same name. |
"Other Projects" working set in Project Explorer |
If you're using the Project Explorer and working sets as top-level elements, the Top Level Elements view
menu now provides a way to show an Other Projects group for projects that are not in one of the currently active working sets.
|
"Recently used filters" feature in Project Explorer |
The Project Explorer view now has a Recent Filters menu that shows the most recently used filters.
|
Reduced window margins |
The window margins have been reduced to provide more space in the IDE.
Old style:
New style (see the reduced space below the Quick Access box).
|
External browsers on Linux |
On Linux, the list of recognized external browsers has been updated to include:
|
GTK theme system property |
SWT now stores the GTK theme used at launch time in a system property, org.eclipse.swt.internal.gtk.theme .
This property can help with troubleshooting issues that are specific to certain themes.
It can be viewed in About > Installation Details > Configuration.
|
Ctrl+E command improvements |
You can use the Quick Switch Editor (Ctrl+E) command to list and filter all the open editors.
This works now also if you have selected a view in the editor area.
You can filter the list using wildcards, and select editors using mouse or keyboard.
Now you can also cycle through the list by pressing Ctrl+E again. Or use Arrow Up/Down as before.
|
Perspective descriptions in Open Perspective dialog |
You can now see the description for a perspective (if provided by the contributing plug-in) by pressing F2 in the Open Perspective dialog.
|
JDT | |
Remote Java Application "Socket Listen" type supports multiple incoming connections |
The Remote Java Application debug configuration's Standard
(Socket Listen) connection type now supports incoming connections
from multiple VMs. This is useful for debugging distributed
systems. The connection limit may be set to a fixed number, or
0 for unlimited connections.
|
New option to disable HCR |
You can now disable Hot Code Replace (HCR) if it causes any trouble
or if you want to avoid code changes in a debug target. HCR is enabled by default but can be disabled
in Preferences > Java > Debug.
|
Escape text when pasting into a string literal |
The Java > Editor > Typing > Escape text when pasting into a string literal preference option is now enabled by default.
This will escape the special characters in pasted strings when they are pasted into an existing string literal.
To paste without escaping, you can either paste outside of a string literal, or you can disable Edit > Smart Insert Mode. |
Set colors for Javadoc |
You can use the new color preferences to set the foreground text color and the background color in the Javadoc view and hovers:
|
Hide inherited members from java.lang.Object |
You can hide all inherited members from java.lang.Object
in the Quick Outline (Ctrl+O) by using the new filter from the drop-down menu (Ctrl+F10):
|
New Java index |
Eclipse 4.7 M3 contains an experimental new Java index which is enabled by default. If you suspect an index-related problem, you can disable the new index from Preferences > Java:
Currently, the new index shouldn't affect your experience. Once the work is finished, we expect big performance improvements for type hierarchies and in scenarios with many JARs. |
PDE | |
Validate launch configuration activated by default |
When you create a new Eclipse Application launch configuration, PDE will now by default enable the option to
Validate Plug-ins automatically prior to launching.
This helps you to identify missing plug-in dependencies before the actual start of the application and makes it easier for new plug-in and RCP developers to identify common problems.
You can disable this validation in the launch configuration dialog, on the Plug-ins tab.
|
Severity of default method addition in API tooling |
On the Plug-in Development > API Errors/Warnings preference page in the API Compatibility tab,
there is a new option in the Interface section to control the severity of a "default method addition" API change.
By default, the option is set to "Error" because adding the same method in multiple interfaces can break existing clients at run time (JLS8 13.5.6).
|
Added a PDE plug-in project template for the Generic Text Editor |
A plug-in template was added to show off the new extensible generic editor functionality. It will kick-start you with a sample .target file editor with syntax highlighting.
|
Search finds plug-in references in features |
Search > Plug-ins... for references to a plug-in also finds references to the plug-in in features.
|
Platform Developers | |
Lambda as SelectionListener |
The SelectionListener interface in SWT was enhanced to provide the
SelectionListener#widgetSelectedAdapter(Consumer<SelectionEvent> c) and
SelectionListener#widgetDefaultSelectedAdapter(Consumer<SelectionEvent> c)
static helper methods that accept lambdas and method references as listeners.
Example for adding a selection listener to a button: import static org.eclipse.swt.events.SelectionListener.widgetSelectedAdapter; // ... Button button = new Button(parent, SWT.PUSH); button.addSelectionListener(widgetSelectedAdapter(e -> {System.out.print("Hello");})); |
SWT Button widget background and foreground color can be styled on Windows |
You can now style the background and foreground color of the SWT Button widget on Windows:
Note: Above implementation is a custom paint operation that applies to all Button types except SWT.ARROW on Windows.
|
Composite#changed(Control[]) deprecated |
The Composite#changed(Control[]) method has never been used in the Eclipse Platform, and the
method never had a well-defined purpose. It is now deprecated. Calling it is now equivalent
to calling Composite.layout(Control[], SWT.DEFER) .
|
SWT spies separated from Tools plug-in | The Sleak and Spy views are now available in a new plug-in, org.eclipse.swt.tools.spies. They were previously part of org.eclipse.swt.tools, which depends on JDT. With the new spies plug-in, it is now possible to use the spies without depending on JDT. This makes it especially suitable for inclusion in target definitions and Eclipse RCP applications. |
Added an easily-extensible Generic Text Editor |
With this new editor it is now much easier to enrich a new generic editor so you can add support relatively easy for new languages.
It is reusing the existing Eclipse editor infrastructure but with the generic editor you don't need to implement an
editor to supply functionality for a new file content-type. Instead you make the generic editor smarter by extension points.
The following example shows how to contribute features to the generic editor via extensions: <extension point="org.eclipse.ui.genericeditor.contentAssistProcessors"> <contentAssistProcessor class="org.eclipse.ui.genericeditor.examples.dotproject.NaturesAndProjectsContentAssistProcessor" contentType="org.eclipse.ui.genericeditor.examples.dotproject"> </contentAssistProcessor> </extension> <extension point="org.eclipse.ui.genericeditor.hoverProviders"> <hoverProvider class="org.eclipse.ui.genericeditor.examples.dotproject.NatureLabelHoverProvider" contentType="org.eclipse.ui.genericeditor.examples.dotproject" id="natureLabelHoverProvider"> </hoverProvider> </extension> <extension point="org.eclipse.ui.genericeditor.presentationReconcilers"> <presentationReconciler class="org.eclipse.ui.genericeditor.examples.dotproject.BlueTagsPresentationReconciler" contentType="org.eclipse.ui.genericeditor.examples.dotproject"> </presentationReconciler> </extension> Those new extension points receive as arguments regular Platform classes (IPresentationReconcilier, ITextHover, ICompletionProposalComputer) to add behavior to the generic editor. No new Java API is necessary. Here is a simple example of adding some minimal Gradle syntax highlighting support:
Above you see it is relatively simple to supply the rules for syntax highlighting.
The generic editor picks those up through the extension points and here is the editor in action:
|
An extension point to associate existing editors and content-types |
The extension point org.eclipse.ui.editors can now receive a new editorContentTypeBinding
child element which allows to define binding of an existing editor for an existing content-type.
Here is an example: <extension point="org.eclipse.ui.editors"> <editorContentTypeBinding contentTypeId="org.eclipse.ui.genericeditor.examples.dotproject" editorId="org.eclipse.ui.genericeditor.GenericEditor"> </editorContentTypeBinding> </extension> |
Application model allows toolbar definitions for parts and perspectives |
The application model has been extended to support the definition of toolbars (via trimbars) for parts and perspectives.
This simplifies the implementation of a common requirement in RCP applications. You can now define toolbars specific to a perspective and
toolbars rendering within the part area via your custom renderer.
Currently, the default Eclipse renderers do not use these new elements. |
Dependency injection for Eclipse 3.x views available |
You can now use dependency injection (di) in your Eclipse 3.x. views.
You can enable this for a view via the new inject flag in the org.eclipse.ui.views extension.
Example usage:
|
Debugging test timeouts |
In bundle org.eclipse.test.performance,
there's a new API that helps debugging those pesky tests that are freezing / hanging / DNF ("Did not finish")
in a remote Hudson build, and you have no clue why, because they always pass locally.
If your tests are organized in a JUnit-4-style test suite using the @RunWith(Suite.class) annotation, you can just replace that line by @RunWith(TracingSuite.class)
This will log the start of each atomic test contained in the suite to |
The above features are just the ones that are new since the previous milestone build. Summaries for earlier Oxygen milestone builds: