Skip to main content

Platform and Equinox

SWT provides resolution-based auto-scaling SWT now automatically scales images on high-DPI monitors on Windows and Linux, similar to the Mac's Retina support on OS X. In the absence of high-resolution images, SWT will auto-scale the available images to ensure that SWT-based applications like Eclipse are scaled proportionately to the resolution of the monitor.

Screenshot of Neon at 200%

For comparison, here's how it looked in Mars without high-DPI support:

Screenshot of Mars at 200%

To tweak the default settings, see Tweaking SWT's auto-scaling.
SWT programmers, see APIs for high-DPI monitor support.
Icon designers and product owners, see High-DPI icons using "@2x" convention.

Word wrap in text editors A Toggle Word Wrap button has been added to the workbench toolbar. Shortcut: Alt+Shift+Y.

By default, text editors are opened with word wrap disabled.

Commands and shortcuts to zoom in text editors In text editors, you can now use Zoom In (Ctrl++ or Ctrl+=) and Zoom Out (Ctrl+-) commands to increase and decrease the font size.

Like a change in the General > Appearance > Colors and Fonts preference page, the commands persistently change the font size in all editors of the same type. If the editor type's font is configured to use a default font, then that default font will be zoomed.

Pinch to zoom in text editors To temporarily zoom the editor font in text editors, use a "pinch" gesture on a touchpad. Put two fingers on the touchpad and move them apart or together.

To reset the original font size, rotate two fingers by at least 45°, or close and reopen the editor (Navigate > Back).

Those gestures only affect the current editor. Changes are neither propagated to other editors nor persisted.

Note: SWT currently only supports these gestures on OS X and on Windows systems that use the native multi-touch support. Touchpads that emulate mouse move/scroll events don't support gestures. Gesture support on GTK is not implemented yet.

Automatic Save of dirty editors Auto-save of dirty editors is now available in Eclipse. The autosave option is disabled by default. A new autosave preference page (Preferences > General > Editors > Autosave) is available and allows to enable/disable the autosave and change the interval of autosave. The countdown is reset on keyboard activity, mouse click, or when a popup is displayed (e.g. content assist, preference page, ...).

Search in binary files The Search > File... dialog has a new option to search in binary files as well.

By default, the option is disabled, and matches are only reported in files that have the Text content type, or in files that have no content type and don't contain the null character (\u0000).
Terminate and Relaunch from history A Terminate and Relaunch option is now available while launching from history. The default setting is to launch without terminating previous launches. To enable automatic termination, select the option "Terminate and Relaunch while launching from history" on Preferences > Run/Debug > Launching.

The behavior not selected on the preference page can also be activated on-demand by holding the Shift key while launching the configuration from history.

Hint: You can still open the dialog to edit a launch configuration by holding the Ctrl key while selecting the configuration from history.

Directly start previously selected workspaces in the launcher The workspace selection dialog now allows you to start a previously selected workspace directly via a link. The path to the workspace is shortened. The full path is available if you hover over the link.

You can remove existing entries via the context menu.

Workspace name shown in window title by default The workspace name is now shown at the beginning of the window title by default. The initial name is the name of the workspace directory.

The name can be changed or cleared in Preferences > General > Workspace.

Quick Access improvements Quick Access (Ctrl+3) is a small text field in the toolbar. You can use it to trigger any command in the Eclipse IDE.

You can now restrict the search to Views, Commands, etc. by typing the category name followed by a colon. For example, to filter the list of all the views, start typing "Views: " in the search-box.

A few usability bugs have been fixed: The tooltip shows the keyboard shortcut, the number of search results per category is independent of the size of the proposals window, and the list with previous choices already opens when you click the field with the mouse.

Hide the window toolbars You can use the Toggle visibility of the window toolbars command (via Quick Access: Ctrl+3) to hide all currently visible toolbars of the current window. Executing the command again reveals these toolbars again. This allows you to maximize the space available for editors and views. If you minimize a stack after you selected this command, the minimized stack will be visible until you trigger the command to hide the toolbars again. This allows you to decide which minimized stacks are currently useful for you.
Perspective names hidden by default To save space in the toolbar, the perspective switcher has been changed to show only the icons of perspectives by default. You can show the text again via the context menu.

New default:

Old default:

Full Screen The Full Screen feature is now also available on Windows and Linux. You can toggle the mode via shortcut (Alt+F11) or menu (Window > Appearance > Toggle Full Screen).

When Full Screen is activated, you'll see a dialog which tells you how to turn it off again.

On the Mac, Window > Toggle Full Screen (Control+Command+F) still works as before.

Preference setting to disable the Eclipse styling (CSS based theming) You can disable the CSS-based styling of the Eclipse IDE via Preferences > General > Appearance > Enable theming. This will prevent Eclipse from rendering custom colors, shades, and borders, and may result in better performance.

Selecting the text editor for unassociated file types On the Preferences > General > Editors > File Association page, you can now define an editor selection strategy for unassociated file types. Three strategies are proposed out-of-the-box:
  • System Editor; if none: Text Editor (default) will open the system editor associated with the file, if available. If no system editor is associated with the given file, fall back to the Eclipse Text Editor
  • Text Editor will always open Eclipse's Text Editor on unassociated file types
  • Ask via pop-up will open the same dialog as using Open With > Other... on a file and let you choose which editor to use (inside or outside the IDE)

Keep in mind that in any case, it's possible to assign an editor for an unassociated file type either via this same preference page, or via the Open With > Other... context-menu on the file.

The implementation comes with a new extension-point org.eclipse.ui.ide.unknownEditorStrategy that allows external contributions of additional strategies.

'date' template variable with custom format The 'date' variable, supported in editor and code templates, now allows you to specify which format to use when inserting the current date (or time).

Example: ${d:date('EEEE dd MM yyyy HH:mm:ss', 'fr_CH')}

'word_selection' and 'line_selection' template variable with default values The 'word_selection' and 'line_selection' variables, supported in editor and code templates, now allow you to specify a default value to use if the current text selection is empty.
Import projects A new Import Projects wizard is available via the File > Open Projects... menu and via the general Import... command under General > Projects from Folder or Archive.

Compared to other ways to import or create projects, this wizard aims at being a universal wizard that, from a source directory or archive, can detect and configure various kinds of projects.

This wizard relies on an extensible set of strategies that look at the content of the import source to detect file types, project layout patterns, or even look into some files in order to deduct which folders should be turned into projects and how those should be configured. Configuration usually involves setting up project natures and preferences.

The import strategies are contributed via the new extension point org.eclipse.ui.ide.projectConfigurator, so that other IDE components can contribute detection and configuration specific to the technology they're supporting.

"New..." button for creating Working Sets A New... button has been added to the WorkingSetConfigurationBlock:

This saves quite a few clicks when creating new Working Sets.

New Welcome theme 'Solstice' The Welcome/Intro introduces a new Solstice theme providing a new modern appearance. The Welcome also introduces a new quadrant-based root page, qroot, which supports a new command-driven section defined through the org.eclipse.ui.intro.quicklinks extension point. These quicklinks are intended to be populated by product owners.

Welcome Launchbar restored In Eclipse 3.x, the Go to Workbench button on the Welcome page would minimize the Welcome page to the window status bar. This behavior has been restored for Eclipse 4.6.

Improvements in the Mac default theme The look of the toolbar in the Mac default theme was adjusted to align with other Mac applications.

Old styling:

New toolbar styling:

Themed scroll bar enabled for editors in dark theme It's now possible to replace the native scroll bar of a StyledText by a styled overlay. This is enabled by default in the dark theme on Windows.

This feature can be disabled in the Windows dark theme by setting the swt.enable.themedScrollBar VM argument to false (or enabled on the dark theme for other platforms by setting it to true) in eclipse.ini or on the command line after -vmargs:

-Dswt.enable.themedScrollBar=false

Note that it may be added through css to any theme (see properties available for customization and a css example) -- the user may always override the theme setting by using the swt.enable.themedScrollBar VM argument.

Caveats: We're aware that the themed scroll bar is not currently available for all elements (such as trees and tables), and some places where the scroll bar was invisible (such as compare editors) may now show a scroll bar. These will only be fixed for Eclipse 4.7.

Improved menu support on GTK3 The SWT GTK3 port has received an update to its menus as part of the push to update SWT to GTK3. Here are some of the notable changes.

Padding: By default, SWT menus now look similar to those in OS X: Text is not strictly aligned. This is due to a new way in which menus are constructed in GTK3 (see https://wiki.gnome.org/HowDoI/GMenu#Icons for more details). In order to align all text entries in a menu, simply launch the SWT application with the environment variable SWT_PADDED_MENU_ITEMS=1.

Checkboxes and images: On GTK2.x, a menu entry was limited to either a checkbox or an image. On GTK3, SWT now supports menu entries that contain both an image and a checkbox.

The image below shows a screenshot of the default GTK3 menu on the left, compared to an aligned GTK3 menu on the right.

Tweaking SWT's auto-scaling If you don't like SWT's default appearance on HiDPI monitors, here are a few hints to tweak the scaling:

On GTK, the standard way to configure scaling for a single application is to set the GDK_DPI_SCALE environment variable before launching an application. E.g. to set the scale factor to 150% on the command line when launching Eclipse:

$ GDK_DPI_SCALE=1.5 ./eclipse

On Windows and GTK, SWT's auto-scaling can be configured using the swt.autoScale Java property. E.g. to disable auto-scaling and make the application behave like on Mars (4.5), add this VM argument in eclipse.ini or on the command line after -vmargs:

-Dswt.autoScale=false

And here are all the swt.autoScale arguments that are currently implemented:

  • false: scale factor is set to 100% (no scaling)
  • integer: scale factor depends on the current display resolution, but only uses integer multiples of 100%. The detected native zoom is generally rounded down (e.g. at 150%, will use 100%), unless close to the next integer multiple (currently at 175%, will use 200%).
  • quarter: scale factor depends on the current display resolution, but only uses integer multiples of 25%. The detected native zoom is rounded to the closest permissible value. (This used to be the default in the last two pre-release milestones.)
  • exact: scale factor is set to the native zoom (with 1% as minimal step).
  • <value>: scale factor uses the given integer value in percent as zoom level.

The current default is "integer". Note that non-integer scale factors exhibit various problems like jagged borders or even completely missing images.

The scaling method can be configured by setting the swt.autoScale.method system property to:

  • nearest: nearest-neighbor interpolation, may look jagged
  • smooth: smooth edges, may look blurry

The current default is to use "nearest", except on GTK when the deviceZoom is not an integer multiple of 100%. The smooth strategy currently doesn't work on Windows and Mac OS X.

Auto-scaling cannot be disabled on the Mac as it is provided by the OS.

Advanced capabilities preferences are now displayed in place (no extra dialog) Previously, the entries in the Capabilities preference page were displayed in a list. If you wanted to edit them, you had to open an extra dialog. Now you can directly enable or disable the capabilities from the preference page, as depicted in the following screenshot.

Since this dialog has API to prevent advanced editing, if the property ALLOW_ADVANCED is set to false, the original list is maintained and will be shown, which allows you to enable/disable only the main categories (not individual capabilities).

Eclipse workspace launcher now fully functional on Wayland Eclipse has been updated to include improved support for the Wayland display manager.

Previously, launching Eclipse on Wayland was possible only if not using the native launcher due to a bug that would cause the workspace launcher to hang and eventually crash. This has now been fixed, allowing Eclipse to launch on Wayland just as it would on X11.

Solaris builds are now 64-bit only In Neon, the 32-bit builds of Solaris (both x86 and SPARC) have been discontinued as there is no 32-bit Java 8 JRE available on Solaris.

These builds have been replaced by the 64-bit builds for Solaris x86 and SPARC.

Ant 1.9.6 Eclipse has adopted Ant version 1.9.6.
Java 9 previews Launching Eclipse with recent Java 9 previews fails with NoClassDefFoundErrors for javax/annotation/PostConstruct and similar types.

The workaround is to add the VM argument

--add-modules=java.se.ee

either on the command line after -vmargs, or at the end of the eclipse.ini file.

At least on Windows, this workaround only seems to work when the -vm argument points to a java.exe or javaw.exe (but not when just passing the "bin" folder).

(Older Java 9 previews required using the two arguments -addmods java.se.ee , which had to be on two separate lines in eclipse.ini).

Previous Up Next

Back to the top