blob: a51896b33b4b2432e29a4d7728c972d33abffc37 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="copyright" content="Copyright (c) Eclipse contributors and others 2016. This page is made available under license. For full details, see the LEGAL section in the documentation that contains this page."/>
<meta http-equiv="Content-Language" content="en-us"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="STYLESHEET" href="../book.css" type="text/css"/>
<style type="text/css">
body {max-width: 900px;}
table.news col.title {width: 30%;}
/*img {max-width: 520px;}*/
table.news {table-layout: fixed; border-collapse: collapse; width: 100%;}
table.news td {border-top: solid thin black; padding: 10px; overflow: visible;}
table.news tr {vertical-align: top;}
table.news tr td.section {font-size: 20px; font-weight: bold;}
table.news tr td.title {vertical-align: top; font-weight: bold;}
table.news tr td.content {vertical-align: top;}
ul {padding-left: 13px;}
</style>
<title>Eclipse Platform What's New in Neon</title>
</head>
<body>
<h2>What's New in Neon</h2>
<p>Here are descriptions of some of the more interesting or significant changes
made to the Eclipse Platform for the Neon (4.6) release of Eclipse.</p>
<p>
Plug-in developers will also be interested in the corresponding
<a href="../../org.eclipse.platform.doc.isv/whatsNew/platform_isv_whatsnew.html">What's new</a>
document in the plug-in developer's guide.</p>
<p>We also recommend to read the <a href="../tips/platform_tips.html">Tips and Tricks</a>.</p>
<br/>
<table class="news">
<colgroup>
<col class="title" />
<col />
</colgroup>
<tbody>
<tr id="swt-autoscale">
<td class="title">SWT provides resolution-based auto-scaling</td>
<td class="content">
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.
<p>
<img width="520" src="images/hidpi-neon.png" alt="Screenshot of Neon at 200%" />
</p>
<p>
For comparison, here's how it looked in Mars without high-DPI support:
</p>
<p>
<img width="520" src="images/hidpi-mars.png" alt="Screenshot of Mars at 200%" />
</p>
<p>
To tweak the default settings, see <a href="#swt-autoscale-tweaks">Tweaking SWT's auto-scaling</a>.<br/>
SWT programmers, see <a href="../../org.eclipse.platform.doc.isv/whatsNew/platform_isv_whatsnew.html#high-dpi-api">APIs for high-DPI monitor support</a>.<br/>
Icon designers and product owners, see <a href="../../org.eclipse.platform.doc.isv/whatsNew/platform_isv_whatsnew.html#high-dpi-icons">High-DPI icons using "@2x" convention</a>.
</p>
</td>
</tr>
<tr id="word-wrap">
<td class="title">Word wrap in text editors</td>
<td class="content">
A <b>Toggle Word Wrap</b> button has been added to the workbench toolbar. Shortcut: <b>Alt+Shift+Y</b>.
<p>
<img src="images/word-wrap.png" alt="" />
</p>
<p>
By default, text editors are opened with word wrap disabled.
</p>
</td>
</tr>
<tr id="text-zoom-commands">
<td class="title">Commands and shortcuts to zoom in text editors</td>
<td class="content">
In text editors, you can now use <b>Zoom In</b> (<b>Ctrl++</b> or <b>Ctrl+=</b>) and <b>Zoom Out</b> (<b>Ctrl+-</b>) commands
to increase and decrease the font size.
<p>
Like a change in the <b>General &gt; Appearance &gt; Colors and Fonts</b> 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.
</p>
</td>
</tr>
<tr id="pinch-to-zoom">
<td class="title">Pinch to zoom in text editors</td>
<td class="content">
To temporarily zoom the editor font in text editors, use a "<b>pinch</b>" gesture on a touchpad.
Put two fingers on the touchpad and move them apart or together.
<p>
To reset the original font size, rotate two fingers by at least 45°, or close and reopen the editor (<b>Navigate &gt; Back</b>).
</p>
<p>
Those gestures only affect the current editor. Changes are neither propagated to other editors nor persisted.
</p>
<p>
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.
</p>
</td>
</tr>
<tr id="autosave-dirty-editors">
<td class="title">Automatic Save of dirty editors</td>
<td class="content">
Auto-save of dirty editors is now available in Eclipse. The autosave option is <b>disabled by default</b>.
A new autosave preference page (<b>Preferences &gt; General &gt; Editors &gt; Autosave</b>) 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, ...).
<p><img src="images/autosave-preference-page.png" alt="" /></p>
</td>
</tr>
<tr id="search-binary-files">
<td class="title">Search in binary files</td>
<td class="content">
The <b>Search &gt; File...</b> dialog has a new option to search in binary files as well.
<p>
<img src="images/search-binary-files.png" alt=""/>
</p>
By default, the option is disabled, and matches are only reported in files that have the <i>Text</i>
content type, or in files that have no content type and don't contain the null character (\u0000).
</td>
</tr>
<tr id="terminate-relaunch-history">
<td class="title">Terminate and Relaunch from history</td>
<td class="content">
A <b>Terminate and Relaunch</b> 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
<b>Preferences &gt; Run/Debug &gt; Launching</b>.
<p>
The behavior not selected on the preference page can also be activated on-demand by holding
the <b>Shift</b> key while launching the configuration from history.
</p>
<p><img src="images/launch-preference-history-relaunch.png" alt="" /></p>
<p>
Hint: You can still open the dialog to <b>edit a launch configuration</b> by holding
the <b>Ctrl</b> key while selecting the configuration from history.
</p>
</td>
</tr>
<tr id="workspace-launcher-platform">
<td class="title">Directly start previously selected workspaces in the launcher</td>
<td class="content">
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.
<p>
You can remove existing entries via the context menu.
</p>
<p>
<img src="images/recent-workspace-launcher.png" alt="" />
</p>
</td>
</tr>
<tr id="workspace-name-in-window-title">
<td class="title">Workspace name shown in window title by default</td>
<td class="content">
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.
<p>
The name can be changed or cleared in <b>Preferences &gt; General &gt; Workspace</b>.
</p>
</td>
</tr>
<tr id="quick-access-improvements">
<td class="title">Quick Access improvements</td>
<td class="content">
<b>Quick Access</b> (<b>Ctrl+3</b>) is a small text field in the toolbar. You can use it to trigger any command in the Eclipse IDE.
<p><img src="images/eclipse-quick-access-improved-search.png" alt="" /></p>
<p>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 <code>"Views: "</code> in the search-box.</p>
<p>
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.
</p>
</td>
</tr>
<tr id="hide-toolbars">
<td class="title">Hide the window toolbars</td>
<td class="content">
You can use the <b>Toggle visibility of the window toolbars</b> command (via Quick Access: <b>Ctrl+3</b>) 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.
</td>
</tr>
<tr id="perspective-switcher-default-display">
<td class="title">Perspective names hidden by default</td>
<td class="content">
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.
<p>New default:</p>
<p>
<img src="images/perspective-switcher-notext.png" alt=""/>
</p>
<p>Old default:</p>
<p>
<img src="images/perspective-switcher-withtext.png" alt=""/>
</p>
</td>
</tr>
<tr id="full-screen">
<td class="title">Full Screen</td>
<td class="content">
The <b>Full Screen</b> feature is now also available on Windows and Linux. You can toggle the mode via shortcut (<b>Alt+F11</b>) or menu (<b>Window &gt; Appearance &gt; Toggle Full Screen</b>).
<p>
When Full Screen is activated, you'll see a dialog which tells you how to turn it off again.
</p>
<p>
On the Mac, <b>Window &gt; Toggle Full Screen</b> (<b>Control+Command+F</b>) still works as before.
</p>
</td>
</tr>
<tr id="theming-enablement">
<td class="title">Preference setting to disable the Eclipse styling (CSS based theming)</td>
<td class="content">
You can disable the CSS-based styling of the Eclipse IDE via
<b>Preferences &gt; General &gt; Appearance &gt; Enable theming</b>.
This will prevent Eclipse from rendering custom colors, shades, and borders, and may result in better performance.
<p>
<img src="images/enable-disable-theming.png" alt=""/>
</p>
</td>
</tr>
<tr id="text-editor-selection-strategy">
<td class="title">Selecting the text editor for unassociated file types</td>
<td class="content">
On the <b>Preferences &gt; General &gt; Editors &gt; File Association</b> page, you can now define an editor selection
strategy for unassociated file types. Three strategies are proposed out-of-the-box:
<ul>
<li><b>System Editor; if none: Text Editor</b> (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</li>
<li><b>Text Editor</b> will always open Eclipse's Text Editor on unassociated file types</li>
<li><b>Ask via pop-up</b> will open the same dialog as using <b>Open With &gt; Other...</b> on a file and let you choose which
editor to use (inside or outside the IDE)</li>
</ul>
<p>
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 <b>Open With &gt; Other...</b> context-menu on the file.
</p>
<p>
The implementation comes with a new extension-point <code>org.eclipse.ui.ide.unknownEditorStrategy</code>
that allows external contributions of additional strategies.
</p>
</td>
</tr>
<tr id="date-variable-format">
<td class="title">'date' template variable with custom format</td>
<td class="content">
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).
<p>
<img src="images/date-variable-format.png" alt="Example: ${d:date('EEEE dd MM yyyy HH:mm:ss', 'fr_CH')}"/>
</p>
</td>
</tr>
<tr id="word-selection-default-value">
<td class="title">'word_selection' and 'line_selection' template variable with default values</td>
<td class="content">
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.
</td>
</tr>
<tr id="import-projects">
<td class="title">Import projects</td>
<td class="content">
A new <b>Import Projects</b> wizard is available via the <b>File &gt; Open Projects...</b> menu and via the general
<b>Import...</b> command under <b>General &gt; Projects from Folder or Archive</b>.
<p>
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.
</p>
<p>
<img src="images/import-projects.png" alt="" />
</p>
<p>
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.
</p>
<p>
The import strategies are contributed via the new extension point <code>org.eclipse.ui.ide.projectConfigurator</code>, so that other IDE components
can contribute detection and configuration specific to the technology they're supporting.
</p>
</td>
</tr>
<tr id="new-button-workingset">
<td class="title">"New..." button for creating Working Sets</td>
<td class="content">
A <b>New...</b> button has been added to the <code>WorkingSetConfigurationBlock</code>:
<p>
<img src="images/new-button-workingsetconfigurationblock.png" alt="" />
</p>
<p>
This saves quite a few clicks when creating new Working Sets.
</p>
</td>
</tr>
<tr id="solstice-welcome-theme">
<td class="title">New Welcome theme 'Solstice'</td>
<td class="content">
The Welcome/Intro introduces a new <em>Solstice</em> theme
providing a new modern appearance. The Welcome also
introduces a new quadrant-based root page, <tt>qroot</tt>,
which supports a new command-driven section defined through
the <tt>org.eclipse.ui.intro.quicklinks</tt> extension point.
These <em>quicklinks</em> are intended to be populated by
product owners.
<p>
<img src="images/eclipse-welcome-solstice.png" alt="" />
</p>
</td>
</tr>
<tr id="welcome-launchbar">
<td class="title">Welcome Launchbar restored</td>
<td class="content">
In Eclipse 3.x, the <b>Go to Workbench</b> button
on the Welcome page would minimize the Welcome page to the window
status bar. This behavior has been restored for Eclipse 4.6.
<p>
<img src="images/eclipse-welcome-launchbar.png" alt="" />
</p>
</td>
</tr>
<tr id="mac-default-theme-enhancement">
<td class="title">Improvements in the Mac default theme</td>
<td class="content">
The look of the toolbar in the Mac default theme was adjusted to align with other Mac applications.
<p>
Old styling:
</p>
<p>
<img src="images/mac-theme-old-toolbar.png" alt="" />
</p>
<p>
New toolbar styling:
</p>
<p>
<img src="images/mac-theme-new-toolbar.png" alt="" />
</p>
</td>
</tr>
<tr id="dark-theme-styled-links">
<td class="title">Link widget background color can be styled via CSS</td>
<td class="content">
You can now style the background color of the SWT Link widget. This is used in
the default dark theme provided by Eclipse.
<p>
<img src="images/themed-links.png" alt="" />
</p>
</td>
</tr>
<tr id="dark-theme-styled-text-scrollbar">
<td class="title">Themed scroll bar enabled for editors in dark theme</td>
<td class="content">
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.
<p>
<img src="images/themed-scroll-bar.png" alt="" />
</p>
<p>
This feature can be disabled in the Windows dark theme by setting the <code>swt.enable.themedScrollBar</code>
VM argument to <code>false</code> (or enabled on the dark theme for other platforms by setting it to true)
in eclipse.ini or on the command line after <code>-vmargs</code>:
</p>
<p>
<b>-Dswt.enable.themedScrollBar=false</b>
</p>
<p>
Note that it may be added through css to any theme (see
<a href="http://git.eclipse.org/c/platform/eclipse.platform.ui.git/diff/bundles/org.eclipse.e4.ui.css.swt/plugin.xml?id=742d2e990765d5bbf9be61ff3f047105f8102bd3">
properties available for customization</a> and a <a href="http://git.eclipse.org/c/platform/eclipse.platform.ui.git/diff/bundles/org.eclipse.ui.themes/css/e4-dark_win.css?id=742d2e990765d5bbf9be61ff3f047105f8102bd3">css example</a>)
-- the user may always override the theme setting by using the <code>swt.enable.themedScrollBar</code> VM argument.
</p>
<p>
<b>Caveats</b>: 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.
</p>
</td>
</tr>
<tr id="gtk3-menus">
<td class="title">Improved menu support on GTK3</td>
<td class="content">
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.
<p>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 <a href="https://wiki.gnome.org/HowDoI/GMenu#Icons">
https://wiki.gnome.org/HowDoI/GMenu#Icons</a> for more details). In order to align all text entries in a menu, simply launch
the SWT application with the environment variable <b>SWT_PADDED_MENU_ITEMS=1</b>.</p>
<p>Checkboxes and images: On GTK2.x, a menu entry was limited to either a checkbox <i>or</i> an image.
On GTK3, SWT now supports menu entries that contain both an image and a checkbox.</p>
<p>The image below shows a screenshot of the default GTK3 menu on the left,
compared to an aligned GTK3 menu on the right.</p>
<img src="images/gtk3-menu-comparison.png" alt=""/>
</td>
</tr>
<tr id="swt-autoscale-tweaks">
<td class="title">Tweaking SWT's auto-scaling</td>
<td class="content">
If you don't like SWT's default appearance on HiDPI monitors, here are a few hints to
tweak the scaling:
<p>
On <b>GTK</b>, the standard way to configure scaling for a single application is to set the
<code>GDK_DPI_SCALE</code> environment variable before launching an application.
E.g. to set the scale factor to 150% on the command line when launching Eclipse:
</p>
<pre><b>$ GDK_DPI_SCALE=1.5 ./eclipse</b></pre>
<p>
On <b>Windows</b> and <b>GTK</b>, SWT's auto-scaling can be configured using the <code>swt.autoScale</code>
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 <b><code>-vmargs</code></b>:
</p>
<pre><b>-Dswt.autoScale=false</b></pre>
<p>
And here are all the <code>swt.autoScale</code> arguments that are currently implemented:
</p>
<ul>
<li><code>false</code>: scale factor is set to 100% (no scaling)</li>
<li><code>integer</code>: 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%).</li>
<li><code>quarter</code>: 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.)</li>
<li><code>exact</code>: scale factor is set to the native zoom (with 1% as minimal
step).</li>
<li><i>&lt;value&gt;</i>: scale factor uses the given integer value in
percent as zoom level.</li>
</ul>
<p>
The current default is "integer". Note that non-integer scale factors
exhibit various problems like jagged borders or even completely missing images.
</p>
<p>
The scaling method can be configured by setting the <b><code>swt.autoScale.method</code></b> system property to:
</p>
<ul>
<li><code>nearest</code>: nearest-neighbor interpolation, may look jagged</li>
<li><code>smooth</code>: smooth edges, may look blurry</li>
</ul>
<p>
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.
</p>
<p>
Auto-scaling cannot be disabled on the Mac as it is provided by the OS.
</p>
</td>
</tr>
<tr id="simplified-capabilities-preference-page">
<td class="title">Advanced capabilities preferences are now displayed in place (no extra dialog) </td>
<td class="content">
Previously, the entries in the <b>Capabilities</b> 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.
<p>
<img src="images/simplified-capabilities-page.png" alt="" />
</p>
<p>
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).
</p>
</td>
</tr>
<tr id="wayland-launching">
<td class="title">Eclipse workspace launcher now fully functional on Wayland</td>
<td class="content">
Eclipse has been updated to include improved support for the Wayland display manager.
<p>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.</p>
</td>
</tr>
<tr id="solaris-64-bit-builds">
<td class="title">Solaris builds are now 64-bit only</td>
<td class="content">
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.
<p>These builds have been replaced by the 64-bit builds for Solaris x86 and SPARC.</p>
</td>
</tr>
<tr id="ant-version-upgrade">
<td class="title">Ant 1.9.6</td>
<td class="content">
Eclipse has adopted Ant version 1.9.6.
</td>
</tr>
<tr id="java-9">
<td class="title">Java 9 previews</td>
<td class="content">
Launching Eclipse with recent Java 9 previews fails with <code>NoClassDefFoundError</code>s
for <code>javax/annotation/PostConstruct</code> and similar types.
<p>
The workaround is to add the VM arguments
</p>
<pre><b>-addmods java.se.ee</b></pre>
<p>
either on the command line <b>after <code>-vmargs</code></b>, or at the end of the
<b>eclipse.ini</b> file on <b>two separate lines</b>.
</p>
<p>
At least on Windows, this workaround only seems to work when the <code>-vm</code>
argument points to a <code>java.exe</code> or <code>javaw.exe</code> (but not when just passing the "bin" folder).
</p>
</td>
</tr>
</tbody>
</table>
</body>
</html>