Eclipse Project Oxygen (4.7) M2 - New and Noteworthy

Here are some of the more noteworthy things available in the Oxygen milestone build M2 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
Configure left and right sides in Compare editors Compare editors now offer a button Swap Left and Right View.

The direction of comparison is preserved between invocations of the Compare editor and can also be changed in the Compare/Patch preference page.

'Switch Workspace' and 'Restart' menu items The Switch Workspace and Restart menu items are now at the bottom of the File menu: just above the Exit item on Windows and Linux, and as last menu items on the Mac.

Quick Access search text in Help You can now Search in Help after you've entered text in the Quick Access dialog. The option is shown when the filter text is longer than three characters, and it is always added at the end of the results.

Search in Help using the new Quick Access dialog:

Search in Help using the standalone dialog:

Command icons shown in Quick Access Quick Access (Ctrl+3) now shows the icon for a Command if available. Otherwise, it still shows the default blue ball.

Colors in interactive popups Interactive popups like JDT's Quick Outline don't use the platform's tooltip colors any more, since those were sometimes hard to read.

Old style:

New style:

GTK tree collapse/expand key bindings On GTK+ 3.6 and later, the Left and Right arrow keys now collapse and expand the current tree item (in addition to the GTK+ default -/+ key bindings).
Reduced TabItems padding under GTK+ On GTK+ 3.20 and later, the padding around TabItems has been reduced.

Simplified filters dialog for Problems, Bookmarks, and Tasks views The Filters dialog of the Problems, Bookmarks, and Tasks views has been simplified. If you select several configurations, items matching any of these configurations will be shown.

Old dialog in Problems view:

New dialog in Problems view:

Filter dialog for Problems, Bookmarks, and Tasks views easier to reach The Filters dialog is now accessible from the toolbar of the Problems, Bookmarks, and Tasks views.

Previously, it was only accessible via view menu > Configure Contents...:

Now also as a toolbar button:

Editor selection dialog: Use for all The Editor Selection dialog now offers a one-click option for choosing the editor that should open all files with the same extension in the future.

Example when selecting "file.xyz" and choosing Open with > Other...:

Highlighted checkbox: Use it for all '*.xyz' files

More high resolution images More images in the old GIF format were replaced by images in the PNG format. In addition, high resolution images where added.

As PNG can handle transparency much better than GIF, the ugly white borders around shapes visible in the dark theme are now gone for these icons.

To see their full beauty, a high-DPI monitor (e.g. a Retina Mac) is needed. The lower part of the screenshot shows the wizard banner image of the Import dialog in high resolution.

The right part of the screenshot shows all the icons in high resolution.

'Filters and Customization...' in Project Explorer The Customize View... command in the Project Explorer's view menu has been renamed to Filters and Customization...

JDT
Method result after step operations During debugging, the last method result (per return or throw) that was observed during Step Into, Step Over or Step Return, is shown as first line in the Variables view.

This can be disabled with the new option Preferences > Java > Debug > Show method result after a step operation (if supported by the VM; may be slow)

Triggers for breakpoints You can now define a set of triggers for the breakpoints in a workspace.

Any breakpoint can be set as a trigger point by using Breakpoint Properties... dialog or the Breakpoints view's detail pane.

Triggers will be rendered with an overlay of "T" and the breakpoints suppressed by the triggers will be rendered with an overlay of "T" with a cut.

All the other breakpoints that are initially suppressed by triggers will be hit only after any of the trigger points has been hit. All the triggers are disabled after a trigger point is hit and will be re-enabled after the run.

PDE
Changes in Version Management preferences tab The Version Management tab of the Plug-in Development > API Errors/Warnings preference page has been reorganized. The sub-options to control major/minor version change without API breakage/changes have been converted into normal options and they are set to warning by default. The option 'Report changed execution environment incompatibility' has been moved to the bottom of the tab.

Error Log view: 'Show In Console' in context menu In the Error Log view, the context menu now includes Show In Console, which performs the same action as Show Stack Trace in Console View from the view toolbar.

API Tools reports default method addition as a breaking change The API Tools now report the addition of a default method in an API interface that can be implemented by clients as a breaking change.
Platform Developers
Stable sorting in viewers based on ViewerComparator The org.eclipse.jface.viewers.ViewerComparator now ignores decorations from a DecoratingLabelProvider during its sorting. For example, if the EGit team provider is used, it prepends "> " for changed files. This additional "> " is now ignored.

The goal of this change is to eliminate java.lang.IllegalArgumentException: Comparison method violates its general contract! that could occur when label decorations were updated in the background.

For now, you can disable this fix by setting the system property eclipse.disable.fix.for.bug364735 to true. This temporary system property is planned to be removed unless issues with the new sorting are discovered.

Reduced performance impact of very frequent progress reporting from background jobs When bad code was calling IProgressMonitor#setTaskName(String) very frequently in a background job, the execution was heavily slowed down due to this reporting. A workaround has been added to the jobs framework that throttles processing of excessive task name updates. Performance tests have shown 2-3 times faster execution times for pathologic examples.
Tweak the GTK+ theme You can now tweak the GTK+ theme by providing your own CSS file to extend the default look. A custom CSS file is registered by a VM argument like this:
-Dorg.eclipse.swt.internal.gtk.cssFile=/path/to/my.css
The following CSS snippet gives the effect below.
button:hover {
  box-shadow: inset 0 0 0 5px #3071A9;
}
      

Note: Works on GTK+ 3.20 or later only.
Apply GTK+ CSS at runtime GTK+ CSS can be applied at runtime via Widget#setData(String, Object) using org.eclipse.swt.internal.gtk.css as key.

Example:

button.setData("org.eclipse.swt.internal.gtk.css", "button:hover {background: blue; border-radius: 20px;}")
      
... will produce the effect on the right on hover:

Note: Works on GTK+ 3.20 or later only.
Screenshot from JUnit In bundle org.eclipse.test.performance, there's a new API to take a screenshot from a JUnit test:

org.eclipse.test.Screenshots#takeScreenshot(Class<?> testClass, String name)

In the Eclipse Platform/SDK builds that are run on Hudson, the PNG files will be saved in a directory that is accessible via Console Output Logs on the Test Results pages.

The above features are just the ones that are new since the previous milestone build. Summaries for earlier Oxygen milestone builds: